diff --git a/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/dnsrecords.yaml b/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/dnsrecords.yaml index 283672900..f10619cd2 100644 --- a/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/dnsrecords.yaml +++ b/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/dnsrecords.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "dnsrecords.kuadrant.io" spec: group: "kuadrant.io" @@ -24,10 +24,10 @@ spec: description: "DNSRecord is the Schema for the dnsrecords 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" @@ -77,7 +77,7 @@ spec: minItems: 1 type: "array" healthCheck: - description: "HealthCheckSpec configures health checks in the DNS provider. By default this health check will be applied to each unique DNS A Record for the listeners assigned to the target gateway" + description: "HealthCheckSpec configures health checks in the DNS provider.\nBy default this health check will be applied to each unique DNS A Record for\nthe listeners assigned to the target gateway" properties: endpoint: type: "string" @@ -92,7 +92,7 @@ spec: description: "managedZone is a reference to a ManagedZone instance to which this record will publish its endpoints." properties: name: - description: "`name` is the name of the managed zone. Required" + description: "`name` is the name of the managed zone.\nRequired" type: "string" required: - "name" @@ -106,7 +106,7 @@ spec: - message: "OwnerID is immutable" rule: "self == oldSelf" rootHost: - description: "rootHost is the single root for all endpoints in a DNSRecord. it is expected all defined endpoints are children of or equal to this rootHost" + description: "rootHost is the single root for all endpoints in a DNSRecord.\nit is expected all defined endpoints are children of or equal to this rootHost" minLength: 1 type: "string" required: @@ -118,25 +118,25 @@ spec: description: "DNSRecordStatus defines the observed state of DNSRecord" properties: conditions: - description: "conditions are any conditions associated with the record in the managed zone. \n If publishing the record fails, the \"Failed\" condition will be set with a reason and message describing the cause of the failure." + description: "conditions are any conditions associated with the record in the managed zone.\n\n\nIf publishing the record fails, the \"Failed\" condition will be set with a\nreason and message describing the cause of the failure." 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.\nThis 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.\nThis 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.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." maxLength: 1024 minLength: 1 pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" @@ -149,7 +149,7 @@ 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.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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" @@ -162,7 +162,7 @@ spec: type: "object" type: "array" endpoints: - description: "endpoints are the last endpoints that were successfully published by the provider \n Provides a simple mechanism to store the current provider records in order to delete any that are no longer present in DNSRecordSpec.Endpoints \n Note: This will not be required if/when we switch to using external-dns since when running with a \"sync\" policy it will clean up unused records automatically." + description: "endpoints are the last endpoints that were successfully published by the provider\n\n\nProvides a simple mechanism to store the current provider records in order to\ndelete any that are no longer present in DNSRecordSpec.Endpoints\n\n\nNote: This will not be required if/when we switch to using external-dns since when\nrunning with a \"sync\" policy it will clean up unused records automatically." items: description: "Endpoint is a high-level way of a connection between a service and an IP" properties: @@ -206,23 +206,23 @@ 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.\nThis 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.\nThis 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.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." maxLength: 1024 minLength: 1 pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" @@ -235,7 +235,7 @@ 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.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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" @@ -252,23 +252,23 @@ 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.\nThis 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.\nThis 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.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." maxLength: 1024 minLength: 1 pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" @@ -281,7 +281,7 @@ 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.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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" @@ -309,7 +309,7 @@ spec: type: "array" type: "object" observedGeneration: - description: "observedGeneration is the most recently observed generation of the DNSRecord. When the DNSRecord is updated, the controller updates the corresponding record in each managed zone. If an update for a particular zone fails, that failure is recorded in the status condition for the zone so that the controller can determine that it needs to retry the update for that specific zone." + description: "observedGeneration is the most recently observed generation of the\nDNSRecord. When the DNSRecord is updated, the controller updates the\ncorresponding record in each managed zone. If an update for a\nparticular zone fails, that failure is recorded in the status\ncondition for the zone so that the controller can determine that it\nneeds to retry the update for that specific zone." format: "int64" type: "integer" queuedAt: @@ -324,7 +324,7 @@ spec: description: "ValidFor indicates duration since the last reconciliation we consider data in the record to be valid" type: "string" writeCounter: - description: "WriteCounter represent a number of consecutive write attempts on the same generation of the record. It is being reset to 0 when the generation changes or there are no changes to write." + description: "WriteCounter represent a number of consecutive write attempts on the same generation of the record.\nIt is being reset to 0 when the generation changes or there are no changes to write." format: "int64" type: "integer" type: "object" diff --git a/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/managedzones.yaml b/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/managedzones.yaml index 2f96c56a1..b5ae18c03 100644 --- a/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/managedzones.yaml +++ b/crd-catalog/Kuadrant/dns-operator/kuadrant.io/v1alpha1/managedzones.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "managedzones.kuadrant.io" spec: group: "kuadrant.io" @@ -40,10 +40,10 @@ spec: description: "ManagedZone is the Schema for the managedzones 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" @@ -72,7 +72,7 @@ spec: description: "parentManagedZone reference to another managed zone that this managed zone belongs to." properties: name: - description: "`name` is the name of the managed zone. Required" + description: "`name` is the name of the managed zone.\nRequired" type: "string" required: - "name" @@ -86,25 +86,25 @@ spec: description: "ManagedZoneStatus defines the observed state of a Zone" properties: conditions: - description: "List of status conditions to indicate the status of a ManagedZone. Known condition types are `Ready`." + description: "List of status conditions to indicate the status of a ManagedZone.\nKnown condition types are `Ready`." 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.\nThis 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.\nThis 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.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." maxLength: 1024 minLength: 1 pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" @@ -117,7 +117,7 @@ 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.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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/Kuadrant/limitador-operator/limitador.kuadrant.io/v1alpha1/limitadors.yaml b/crd-catalog/Kuadrant/limitador-operator/limitador.kuadrant.io/v1alpha1/limitadors.yaml index 04c058e0a..d01ae635d 100644 --- a/crd-catalog/Kuadrant/limitador-operator/limitador.kuadrant.io/v1alpha1/limitadors.yaml +++ b/crd-catalog/Kuadrant/limitador-operator/limitador.kuadrant.io/v1alpha1/limitadors.yaml @@ -501,6 +501,8 @@ spec: type: "array" type: "object" type: "object" + image: + type: "string" limits: items: description: "RateLimit defines the desired Limitador limit" @@ -666,15 +668,9 @@ spec: max-cached: description: "MaxCached refers to the maximum amount of counters cached [default: 10000]" type: "integer" - ratio: - description: "Ratio to apply to the TTL from Redis on cached counters [default: 10]" - type: "integer" response-timeout: description: "ResponseTimeout defines the timeout for Redis commands in milliseconds [default: 350]" type: "integer" - ttl: - description: "TTL for cached counters in milliseconds [default: 5000]" - type: "integer" type: "object" type: "object" type: "object" @@ -697,6 +693,7 @@ spec: minimum: 1.0 type: "integer" version: + description: "[Deprecated] Use spec.image instead. Docker tag used as limitador image. The repo is hardcoded to quay.io/kuadrant/limitador" type: "string" type: "object" x-kubernetes-validations: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml index 68604fbea..555d135e8 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml @@ -56,27 +56,6 @@ spec: items: description: "ClusterComponentDefinition defines a Component within a ClusterDefinition but is deprecated and has been replaced by ComponentDefinition. \n Deprecated: Use ComponentDefinition instead. This type is deprecated as of version 0.8." properties: - builtinMonitorContainer: - description: "Defines the built-in metrics exporter container." - properties: - metricsPath: - description: "Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`)." - type: "string" - metricsPort: - description: "Specifies the port name to scrape for metrics." - type: "string" - name: - description: "Specifies the name of the built-in metrics exporter container." - type: "string" - protocol: - description: "Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`." - enum: - - "http" - - "https" - type: "string" - required: - - "name" - type: "object" characterType: description: "Defines well-known database component name, such as mongos(mongodb), proxy(redis), mariadb(mysql)." type: "string" @@ -404,6 +383,25 @@ spec: description: description: "Description of the component definition." type: "string" + exporter: + description: "Defines the metrics exporter." + properties: + containerName: + description: "Specifies the name of the built-in metrics exporter container." + type: "string" + scrapePath: + description: "Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`)." + type: "string" + scrapePort: + description: "Specifies the port name to scrape for metrics." + type: "string" + scrapeScheme: + description: "Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`." + enum: + - "http" + - "https" + type: "string" + type: "object" horizontalScalePolicy: description: "Defines the behavior of horizontal scale." properties: @@ -442,6 +440,31 @@ spec: x-kubernetes-list-map-keys: - "name" x-kubernetes-list-type: "map" + monitor: + description: "Deprecated since v0.9 monitor is monitoring config which provided by provider." + properties: + builtIn: + default: false + description: "builtIn is a switch to enable KubeBlocks builtIn monitoring. If BuiltIn is set to true, monitor metrics will be scraped automatically. If BuiltIn is set to false, the provider should set ExporterConfig and Sidecar container own." + type: "boolean" + exporterConfig: + description: "exporterConfig provided by provider, which specify necessary information to Time Series Database. exporterConfig is valid when builtIn is false." + properties: + scrapePath: + default: "/metrics" + description: "scrapePath is exporter url path for Time Series Database to scrape metrics." + maxLength: 128 + type: "string" + scrapePort: + anyOf: + - type: "integer" + - type: "string" + description: "scrapePort is exporter port for Time Series Database to scrape metrics." + x-kubernetes-int-or-string: true + required: + - "scrapePort" + type: "object" + type: "object" name: description: "This name could be used as default name of `cluster.spec.componentSpecs.name`, and needs to conform with same validation rules as `cluster.spec.componentSpecs.name`, currently complying with IANA Service Naming rule. This name will apply to cluster objects as the value of label \"apps.kubeblocks.io/component-name\"." maxLength: 22 @@ -5328,861 +5351,6 @@ spec: - "serviceRefDeclarationSpecs" type: "object" type: "array" - sidecarContainerSpecs: - description: "Defines the sidecar containers that will be attached to the component's main container." - items: - 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" - x-kubernetes-map-type: "atomic" - fieldRef: - description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." - properties: - apiVersion: - description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - type: "string" - fieldPath: - description: "Path of the field to select in the specified API version." - type: "string" - required: - - "fieldPath" - type: "object" - x-kubernetes-map-type: "atomic" - resourceFieldRef: - description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." - properties: - containerName: - description: "Container name: required for volumes, optional for env vars" - type: "string" - divisor: - anyOf: - - type: "integer" - - type: "string" - description: "Specifies the output format of the exposed resources, defaults to \"1\"" - pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" - x-kubernetes-int-or-string: true - resource: - description: "Required: resource to select" - type: "string" - required: - - "resource" - type: "object" - x-kubernetes-map-type: "atomic" - secretKeyRef: - description: "Selects a key of a secret in the pod's namespace" - properties: - key: - description: "The key of the secret to select from. Must be a valid secret key." - type: "string" - name: - description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" - type: "object" - required: - - "name" - type: "object" - type: "array" - 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" - x-kubernetes-map-type: "atomic" - 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" - x-kubernetes-map-type: "atomic" - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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" - monitor: - description: "Defines the function or purpose of the container, such as the monitor type sidecar." - properties: - kind: - description: "Defines the kind of monitor, such as metrics or logs." - enum: - - "metrics" - - "logs" - - "traces" - type: "string" - scrapeConfig: - description: "Defines the scrape configuration for the prometheus." - properties: - metricsPath: - description: "Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`)." - type: "string" - metricsPort: - description: "Specifies the port name to scrape for metrics." - type: "string" - protocol: - description: "Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`." - enum: - - "http" - - "https" - type: "string" - type: "object" - required: - - "kind" - 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." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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" - resizePolicy: - description: "Resources resize policy for the container." - items: - description: "ContainerResizePolicy represents resource resize policy for the container." - properties: - resourceName: - description: "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory." - type: "string" - restartPolicy: - description: "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired." - type: "string" - required: - - "resourceName" - - "restartPolicy" - type: "object" - type: "array" - x-kubernetes-list-type: "atomic" - 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" - type: "object" - type: "object" - restartPolicy: - description: "RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is \"Always\". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed." - type: "string" - 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 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" - 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." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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" - maxItems: 32 - minItems: 1 - type: "array" - x-kubernetes-list-map-keys: - - "name" - x-kubernetes-list-type: "map" - x-kubernetes-preserve-unknown-fields: true statefulSpec: description: "Defines spec for `Stateful` workloads." properties: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml index 8e91391f3..bf7bc2863 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml @@ -224,6 +224,9 @@ spec: type: "string" type: "object" type: "array" + disableExporter: + description: "Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will not be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." + type: "boolean" enabledLogs: description: "Specifies which types of logs should be collected for the Component. The log types are defined in the `componentDefinition.spec.logConfigs` field with the LogConfig entries. \n The elements in the `enabledLogs` array correspond to the names of the LogConfig entries. For example, if the `componentDefinition.spec.logConfigs` defines LogConfig entries with names \"slow_query_log\" and \"error_log\", you can enable the collection of these logs by including their names in the `enabledLogs` array: ```yaml enabledLogs: - slow_query_log - error_log ```" items: @@ -1517,8 +1520,8 @@ spec: required: - "name" type: "object" - monitorEnabled: - description: "Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." + monitor: + description: "Deprecated since v0.9 Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." type: "boolean" name: description: "Specifies the Component's name. It's part of the Service DNS name and must comply with the IANA service naming rule. The name is optional when ClusterComponentSpec is used as a template (e.g., in `shardingSpec`), but required otherwise. \n TODO +kubebuilder:validation:XValidation:rule=\"self == oldSelf\",message=\"name is immutable\"" @@ -2246,14 +2249,6 @@ spec: - "name" type: "object" type: "array" - sidecars: - description: "Defines the sidecar containers that will be attached to the Component's main container." - items: - type: "string" - maxItems: 32 - minItems: 1 - type: "array" - x-kubernetes-list-type: "set" switchPolicy: description: "Defines the strategy for switchover and failover when workloadType is Replication. \n Deprecated since v0.9. This field is maintained for backward compatibility and its use is discouraged. Existing usage should be updated to the current preferred approach to avoid compatibility issues in future releases." properties: @@ -3151,6 +3146,8 @@ spec: type: "string" serviceName: description: "ServiceName defines the name of the underlying service object. If not specified, the default service name with different patterns will be used: \n - CLUSTER_NAME: for cluster-level services - CLUSTER_NAME-COMPONENT_NAME: for component-level services \n Only one default service name is allowed. Cannot be updated." + maxLength: 25 + pattern: "^[a-z]([a-z0-9\\-]*[a-z0-9])?$" type: "string" shardingSelector: description: "Extends the ServiceSpec.Selector by allowing the specification of a sharding name, which is defined in `cluster.spec.shardingSpecs[*].name`, to be used as a selector for the service. Note that this and the `componentSelector` are mutually exclusive and cannot be set simultaneously." @@ -3384,6 +3381,9 @@ spec: type: "string" type: "object" type: "array" + disableExporter: + description: "Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will not be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." + type: "boolean" enabledLogs: description: "Specifies which types of logs should be collected for the Component. The log types are defined in the `componentDefinition.spec.logConfigs` field with the LogConfig entries. \n The elements in the `enabledLogs` array correspond to the names of the LogConfig entries. For example, if the `componentDefinition.spec.logConfigs` defines LogConfig entries with names \"slow_query_log\" and \"error_log\", you can enable the collection of these logs by including their names in the `enabledLogs` array: ```yaml enabledLogs: - slow_query_log - error_log ```" items: @@ -4677,8 +4677,8 @@ spec: required: - "name" type: "object" - monitorEnabled: - description: "Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." + monitor: + description: "Deprecated since v0.9 Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." type: "boolean" name: description: "Specifies the Component's name. It's part of the Service DNS name and must comply with the IANA service naming rule. The name is optional when ClusterComponentSpec is used as a template (e.g., in `shardingSpec`), but required otherwise. \n TODO +kubebuilder:validation:XValidation:rule=\"self == oldSelf\",message=\"name is immutable\"" @@ -5406,14 +5406,6 @@ spec: - "name" type: "object" type: "array" - sidecars: - description: "Defines the sidecar containers that will be attached to the Component's main container." - items: - type: "string" - maxItems: 32 - minItems: 1 - type: "array" - x-kubernetes-list-type: "set" switchPolicy: description: "Defines the strategy for switchover and failover when workloadType is Replication. \n Deprecated since v0.9. This field is maintained for backward compatibility and its use is discouraged. Existing usage should be updated to the current preferred approach to avoid compatibility issues in future releases." properties: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/componentdefinitions.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/componentdefinitions.yaml index 871f9d5bf..c740f9ee3 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/componentdefinitions.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/componentdefinitions.yaml @@ -55,27 +55,6 @@ spec: type: "string" description: "Specifies static annotations that will be patched to all Kubernetes resources created for the Component. \n Note: If an annotation key in the `annotations` field conflicts with any system annotations or user-specified annotations, it will be silently ignored to avoid overriding higher-priority annotations. \n This field is immutable." type: "object" - builtinMonitorContainer: - description: "Defines the built-in metrics exporter container." - properties: - metricsPath: - description: "Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`)." - type: "string" - metricsPort: - description: "Specifies the port name to scrape for metrics." - type: "string" - name: - description: "Specifies the name of the built-in metrics exporter container." - type: "string" - protocol: - description: "Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`." - enum: - - "http" - - "https" - type: "string" - required: - - "name" - type: "object" configs: description: "Specifies the configuration file templates and volume mount parameters used by the Component. It also includes descriptions of the parameters in the ConfigMaps, such as value range limitations. \n This field specifies a list of templates that will be rendered into Component containers' configuration files. Each template is represented as a ConfigMap and may contain multiple configuration files, with each file being a key in the ConfigMap. \n The rendered configuration files will be mounted into the Component's containers according to the specified volume mount parameters. \n This field is immutable." items: @@ -176,6 +155,25 @@ spec: description: "Provides a brief and concise explanation of the Component's purpose, functionality, and any relevant details. It serves as a quick reference for users to understand the Component's role and characteristics." maxLength: 256 type: "string" + exporter: + description: "Defines the built-in metrics exporter container." + properties: + containerName: + description: "Specifies the name of the built-in metrics exporter container." + type: "string" + scrapePath: + description: "Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`)." + type: "string" + scrapePort: + description: "Specifies the port name to scrape for metrics." + type: "string" + scrapeScheme: + description: "Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`." + enum: + - "http" + - "https" + type: "string" + type: "object" hostNetwork: description: "Specifies the host network configuration for the Component. \n When `hostNetwork` option is enabled, the Pods share the host's network namespace and can directly access the host's network interfaces. This means that if multiple Pods need to use the same port, they cannot run on the same host simultaneously due to port conflicts. \n The DNSPolicy field in the Pod spec determines how containers within the Pod perform DNS resolution. When using hostNetwork, the operator will set the DNSPolicy to 'ClusterFirstWithHostNet'. With this policy, DNS queries will first go through the K8s cluster's DNS service. If the query fails, it will fall back to the host's DNS settings. \n If set, the DNS policy will be automatically set to \"ClusterFirstWithHostNet\"." properties: @@ -2679,6 +2677,31 @@ spec: format: "int32" minimum: 0.0 type: "integer" + monitor: + description: "Deprecated since v0.9 monitor is monitoring config which provided by provider." + properties: + builtIn: + default: false + description: "builtIn is a switch to enable KubeBlocks builtIn monitoring. If BuiltIn is set to true, monitor metrics will be scraped automatically. If BuiltIn is set to false, the provider should set ExporterConfig and Sidecar container own." + type: "boolean" + exporterConfig: + description: "exporterConfig provided by provider, which specify necessary information to Time Series Database. exporterConfig is valid when builtIn is false." + properties: + scrapePath: + default: "/metrics" + description: "scrapePath is exporter url path for Time Series Database to scrape metrics." + maxLength: 128 + type: "string" + scrapePort: + anyOf: + - type: "integer" + - type: "string" + description: "scrapePort is exporter port for Time Series Database to scrape metrics." + x-kubernetes-int-or-string: true + required: + - "scrapePort" + type: "object" + type: "object" policyRules: description: "Defines the namespaced policy rules required by the Component. \n The `policyRules` field is an array of `rbacv1.PolicyRule` objects that define the policy rules needed by the Component to operate within a namespace. These policy rules determine the permissions and verbs the Component is allowed to perform on Kubernetes resources within the namespace. \n The purpose of this field is to automatically generate the necessary RBAC roles for the Component based on the specified policy rules. This ensures that the Pods in the Component has appropriate permissions to function. \n Note: This field is currently non-functional and is reserved for future implementation. \n This field is immutable." items: @@ -2737,13 +2760,6 @@ spec: rule: "self.minReplicas >= 0 && self.maxReplicas <= 128" - message: "the minimum replicas limit should be no greater than the maximum" rule: "self.minReplicas <= self.maxReplicas" - roleArbitrator: - default: "External" - description: "This field has been deprecated since v0.9. This field is maintained for backward compatibility and its use is discouraged. Existing usage should be updated to the current preferred approach to avoid compatibility issues in future releases. \n This field is immutable." - enum: - - "External" - - "Lorry" - type: "string" roles: description: "Enumerate all possible roles assigned to each replica of the Component, influencing its behavior. \n A replica can have zero to multiple roles. KubeBlocks operator determines the roles of each replica by invoking the `lifecycleActions.roleProbe` method. This action returns a list of roles for each replica, and the returned roles must be predefined in the `roles` field. \n The roles assigned to a replica can influence various aspects of the Component's behavior, such as: \n - Service selection: The Component's exposed Services may target replicas based on their roles using `roleSelector`. - Update order: The roles can determine the order in which replicas are updated during a Component update. For instance, replicas with a \"follower\" role can be updated first, while the replica with the \"leader\" role is updated last. This helps minimize the number of leader changes during the update process. \n This field is immutable." items: @@ -7162,6 +7178,8 @@ spec: type: "string" serviceName: description: "ServiceName defines the name of the underlying service object. If not specified, the default service name with different patterns will be used: \n - CLUSTER_NAME: for cluster-level services - CLUSTER_NAME-COMPONENT_NAME: for component-level services \n Only one default service name is allowed. Cannot be updated." + maxLength: 25 + pattern: "^[a-z]([a-z0-9\\-]*[a-z0-9])?$" type: "string" spec: description: "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" @@ -7286,861 +7304,6 @@ spec: - "name" type: "object" type: "array" - sidecarContainerSpecs: - description: "Defines the sidecar containers that will be attached to the component's main container." - items: - 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" - x-kubernetes-map-type: "atomic" - fieldRef: - description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." - properties: - apiVersion: - description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - type: "string" - fieldPath: - description: "Path of the field to select in the specified API version." - type: "string" - required: - - "fieldPath" - type: "object" - x-kubernetes-map-type: "atomic" - resourceFieldRef: - description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." - properties: - containerName: - description: "Container name: required for volumes, optional for env vars" - type: "string" - divisor: - anyOf: - - type: "integer" - - type: "string" - description: "Specifies the output format of the exposed resources, defaults to \"1\"" - pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" - x-kubernetes-int-or-string: true - resource: - description: "Required: resource to select" - type: "string" - required: - - "resource" - type: "object" - x-kubernetes-map-type: "atomic" - secretKeyRef: - description: "Selects a key of a secret in the pod's namespace" - properties: - key: - description: "The key of the secret to select from. Must be a valid secret key." - type: "string" - name: - description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" - type: "object" - required: - - "name" - type: "object" - type: "array" - 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" - x-kubernetes-map-type: "atomic" - 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" - x-kubernetes-map-type: "atomic" - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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" - monitor: - description: "Defines the function or purpose of the container, such as the monitor type sidecar." - properties: - kind: - description: "Defines the kind of monitor, such as metrics or logs." - enum: - - "metrics" - - "logs" - - "traces" - type: "string" - scrapeConfig: - description: "Defines the scrape configuration for the prometheus." - properties: - metricsPath: - description: "Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`)." - type: "string" - metricsPort: - description: "Specifies the port name to scrape for metrics." - type: "string" - protocol: - description: "Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`." - enum: - - "http" - - "https" - type: "string" - type: "object" - required: - - "kind" - 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." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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" - resizePolicy: - description: "Resources resize policy for the container." - items: - description: "ContainerResizePolicy represents resource resize policy for the container." - properties: - resourceName: - description: "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory." - type: "string" - restartPolicy: - description: "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired." - type: "string" - required: - - "resourceName" - - "restartPolicy" - type: "object" - type: "array" - x-kubernetes-list-type: "atomic" - 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" - type: "object" - type: "object" - restartPolicy: - description: "RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is \"Always\". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed." - type: "string" - 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 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" - 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." - 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. This will be canonicalized upon output, so case-variant names will be understood as the same header." - 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" - maxItems: 32 - minItems: 1 - type: "array" - x-kubernetes-list-map-keys: - - "name" - x-kubernetes-list-type: "map" - x-kubernetes-preserve-unknown-fields: true systemAccounts: description: "An array of `SystemAccount` objects that define the system accounts needed for the management operations of the Component. \n Each `SystemAccount` includes: \n - Account name. - The SQL statement template: Used to create the system account. - Password Source: Either generated based on certain rules or retrieved from a Secret. \n Use cases for system accounts typically involve tasks like system initialization, backups, monitoring, health checks, replication, and other system-level operations. \n System accounts are distinct from user accounts, although both are database accounts. \n - **System Accounts**: Created during Cluster setup by the KubeBlocks operator, these accounts have higher privileges for system management and are fully managed through a declarative API by the operator. - **User Accounts**: Managed by users or administrator. User account permissions should follow the principle of least privilege, granting only the necessary access rights to complete their required tasks. \n This field is immutable." items: @@ -8217,7 +7380,7 @@ spec: - "Parallel" type: "string" vars: - description: "Defines variables which are determined after Cluster instantiation and reflect dynamic or runtime attributes of instantiated Clusters. These variables serve as placeholders for setting environment variables in Pods and Actions, or for rendering configuration and script templates before actual values are finalized. \n These variables are placed in front of the environment variables declared in the Pod if used as environment variables. \n Variable values can be sourced from: \n - ConfigMap: Select and extract a value from a specific key within a ConfigMap. - Secret: Select and extract a value from a specific key within a Secret. - Pod: Retrieves values (including ports) from a selected Pod. - Service: Retrieves values (including address, port, NodePort) from a selected Service. Intended to obtain the address of a ComponentService within the same Cluster. - Credential: Retrieves account name and password from a SystemAccount variable. - ServiceRef: Retrieves address, port, account name and password from a selected ServiceRefDeclaration. Designed to obtain the address bound to a ServiceRef, such as a ClusterService or ComponentService of another cluster or an external service. - Component: Retrieves values from a selected Component, including replicas and instance name list. \n This field is immutable." + description: "Defines variables which are determined after Cluster instantiation and reflect dynamic or runtime attributes of instantiated Clusters. These variables serve as placeholders for setting environment variables in Pods and Actions, or for rendering configuration and script templates before actual values are finalized. \n These variables are placed in front of the environment variables declared in the Pod if used as environment variables. \n Variable values can be sourced from: \n - ConfigMap: Select and extract a value from a specific key within a ConfigMap. - Secret: Select and extract a value from a specific key within a Secret. - HostNetwork: Retrieves values (including ports) from host-network resources. - Service: Retrieves values (including address, port, NodePort) from a selected Service. Intended to obtain the address of a ComponentService within the same Cluster. - Credential: Retrieves account name and password from a SystemAccount variable. - ServiceRef: Retrieves address, port, account name and password from a selected ServiceRefDeclaration. Designed to obtain the address bound to a ServiceRef, such as a ClusterService or ComponentService of another cluster or an external service. - Component: Retrieves values from a selected Component, including replicas and instance name list. \n This field is immutable." items: description: "EnvVar represents a variable present in the env of Pod/Action or the template of config/script." properties: @@ -8378,8 +7541,8 @@ spec: - "Optional" type: "string" type: "object" - podVarRef: - description: "Selects a defined var of a Pod." + hostNetworkVarRef: + description: "Selects a defined var of host-network resources." properties: compDef: description: "CompDef specifies the definition used by the component that the referent object resident in. If not specified, the component itself will be used." diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/components.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/components.yaml index a17b0fa69..48cdeff61 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/components.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/components.yaml @@ -129,6 +129,9 @@ spec: type: "string" type: "object" type: "array" + disableExporter: + description: "Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will not be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." + type: "boolean" enabledLogs: description: "Specifies which types of logs should be collected for the Cluster. The log types are defined in the `componentDefinition.spec.logConfigs` field with the LogConfig entries. \n The elements in the `enabledLogs` array correspond to the names of the LogConfig entries. For example, if the `componentDefinition.spec.logConfigs` defines LogConfig entries with names \"slow_query_log\" and \"error_log\", you can enable the collection of these logs by including their names in the `enabledLogs` array: ```yaml enabledLogs: - slow_query_log - error_log ```" items: @@ -1381,9 +1384,6 @@ spec: - "name" type: "object" type: "array" - monitorEnabled: - description: "Determines whether metrics exporter information is annotated on the Component's headless Service. \n If set to true, the following annotations will be patched into the Service: \n - \"monitor.kubeblocks.io/path\" - \"monitor.kubeblocks.io/port\" - \"monitor.kubeblocks.io/scheme\" \n These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter." - type: "boolean" offlineInstances: description: "Specifies the names of instances to be transitioned to offline status. \n Marking an instance as offline results in the following: \n 1. The associated Pod is stopped, and its PersistentVolumeClaim (PVC) is retained for potential future reuse or data recovery, but it is no longer actively used. 2. The ordinal number assigned to this instance is preserved, ensuring it remains unique and avoiding conflicts with new instances. \n Setting instances to offline allows for a controlled scale-in process, preserving their data and maintaining ordinal consistency within the Cluster. Note that offline instances and their associated resources, such as PVCs, are not automatically deleted. The administrator must manually manage the cleanup and removal of these resources when they are no longer needed." items: @@ -2105,6 +2105,8 @@ spec: type: "string" serviceName: description: "ServiceName defines the name of the underlying service object. If not specified, the default service name with different patterns will be used: \n - CLUSTER_NAME: for cluster-level services - CLUSTER_NAME-COMPONENT_NAME: for component-level services \n Only one default service name is allowed. Cannot be updated." + maxLength: 25 + pattern: "^[a-z]([a-z0-9\\-]*[a-z0-9])?$" type: "string" spec: description: "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" @@ -2229,14 +2231,6 @@ spec: - "name" type: "object" type: "array" - sidecars: - description: "Defines the sidecar containers that will be attached to the Component's main container." - items: - type: "string" - maxItems: 32 - minItems: 1 - type: "array" - x-kubernetes-list-type: "set" tlsConfig: description: "Specifies the TLS configuration for the Component, including: \n - A boolean flag that indicates whether the Component should use Transport Layer Security (TLS) for secure communication. - An optional field that specifies the configuration for the TLS certificates issuer when TLS is enabled. It allows defining the issuer name and the reference to the secret containing the TLS certificates and key. The secret should contain the CA certificate, TLS certificate, and private key in the specified keys." properties: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/configconstraints.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/configconstraints.yaml index ecbd739b7..f8b358338 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/configconstraints.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/configconstraints.yaml @@ -59,7 +59,7 @@ spec: downwardAPIOptions: description: "Specifies a list of actions to execute specified commands based on Pod labels. \n It utilizes the K8s Downward API to mount label information as a volume into the pod. The 'config-manager' sidecar container watches for changes in the role label and dynamically invoke registered commands (usually execute some SQL statements) when a change is detected. \n It is designed for scenarios where: \n - Replicas with different roles have different configurations, such as Redis primary & secondary replicas. - After a role switch (e.g., from secondary to primary), some changes in configuration are needed to reflect the new role." items: - description: "DownwardAPITriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated." + description: "DownwardAPIChangeTriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated." properties: command: description: "Specifies the command to be triggered when changes are detected in Downward API volume files. It relies on the inotify mechanism in the config-manager sidecar to monitor file changes." diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml index 470eb8cc5..df19d0669 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml @@ -209,7 +209,7 @@ spec: podSelector: additionalProperties: type: "string" - description: "Routes service traffic to pods with matching label keys and values. If specified, the service will only be exposed to pods matching the selector. \n Note: At least one of 'roleSelector' or 'selector' must be specified. If both are specified, a pod must match both conditions to be selected." + description: "Routes service traffic to pods with matching label keys and values. If specified, the service will only be exposed to pods matching the selector. \n Note: At least one of 'roleSelector' or 'podSelector' must be specified. If both are specified, a pod must match both conditions to be selected." type: "object" x-kubernetes-map-type: "atomic" ports: @@ -250,7 +250,7 @@ spec: - "protocol" x-kubernetes-list-type: "map" roleSelector: - description: "Specifies a role to target with the service. If specified, the service will only be exposed to pods with the matching role. \n Note: At least one of 'roleSelector' or 'selector' must be specified. If both are specified, a pod must match both conditions to be selected." + description: "Specifies a role to target with the service. If specified, the service will only be exposed to pods with the matching role. \n Note: At least one of 'roleSelector' or 'podSelector' must be specified. If both are specified, a pod must match both conditions to be selected." type: "string" serviceType: description: "Determines how the Service is exposed. Defaults to 'ClusterIP'. Valid options are `ClusterIP`, `NodePort`, and `LoadBalancer`. \n - `ClusterIP`: allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, they are determined by manual construction of an Endpoints object or EndpointSlice objects. - `NodePort`: builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. - `LoadBalancer`: builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \n Note: although K8s Service type allows the 'ExternalName' type, it is not a valid option for the expose operation. \n For more info, see: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types." @@ -2063,10 +2063,34 @@ spec: description: "Specifies the desired new version of the Cluster. \n Note: This field is immutable once set." properties: clusterVersionRef: - description: "Specifies the name of the target ClusterVersion for the upgrade. \n This field is deprecated since v0.9 because ClusterVersion is deprecated." + description: "Deprecated: since v0.9 because ClusterVersion is deprecated. Specifies the name of the target ClusterVersion for the upgrade." type: "string" - required: - - "clusterVersionRef" + components: + description: "Lists components to be upgrade based on desired ComponentDefinition and ServiceVersion. From the perspective of cluster API, the reasonable combinations should be: 1. (comp-def, service-ver) - upgrade to the specified service version and component definition, the user takes the responsibility to ensure that they are compatible. 2. (\"\", service-ver) - upgrade to the specified service version, let the operator choose the latest compatible component definition. 3. (comp-def, \"\") - upgrade to the specified component definition, let the operator choose the latest compatible service version. 4. (\"\", \"\") - upgrade to the latest service version and component definition, the operator will ensure the compatibility between the selected versions." + items: + properties: + componentDefinitionName: + description: "Specifies the name of the ComponentDefinition." + maxLength: 64 + type: "string" + componentName: + description: "Specifies the name of the Component." + type: "string" + serviceVersion: + description: "Specifies the version of the Service expected to be provisioned by this Component. Referring to the ServiceVersion defined by the ComponentDefinition and ComponentVersion. And ServiceVersion in ClusterComponentSpec is optional, when no version is specified, use the latest available version in ComponentVersion." + maxLength: 32 + type: "string" + required: + - "componentName" + type: "object" + x-kubernetes-validations: + - message: "at least one componentDefinitionName or serviceVersion" + rule: "has(self.componentDefinitionName) || has(self.serviceVersion)" + maxItems: 1024 + type: "array" + x-kubernetes-list-map-keys: + - "componentName" + x-kubernetes-list-type: "map" type: "object" x-kubernetes-validations: - message: "forbidden to update spec.upgrade" @@ -2074,7 +2098,7 @@ spec: verticalScaling: description: "Lists VerticalScaling objects, each specifying a component and its desired compute resources for vertical scaling." items: - description: "VerticalScaling refers to the process of adjusting the compute resources (e.g., CPU, memory) allocated to a Component. It defines the parameters required for the operation." + description: "VerticalScaling refers to the process of adjusting compute resources (e.g., CPU, memory) allocated to a Component. It defines the parameters required for the operation." 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." @@ -2457,6 +2481,9 @@ spec: x-kubernetes-list-map-keys: - "name" x-kubernetes-list-type: "map" + componentDefinitionName: + description: "Records the name of the ComponentDefinition prior to any changes." + type: "string" instances: description: "Records the InstanceTemplate list of the Component prior to any changes." items: @@ -3730,6 +3757,9 @@ spec: 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" + serviceVersion: + description: "Records the version of the Service expected to be provisioned by this Component prior to any changes." + type: "string" services: description: "Records the ClusterComponentService list of the Component prior to any changes." items: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1beta1/configconstraints.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1beta1/configconstraints.yaml index 64df2eb46..1122651bb 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1beta1/configconstraints.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1beta1/configconstraints.yaml @@ -43,23 +43,10 @@ spec: spec: description: "ConfigConstraintSpec defines the desired state of ConfigConstraint" properties: - configSchema: - description: "Defines a list of parameters including their names, default values, descriptions, types, and constraints (permissible values or the range of valid values)." - properties: - cue: - description: "Hold a string that contains a script written in CUE language that defines a list of configuration items. Each item is detailed with its name, default value, description, type (e.g. string, integer, float), and constraints (permissible values or the valid range of values). \n CUE (Configure, Unify, Execute) is a declarative language designed for defining and validating complex data configurations. It is particularly useful in environments like K8s where complex configurations and validation rules are common. \n This script functions as a validator for user-provided configurations, ensuring compliance with the established specifications and constraints." - type: "string" - schemaInJSON: - description: "Generated from the 'cue' field and transformed into a JSON format." - x-kubernetes-preserve-unknown-fields: true - topLevelKey: - description: "Specifies the top-level key in the 'configSchema.cue' that organizes the validation rules for parameters. This key must exist within the CUE script defined in 'configSchema.cue'." - type: "string" - type: "object" - downwardAPITriggeredActions: + downwardAPIChangeTriggeredActions: description: "TODO: migrate DownwardAPITriggeredActions to ComponentDefinition.spec.lifecycleActions Specifies a list of actions to execute specified commands based on Pod labels. \n It utilizes the K8s Downward API to mount label information as a volume into the pod. The 'config-manager' sidecar container watches for changes in the role label and dynamically invoke registered commands (usually execute some SQL statements) when a change is detected. \n It is designed for scenarios where: \n - Replicas with different roles have different configurations, such as Redis primary & secondary replicas. - After a role switch (e.g., from secondary to primary), some changes in configuration are needed to reflect the new role." items: - description: "DownwardAPITriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated." + description: "DownwardAPIChangeTriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated." properties: command: description: "Specifies the command to be triggered when changes are detected in Downward API volume files. It relies on the inotify mechanism in the config-manager sidecar to monitor file changes." @@ -187,6 +174,19 @@ spec: mergeReloadAndRestart: description: "Indicates whether to consolidate dynamic reload and restart actions into a single restart. \n - If true, updates requiring both actions will result in only a restart, merging the actions. - If false, updates will trigger both actions executed sequentially: first dynamic reload, then restart. \n This flag allows for more efficient handling of configuration changes by potentially eliminating an unnecessary reload step." type: "boolean" + parametersSchema: + description: "Defines a list of parameters including their names, default values, descriptions, types, and constraints (permissible values or the range of valid values)." + properties: + cue: + description: "Hold a string that contains a script written in CUE language that defines a list of configuration items. Each item is detailed with its name, default value, description, type (e.g. string, integer, float), and constraints (permissible values or the valid range of values). \n CUE (Configure, Unify, Execute) is a declarative language designed for defining and validating complex data configurations. It is particularly useful in environments like K8s where complex configurations and validation rules are common. \n This script functions as a validator for user-provided configurations, ensuring compliance with the established specifications and constraints." + type: "string" + schemaInJSON: + description: "Generated from the 'cue' field and transformed into a JSON format." + x-kubernetes-preserve-unknown-fields: true + topLevelKey: + description: "Specifies the top-level key in the 'configSchema.cue' that organizes the validation rules for parameters. This key must exist within the CUE script defined in 'configSchema.cue'." + type: "string" + type: "object" reloadAction: description: "Specifies the dynamic reload (dynamic reconfiguration) actions supported by the engine. When set, the controller executes the scripts defined in these actions to handle dynamic parameter updates. \n Dynamic reloading is triggered only if both of the following conditions are met: \n 1. The modified parameters are listed in the `dynamicParameters` field. If `dynamicParameterSelectedPolicy` is set to \"all\", modifications to `staticParameters` can also trigger a reload. 2. `reloadAction` is set. \n If `reloadAction` is not set or the modified parameters are not listed in `dynamicParameters`, dynamic reloading will not be triggered. \n Example: ```yaml dynamicReloadAction: tplScriptTrigger: namespace: kb-system scriptConfigMapRef: mysql-reload-script sync: true ```" properties: @@ -265,6 +265,37 @@ spec: required: - "command" type: "object" + targetPodSelector: + description: "Used to match labels on the pod to determine whether a dynamic reload should be performed. \n In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload. The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process. \n If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic reload." + 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" tplScriptTrigger: description: "Enables reloading process using a Go template script." properties: @@ -332,37 +363,6 @@ spec: reloadStaticParamsBeforeRestart: description: "Configures whether the dynamic reload specified in `reloadAction` applies only to dynamic parameters or to all parameters (including static parameters). \n - false (default): Only modifications to the dynamic parameters listed in `dynamicParameters` will trigger a dynamic reload. - true: Modifications to both dynamic parameters listed in `dynamicParameters` and static parameters listed in `staticParameters` will trigger a dynamic reload. The \"all\" option is for certain engines that require static parameters to be set via SQL statements before they can take effect on restart." type: "boolean" - reloadedPodSelector: - description: "Used to match labels on the pod to determine whether a dynamic reload should be performed. \n In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload. The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process. \n If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic reload." - 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" staticParameters: description: "List static parameters. Modifications to any of these parameters require a restart of the process to take effect." items: diff --git a/crd-catalog/apecloud/kubeblocks/workloads.kubeblocks.io/v1alpha1/instancesets.yaml b/crd-catalog/apecloud/kubeblocks/workloads.kubeblocks.io/v1alpha1/instancesets.yaml index 68cf1a46b..011030519 100644 --- a/crd-catalog/apecloud/kubeblocks/workloads.kubeblocks.io/v1alpha1/instancesets.yaml +++ b/crd-catalog/apecloud/kubeblocks/workloads.kubeblocks.io/v1alpha1/instancesets.yaml @@ -52,249 +52,6 @@ spec: spec: description: "Defines the desired state of the state machine. It includes the configuration details for the state machine." properties: - alternativeServices: - description: "Defines Alternative Services selector pattern specifier. \n Note: This field will be removed in future version." - items: - description: "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy." - properties: - apiVersion: - description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" - type: "string" - kind: - description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - type: "string" - metadata: - 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" - type: "object" - finalizers: - items: - type: "string" - type: "array" - labels: - additionalProperties: - type: "string" - type: "object" - name: - type: "string" - namespace: - type: "string" - type: "object" - spec: - description: "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - properties: - allocateLoadBalancerNodePorts: - description: "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type." - type: "boolean" - clusterIP: - description: "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - type: "string" - clusterIPs: - description: "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. \n This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - items: - type: "string" - type: "array" - x-kubernetes-list-type: "atomic" - externalIPs: - description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system." - items: - type: "string" - type: "array" - externalName: - description: "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\"." - type: "string" - externalTrafficPolicy: - description: "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node." - type: "string" - healthCheckNodePort: - description: "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set." - format: "int32" - type: "integer" - internalTrafficPolicy: - description: "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features)." - type: "string" - ipFamilies: - description: "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName. \n This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field." - items: - description: "IPFamily represents the IP Family (IPv4 or IPv6). This type is used to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies)." - type: "string" - type: "array" - x-kubernetes-list-type: "atomic" - ipFamilyPolicy: - description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName." - type: "string" - loadBalancerClass: - description: "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type." - type: "string" - loadBalancerIP: - description: "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available." - type: "string" - loadBalancerSourceRanges: - description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/" - items: - type: "string" - type: "array" - ports: - description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - items: - description: "ServicePort contains information on service's port." - properties: - appProtocol: - description: "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: \n * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540 * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 \n * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol." - type: "string" - name: - description: "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service." - type: "string" - nodePort: - description: "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport" - format: "int32" - type: "integer" - port: - description: "The port that will be exposed by this service." - format: "int32" - type: "integer" - protocol: - default: "TCP" - description: "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP." - type: "string" - targetPort: - anyOf: - - type: "integer" - - type: "string" - description: "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - x-kubernetes-int-or-string: true - required: - - "port" - type: "object" - type: "array" - x-kubernetes-list-map-keys: - - "port" - - "protocol" - x-kubernetes-list-type: "map" - publishNotReadyAddresses: - description: "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior." - type: "boolean" - selector: - additionalProperties: - type: "string" - description: "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/" - type: "object" - x-kubernetes-map-type: "atomic" - sessionAffinity: - description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - type: "string" - sessionAffinityConfig: - description: "sessionAffinityConfig contains the configurations of session affinity." - properties: - clientIP: - description: "clientIP contains the configurations of Client IP based session affinity." - properties: - timeoutSeconds: - description: "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours)." - format: "int32" - type: "integer" - type: "object" - type: "object" - type: - description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types" - type: "string" - type: "object" - status: - description: "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - properties: - conditions: - description: "Current service 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 }" - 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." - format: "date-time" - type: "string" - message: - 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." - 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." - maxLength: 1024 - minLength: 1 - pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" - type: "string" - status: - description: "status of the condition, one of True, False, Unknown." - enum: - - "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. 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" - required: - - "lastTransitionTime" - - "message" - - "reason" - - "status" - - "type" - type: "object" - type: "array" - x-kubernetes-list-map-keys: - - "type" - x-kubernetes-list-type: "map" - loadBalancer: - 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." - items: - 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)" - type: "string" - ip: - description: "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - 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" - 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)" - 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" - port: - description: "Port is the port number of the service port of which status is recorded here" - format: "int32" - 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\"" - type: "string" - required: - - "port" - - "protocol" - type: "object" - type: "array" - x-kubernetes-list-type: "atomic" - type: "object" - type: "array" - type: "object" - type: "object" - type: "object" - type: "array" credential: description: "Credential used to connect to DB engine" properties: @@ -2354,9 +2111,6 @@ spec: type: "object" type: "object" x-kubernetes-preserve-unknown-fields: true - serviceName: - description: "Refers to the name of the service that governs this StatefulSet. This service must exist before the StatefulSet and is responsible for the network identity of the set. Pods get DNS/hostnames that follow a specific pattern. \n Note: This field will be removed in future version." - type: "string" template: description: "PodTemplateSpec describes the data a pod should have when created from a template" properties: @@ -6917,7 +6671,6 @@ spec: type: "array" required: - "selector" - - "serviceName" - "template" type: "object" status: diff --git a/crd-catalog/aws/karpenter-provider-aws/karpenter.k8s.aws/v1beta1/ec2nodeclasses.yaml b/crd-catalog/aws/karpenter-provider-aws/karpenter.k8s.aws/v1beta1/ec2nodeclasses.yaml index 6c3e34d7b..662d644cd 100644 --- a/crd-catalog/aws/karpenter-provider-aws/karpenter.k8s.aws/v1beta1/ec2nodeclasses.yaml +++ b/crd-catalog/aws/karpenter-provider-aws/karpenter.k8s.aws/v1beta1/ec2nodeclasses.yaml @@ -311,16 +311,11 @@ spec: requirements: description: "Requirements of the AMI to be utilized on an instance type" items: - description: "A node selector requirement with min values is a selector that contains values, a key, an operator that relates the key and values\nand minValues that represent the requirement to have at least that many values." + description: "A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values." properties: key: description: "The label key that the selector applies to." type: "string" - minValues: - description: "This field is ALPHA and can be dropped or replaced at any time\nMinValues is the minimum number of unique values required to define the flexibility of the specific requirement." - maximum: 50.0 - minimum: 1.0 - type: "integer" operator: description: "Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." type: "string" @@ -329,6 +324,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" @@ -339,6 +335,50 @@ spec: - "requirements" type: "object" type: "array" + conditions: + description: "Conditions contains signals for health and readiness" + items: + description: "Condition aliases the upstream type and adds additional helper methods" + properties: + lastTransitionTime: + description: "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis 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.\nThis may be an empty string." + maxLength: 32768 + type: "string" + observedGeneration: + description: "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." + maxLength: 1024 + minLength: 1 + pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" + type: "string" + status: + description: "status of the condition, one of True, False, Unknown." + enum: + - "True" + - "False" + - "Unknown" + type: "string" + type: + description: "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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" + required: + - "lastTransitionTime" + - "message" + - "reason" + - "status" + - "type" + type: "object" + type: "array" instanceProfile: description: "InstanceProfile contains the resolved instance profile for the role" type: "string" diff --git a/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodeclaims.yaml b/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodeclaims.yaml index 462de5434..ab9bc96a1 100644 --- a/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodeclaims.yaml +++ b/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodeclaims.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "nodeclaims.karpenter.sh" spec: group: "karpenter.sh" @@ -210,6 +210,7 @@ spec: maxLength: 63 pattern: "^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" @@ -324,27 +325,40 @@ spec: conditions: description: "Conditions contains signals for health and readiness" items: - description: "Condition defines a readiness condition for a Knative resource.\nSee: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties" + description: "Condition aliases the upstream type and adds additional helper methods" properties: lastTransitionTime: - description: "LastTransitionTime is the last time the condition transitioned from one status to another.\nWe use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic\ndifferences (all other things held constant)." + description: "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis 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." + description: "message is a human readable message indicating details about the transition.\nThis may be an empty string." + maxLength: 32768 type: "string" + observedGeneration: + description: "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance." + format: "int64" + minimum: 0.0 + type: "integer" reason: - description: "The reason for the condition's last transition." - type: "string" - severity: - description: "Severity with which to treat failures of this type of condition.\nWhen this is not specified, it defaults to Error." + description: "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." + maxLength: 1024 + pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" type: "string" status: - description: "Status of the condition, one of True, False, Unknown." + description: "status of the condition, one of True, False, Unknown." + enum: + - "True" + - "False" + - "Unknown" type: "string" type: - description: "Type of condition." + description: "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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" required: + - "lastTransitionTime" - "status" - "type" type: "object" diff --git a/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodepools.yaml b/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodepools.yaml index 2905d790e..bf58244f5 100644 --- a/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodepools.yaml +++ b/crd-catalog/aws/karpenter-provider-aws/karpenter.sh/v1beta1/nodepools.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "nodepools.karpenter.sh" spec: group: "karpenter.sh" @@ -292,6 +292,7 @@ spec: maxLength: 63 pattern: "^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" diff --git a/crd-catalog/b3scale/b3scale-operator/b3scale.io/v1/bbbfrontends.yaml b/crd-catalog/b3scale/b3scale-operator/b3scale.io/v1/bbbfrontends.yaml new file mode 100644 index 000000000..04fca6797 --- /dev/null +++ b/crd-catalog/b3scale/b3scale-operator/b3scale.io/v1/bbbfrontends.yaml @@ -0,0 +1,126 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + name: "bbbfrontends.b3scale.io" +spec: + group: "b3scale.io" + names: + kind: "BBBFrontend" + listKind: "BBBFrontendList" + plural: "bbbfrontends" + singular: "bbbfrontend" + scope: "Namespaced" + versions: + - name: "v1" + schema: + openAPIV3Schema: + properties: + spec: + description: "Desired state of the BBBFrontend resource." + properties: + credentials: + description: "Predefined credentials for the B3scale instance" + properties: + frontend: + description: "Predefined key for B3scale instance" + type: "string" + secretRef: + description: "SecretRef is a reference to a key in a Secret resource containing the key to connect to the BBB instance." + properties: + key: + description: "The key of the entry in the Secret resource's `data` field to be used." + type: "string" + name: + description: "Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + type: "string" + required: + - "name" + - "key" + type: "object" + required: + - "frontend" + - "secretRef" + type: "object" + deletionProtection: + default: false + description: "Protect BBB frontend resource from deletion in b3scale API" + type: "boolean" + frontendID: + description: "Unique BBB frontend ID generated by the b3scale API during creation" + nullable: true + type: "string" + settings: + description: "Settings defines the B3Scale instance settings" + properties: + createDefaultParams: + additionalProperties: + type: "string" + description: "See https://github.com/b3scale/b3scale#configure-create-parameter-defaults-and-overrides" + nullable: true + type: "object" + createOverrideParams: + additionalProperties: + type: "string" + description: "See https://github.com/b3scale/b3scale#configure-create-parameter-defaults-and-overrides" + nullable: true + type: "object" + defaultPresentation: + description: "See https://github.com/b3scale/b3scale#middleware-configuration" + nullable: true + properties: + force: + type: "boolean" + url: + type: "string" + type: "object" + requiredTags: + description: "See https://github.com/b3scale/b3scale#middleware-configuration" + items: + type: "string" + nullable: true + type: "array" + type: "object" + type: "object" + status: + description: "Status of the BBBFrontend. This is set and managed automatically." + properties: + conditions: + description: "List of status conditions to indicate the status of the BBB frontend. Known condition types are `Ready`." + items: + description: "BBBFrontendCondition contains condition information for an BBBFrontend." + properties: + lastTransitionTime: + description: "LastTransitionTime is the timestamp corresponding to the last status change of this condition." + format: "date-time" + type: "string" + message: + description: "Message is a human readable description of the details of the last transition, complementing reason." + type: "string" + observedGeneration: + description: "If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the BBBFrontend." + format: "int64" + type: "integer" + reason: + description: "Reason is a brief machine readable explanation for the condition's last transition." + type: "string" + status: + description: "Status of the condition, one of (`True`, `False`, `Unknown`)." + enum: + - "True" + - "False" + - "Unknown" + type: "string" + type: + description: "Type of the condition, known values are (`Ready`)." + type: "string" + required: + - "status" + - "type" + type: "object" + type: "array" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} 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 475ecce6d..9bcddb1de 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 @@ -323,6 +323,32 @@ spec: required: - "name" type: "object" + auth: + description: "Auth configures how cert-manager authenticates." + properties: + kubernetes: + description: "Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity\nby passing a bound ServiceAccount token." + properties: + serviceAccountRef: + description: "A reference to a service account that will be used to request a bound\ntoken (also known as \"projected token\"). To use this field, you must\nconfigure an RBAC rule to let cert-manager request a token." + properties: + audiences: + description: "TokenAudiences is an optional list of audiences to include in the\ntoken passed to AWS. The default token consisting of the issuer's namespace\nand name is always included.\nIf unset the audience defaults to `sts.amazonaws.com`." + items: + type: "string" + type: "array" + name: + description: "Name of the ServiceAccount used to request a token." + type: "string" + required: + - "name" + type: "object" + required: + - "serviceAccountRef" + type: "object" + required: + - "kubernetes" + type: "object" hostedZoneID: description: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call." type: "string" diff --git a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml index 0ff434a29..b1503dbfc 100644 --- a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml +++ b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml @@ -173,7 +173,7 @@ spec: type: "object" type: "object" literalSubject: - description: "Requested X.509 certificate subject, represented using the LDAP \"String\nRepresentation of a Distinguished Name\" [1].\nImportant: the LDAP string format also specifies the order of the attributes\nin the subject, this is important when issuing certs for LDAP authentication.\nExample: `CN=foo,DC=corp,DC=example,DC=com`\nMore info [1]: https://datatracker.ietf.org/doc/html/rfc4514\nMore info: https://github.com/cert-manager/cert-manager/issues/3203\nMore info: https://github.com/cert-manager/cert-manager/issues/4424\n\n\nCannot be set if the `subject` or `commonName` field is set.\nThis is an Alpha Feature and is only enabled with the\n`--feature-gates=LiteralCertificateSubject=true` option set on both\nthe controller and webhook components." + description: "Requested X.509 certificate subject, represented using the LDAP \"String\nRepresentation of a Distinguished Name\" [1].\nImportant: the LDAP string format also specifies the order of the attributes\nin the subject, this is important when issuing certs for LDAP authentication.\nExample: `CN=foo,DC=corp,DC=example,DC=com`\nMore info [1]: https://datatracker.ietf.org/doc/html/rfc4514\nMore info: https://github.com/cert-manager/cert-manager/issues/3203\nMore info: https://github.com/cert-manager/cert-manager/issues/4424\n\n\nCannot be set if the `subject` or `commonName` field is set." type: "string" nameConstraints: description: "x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate.\nMore Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10\n\n\nThis is an Alpha Feature and is only enabled with the\n`--feature-gates=NameConstraints=true` option set on both\nthe controller and webhook components." 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 0d98154cf..7093b03ae 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 @@ -365,6 +365,32 @@ spec: required: - "name" type: "object" + auth: + description: "Auth configures how cert-manager authenticates." + properties: + kubernetes: + description: "Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity\nby passing a bound ServiceAccount token." + properties: + serviceAccountRef: + description: "A reference to a service account that will be used to request a bound\ntoken (also known as \"projected token\"). To use this field, you must\nconfigure an RBAC rule to let cert-manager request a token." + properties: + audiences: + description: "TokenAudiences is an optional list of audiences to include in the\ntoken passed to AWS. The default token consisting of the issuer's namespace\nand name is always included.\nIf unset the audience defaults to `sts.amazonaws.com`." + items: + type: "string" + type: "array" + name: + description: "Name of the ServiceAccount used to request a token." + type: "string" + required: + - "name" + type: "object" + required: + - "serviceAccountRef" + type: "object" + required: + - "kubernetes" + type: "object" hostedZoneID: description: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call." type: "string" 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 4c3f49845..b0612a555 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 @@ -366,6 +366,32 @@ spec: required: - "name" type: "object" + auth: + description: "Auth configures how cert-manager authenticates." + properties: + kubernetes: + description: "Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity\nby passing a bound ServiceAccount token." + properties: + serviceAccountRef: + description: "A reference to a service account that will be used to request a bound\ntoken (also known as \"projected token\"). To use this field, you must\nconfigure an RBAC rule to let cert-manager request a token." + properties: + audiences: + description: "TokenAudiences is an optional list of audiences to include in the\ntoken passed to AWS. The default token consisting of the issuer's namespace\nand name is always included.\nIf unset the audience defaults to `sts.amazonaws.com`." + items: + type: "string" + type: "array" + name: + description: "Name of the ServiceAccount used to request a token." + type: "string" + required: + - "name" + type: "object" + required: + - "serviceAccountRef" + type: "object" + required: + - "kubernetes" + type: "object" hostedZoneID: description: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call." type: "string" diff --git a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwideenvoyconfigs.yaml b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwideenvoyconfigs.yaml index 70ecce912..a59257a66 100644 --- a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwideenvoyconfigs.yaml +++ b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwideenvoyconfigs.yaml @@ -47,7 +47,7 @@ spec: description: "Namespace is the Kubernetes service namespace. In CiliumEnvoyConfig namespace defaults to the namespace of the CEC, In CiliumClusterwideEnvoyConfig namespace defaults to \"default\"." type: "string" number: - description: "Port is the port number, which can be used for filtering in case of underlying is exposing multiple port numbers." + description: "Ports is a set of port numbers, which can be used for filtering in case of underlying is exposing multiple port numbers." items: type: "string" type: "array" @@ -114,6 +114,11 @@ spec: namespace: description: "Namespace is the Kubernetes service namespace. In CiliumEnvoyConfig namespace this is overridden to the namespace of the CEC, In CiliumClusterwideEnvoyConfig namespace defaults to \"default\"." type: "string" + ports: + description: "Ports is a set of service's frontend ports that should be redirected to the Envoy listener. By default all frontend ports of the service are redirected." + items: + type: "integer" + type: "array" required: - "name" type: "object" diff --git a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumenvoyconfigs.yaml b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumenvoyconfigs.yaml index 7f3a2a75c..5b569abc1 100644 --- a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumenvoyconfigs.yaml +++ b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumenvoyconfigs.yaml @@ -47,7 +47,7 @@ spec: description: "Namespace is the Kubernetes service namespace. In CiliumEnvoyConfig namespace defaults to the namespace of the CEC, In CiliumClusterwideEnvoyConfig namespace defaults to \"default\"." type: "string" number: - description: "Port is the port number, which can be used for filtering in case of underlying is exposing multiple port numbers." + description: "Ports is a set of port numbers, which can be used for filtering in case of underlying is exposing multiple port numbers." items: type: "string" type: "array" @@ -114,6 +114,11 @@ spec: namespace: description: "Namespace is the Kubernetes service namespace. In CiliumEnvoyConfig namespace this is overridden to the namespace of the CEC, In CiliumClusterwideEnvoyConfig namespace defaults to \"default\"." type: "string" + ports: + description: "Ports is a set of service's frontend ports that should be redirected to the Envoy listener. By default all frontend ports of the service are redirected." + items: + type: "integer" + type: "array" required: - "name" type: "object" diff --git a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/backups.yaml b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/backups.yaml index c9b4386e3..673e19c68 100644 --- a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/backups.yaml +++ b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/backups.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "backups.postgresql.cnpg.io" spec: group: "postgresql.cnpg.io" 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 a2e18aedc..f088ea6af 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 @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "clusters.postgresql.cnpg.io" spec: group: "postgresql.cnpg.io" @@ -82,11 +82,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -95,13 +97,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -125,11 +127,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -142,6 +146,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -157,6 +162,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: description: "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied." items: @@ -181,11 +187,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -194,13 +202,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -224,11 +232,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -241,6 +251,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -248,6 +259,7 @@ spec: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" additionalPodAntiAffinity: description: "AdditionalPodAntiAffinity allows to specify pod anti-affinity terms to be added to the ones generated\nby the operator if EnablePodAntiAffinity is set to true (default) or to be used exclusively if set to false." @@ -279,11 +291,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -292,13 +306,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -322,11 +336,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -339,6 +355,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -354,6 +371,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: description: "If the anti-affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the anti-affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied." items: @@ -378,11 +396,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -391,13 +411,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -421,11 +441,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -438,6 +460,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -445,6 +468,7 @@ spec: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" enablePodAntiAffinity: description: "Activates anti-affinity for the pods. The operator will define pods\nanti-affinity unless this field is explicitly set to false" @@ -476,11 +500,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: description: "A list of node selector requirements by node's fields." items: @@ -497,11 +523,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" x-kubernetes-map-type: "atomic" weight: @@ -513,6 +541,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: description: "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to an update), the system\nmay or may not try to eventually evict the pod from its node." properties: @@ -537,11 +566,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: description: "A list of node selector requirements by node's fields." items: @@ -558,14 +589,17 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" x-kubernetes-map-type: "atomic" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -1247,7 +1281,8 @@ spec: description: "The key to select." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap or its key must be defined" @@ -1296,7 +1331,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -1319,7 +1355,8 @@ spec: description: "The ConfigMap to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap must be defined" @@ -1333,7 +1370,8 @@ spec: description: "The Secret to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret must be defined" @@ -1359,6 +1397,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: description: "dataSource field can be used to specify either:\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n* An existing PVC (PersistentVolumeClaim)\nIf the provisioner or an external controller can support the specified data source,\nit will create a new volume based on the contents of the specified data source.\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource." properties: @@ -1436,11 +1475,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1452,7 +1493,7 @@ spec: description: "storageClassName is the name of the StorageClass required by the claim.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeAttributesClassName: - description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." + description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim.\nValue of Filesystem is implied when not included in claim spec." @@ -1731,7 +1772,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -1747,7 +1789,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -1763,7 +1806,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -1779,7 +1823,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -2187,7 +2232,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -2309,11 +2355,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2359,8 +2407,10 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "optional specify whether the ConfigMap or its keys must be defined" @@ -2376,7 +2426,7 @@ spec: description: "DownwardAPIVolumeFile represents information to create the file containing the pod field" properties: fieldRef: - description: "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported." properties: apiVersion: description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." @@ -2419,6 +2469,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" secret: description: "secret information about the secret data to project" @@ -2443,8 +2494,10 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "optional field specify whether the Secret or its key must be defined" @@ -2469,6 +2522,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" replica: description: "Replica cluster configuration" @@ -2624,6 +2678,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: description: "dataSource field can be used to specify either:\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n* An existing PVC (PersistentVolumeClaim)\nIf the provisioner or an external controller can support the specified data source,\nit will create a new volume based on the contents of the specified data source.\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource." properties: @@ -2701,11 +2756,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2717,7 +2774,7 @@ spec: description: "storageClassName is the name of the StorageClass required by the claim.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeAttributesClassName: - description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." + description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim.\nValue of Filesystem is implied when not included in claim spec." @@ -2776,6 +2833,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: description: "dataSource field can be used to specify either:\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n* An existing PVC (PersistentVolumeClaim)\nIf the provisioner or an external controller can support the specified data source,\nit will create a new volume based on the contents of the specified data source.\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource." properties: @@ -2853,11 +2911,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2869,7 +2929,7 @@ spec: description: "storageClassName is the name of the StorageClass required by the claim.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeAttributesClassName: - description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." + description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim.\nValue of Filesystem is implied when not included in claim spec." @@ -2922,11 +2982,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2945,7 +3007,7 @@ spec: format: "int32" type: "integer" minDomains: - description: "MinDomains indicates a minimum number of eligible domains.\nWhen the number of eligible domains with matching topology keys is less than minDomains,\nPod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\nthis value has no effect on scheduling.\nAs a result, when the number of eligible domains is less than minDomains,\nscheduler won't schedule more than maxSkew Pods to those domains.\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\nValid values are integers greater than 0.\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\nlabelSelector spread as 2/2/2:\n| zone1 | zone2 | zone3 |\n| P P | P P | P P |\nThe number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\nIn this situation, new pod with the same labelSelector cannot be scheduled,\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\nit will violate MaxSkew.\n\n\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)." + description: "MinDomains indicates a minimum number of eligible domains.\nWhen the number of eligible domains with matching topology keys is less than minDomains,\nPod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\nthis value has no effect on scheduling.\nAs a result, when the number of eligible domains is less than minDomains,\nscheduler won't schedule more than maxSkew Pods to those domains.\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\nValid values are integers greater than 0.\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\nlabelSelector spread as 2/2/2:\n| zone1 | zone2 | zone3 |\n| P P | P P | P P |\nThe number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\nIn this situation, new pod with the same labelSelector cannot be scheduled,\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\nit will violate MaxSkew." format: "int32" type: "integer" nodeAffinityPolicy: @@ -2977,6 +3039,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: description: "dataSource field can be used to specify either:\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n* An existing PVC (PersistentVolumeClaim)\nIf the provisioner or an external controller can support the specified data source,\nit will create a new volume based on the contents of the specified data source.\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource." properties: @@ -3054,11 +3117,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3070,7 +3135,7 @@ spec: description: "storageClassName is the name of the StorageClass required by the claim.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeAttributesClassName: - description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." + description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim.\nValue of Filesystem is implied when not included in claim spec." diff --git a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/poolers.yaml b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/poolers.yaml index fda421d46..96173ac04 100644 --- a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/poolers.yaml +++ b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/poolers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "poolers.postgresql.cnpg.io" spec: group: "postgresql.cnpg.io" @@ -272,6 +272,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" externalName: description: "externalName is the external reference that discovery mechanisms will\nreturn as an alias for this service (e.g. a DNS CNAME record). No\nproxying will be involved. Must be a lowercase RFC-1123 hostname\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\"." type: "string" @@ -306,6 +307,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" ports: description: "The list of ports that are exposed by this service.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" items: @@ -367,6 +369,9 @@ spec: type: "integer" type: "object" type: "object" + trafficDistribution: + description: "TrafficDistribution offers a way to express preferences for how traffic is\ndistributed to Service endpoints. Implementations can use this field as a\nhint, but are not required to guarantee strict adherence. If the field is\nnot set, the implementation will apply its default routing strategy. If set\nto \"PreferClose\", implementations should prioritize endpoints that are\ntopologically close (e.g., same zone).\nThis is an alpha field and requires enabling ServiceTrafficDistribution feature." + type: "string" type: description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n\"ClusterIP\" allocates a cluster-internal IP address for load-balancing\nto endpoints. Endpoints are determined by the selector or if that is not\nspecified, by manual construction of an Endpoints object or\nEndpointSlice objects. If clusterIP is \"None\", no virtual IP is\nallocated and the endpoints are published as a set of endpoints rather\nthan a virtual IP.\n\"NodePort\" builds on ClusterIP and allocates a port on every node which\nroutes to the same endpoints as the clusterIP.\n\"LoadBalancer\" builds on NodePort and creates an external load-balancer\n(if supported in the current cloud) which routes to the same endpoints\nas the clusterIP.\n\"ExternalName\" aliases this service to the specified externalName.\nSeveral other fields do not apply to ExternalName services.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types" type: "string" @@ -426,11 +431,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: description: "A list of node selector requirements by node's fields." items: @@ -447,11 +454,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" x-kubernetes-map-type: "atomic" weight: @@ -463,6 +472,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: description: "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to an update), the system\nmay or may not try to eventually evict the pod from its node." properties: @@ -487,11 +497,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: description: "A list of node selector requirements by node's fields." items: @@ -508,14 +520,17 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" x-kubernetes-map-type: "atomic" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -551,11 +566,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -564,13 +581,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -594,11 +611,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -611,6 +630,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -626,6 +646,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: description: "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied." items: @@ -650,11 +671,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -663,13 +686,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -693,11 +716,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -710,6 +735,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -717,6 +743,7 @@ spec: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" podAntiAffinity: description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." @@ -748,11 +775,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -761,13 +790,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -791,11 +820,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -808,6 +839,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -823,6 +855,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: description: "If the anti-affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the anti-affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied." items: @@ -847,11 +880,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -860,13 +895,13 @@ spec: type: "object" x-kubernetes-map-type: "atomic" matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\nAlso, MatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both matchLabelKeys and labelSelector.\nAlso, matchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" x-kubernetes-list-type: "atomic" mismatchLabelKeys: - description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both MismatchLabelKeys and LabelSelector.\nAlso, MismatchLabelKeys cannot be set when LabelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." + description: "MismatchLabelKeys is a set of pod label keys to select which pods will\nbe taken into consideration. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\nto select the group of existing pods which pods will be taken into consideration\nfor the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\npod labels will be ignored. The default value is empty.\nThe same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\nAlso, mismatchLabelKeys cannot be set when labelSelector isn't set.\nThis is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate." items: type: "string" type: "array" @@ -890,11 +925,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -907,6 +944,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" @@ -914,6 +952,7 @@ spec: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "object" automountServiceAccountToken: @@ -929,11 +968,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: description: "Entrypoint array. Not executed within a shell.\nThe container image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\nproduce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\nof whether the variable exists or not. Cannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: description: "List of environment variables to set in the container.\nCannot be updated." items: @@ -955,7 +996,8 @@ spec: description: "The key to select." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap or its key must be defined" @@ -1004,7 +1046,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -1018,6 +1061,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: description: "List of sources to populate environment variables in the container.\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\nwill be reported as an event when the container is starting. When a key exists in multiple\nsources, the value associated with the last source will take precedence.\nValues defined by an Env with a duplicate key will take precedence.\nCannot be updated." items: @@ -1027,7 +1073,8 @@ spec: description: "The ConfigMap to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap must be defined" @@ -1041,7 +1088,8 @@ spec: description: "The Secret to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret must be defined" @@ -1050,6 +1098,7 @@ spec: x-kubernetes-map-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: description: "Container image name.\nMore info: https://kubernetes.io/docs/concepts/containers/images\nThis field is optional to allow higher level config management to default or override\ncontainer images in workload controllers like Deployments and StatefulSets." type: "string" @@ -1070,6 +1119,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: description: "HTTPGet specifies the http request to perform." @@ -1093,6 +1143,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -1145,6 +1196,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: description: "HTTPGet specifies the http request to perform." @@ -1168,6 +1220,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -1221,6 +1274,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -1261,6 +1315,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -1357,6 +1412,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -1397,6 +1453,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -1511,6 +1568,18 @@ spec: allowPrivilegeEscalation: description: "AllowPrivilegeEscalation controls whether a process can gain more\nprivileges than its parent process. This bool directly controls if\nthe no_new_privs flag will be set on the container process.\nAllowPrivilegeEscalation is true always when the container is:\n1) run as Privileged\n2) has CAP_SYS_ADMIN\nNote that this field cannot be set when spec.os.name is windows." type: "boolean" + appArmorProfile: + description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile\noverrides the pod's appArmorProfile.\nNote that this field cannot be set when spec.os.name is windows." + properties: + localhostProfile: + description: "localhostProfile indicates a profile loaded on the node that should be used.\nThe profile must be preconfigured on the node to work.\nMust match the loaded name of the profile.\nMust be set if and only if type is \"Localhost\"." + type: "string" + type: + description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement." + type: "string" + required: + - "type" + type: "object" capabilities: description: "The capabilities to add/drop when running containers.\nDefaults to the default set of capabilities granted by the container runtime.\nNote that this field cannot be set when spec.os.name is windows." properties: @@ -1520,12 +1589,14 @@ spec: description: "Capability represent POSIX capabilities type" type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: description: "Removed capabilities" items: description: "Capability represent POSIX capabilities type" type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: description: "Run container in privileged mode.\nProcesses in privileged containers are essentially equivalent to root on the host.\nDefaults to false.\nNote that this field cannot be set when spec.os.name is windows." @@ -1603,6 +1674,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -1643,6 +1715,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -1725,6 +1798,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: description: "Pod volumes to mount into the container's filesystem.\nCannot be updated." items: @@ -1734,7 +1810,7 @@ spec: description: "Path within the container at which the volume should be mounted. Must\nnot contain ':'." type: "string" mountPropagation: - description: "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10." + description: "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10.\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\n(which defaults to None)." type: "string" name: description: "This must match the Name of a Volume." @@ -1742,6 +1818,9 @@ spec: readOnly: description: "Mounted read-only if true, read-write otherwise (false or unspecified).\nDefaults to false." type: "boolean" + recursiveReadOnly: + description: "RecursiveReadOnly specifies whether read-only mounts should be handled\nrecursively.\n\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\nrecursively read-only. If this field is set to IfPossible, the mount is made\nrecursively read-only, if it is supported by the container runtime. If this\nfield is set to Enabled, the mount is made recursively read-only if it is\nsupported by the container runtime, otherwise the pod will not be started and\nan error will be generated to indicate the reason.\n\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\nNone (or be unspecified, which defaults to None).\n\n\nIf this field is not specified, it is treated as an equivalent of Disabled." + type: "string" subPath: description: "Path within the volume from which the container's volume should be mounted.\nDefaults to \"\" (volume's root)." type: "string" @@ -1753,6 +1832,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: description: "Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\nCannot be updated." type: "string" @@ -1760,6 +1842,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" dnsConfig: description: "Specifies the DNS parameters of a pod.\nParameters specified here will be merged to the generated DNS\nconfiguration based on DNSPolicy." properties: @@ -1768,6 +1853,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" options: description: "A list of DNS resolver options.\nThis will be merged with the base options generated from DNSPolicy.\nDuplicated entries will be removed. Resolution options given in Options\nwill override those that appear in the base DNSPolicy." items: @@ -1780,11 +1866,13 @@ spec: type: "string" type: "object" type: "array" + x-kubernetes-list-type: "atomic" searches: description: "A list of DNS search domains for host-name lookup.\nThis will be appended to the base search paths generated from DNSPolicy.\nDuplicated search paths will be removed." items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" dnsPolicy: description: "Set DNS policy for the pod.\nDefaults to \"ClusterFirst\".\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\nexplicitly to 'ClusterFirstWithHostNet'." @@ -1802,11 +1890,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: description: "Entrypoint array. Not executed within a shell.\nThe image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\nproduce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\nof whether the variable exists or not. Cannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: description: "List of environment variables to set in the container.\nCannot be updated." items: @@ -1828,7 +1918,8 @@ spec: description: "The key to select." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap or its key must be defined" @@ -1877,7 +1968,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -1891,6 +1983,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: description: "List of sources to populate environment variables in the container.\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\nwill be reported as an event when the container is starting. When a key exists in multiple\nsources, the value associated with the last source will take precedence.\nValues defined by an Env with a duplicate key will take precedence.\nCannot be updated." items: @@ -1900,7 +1995,8 @@ spec: description: "The ConfigMap to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap must be defined" @@ -1914,7 +2010,8 @@ spec: description: "The Secret to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret must be defined" @@ -1923,6 +2020,7 @@ spec: x-kubernetes-map-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: description: "Container image name.\nMore info: https://kubernetes.io/docs/concepts/containers/images" type: "string" @@ -1943,6 +2041,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: description: "HTTPGet specifies the http request to perform." @@ -1966,6 +2065,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2018,6 +2118,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: description: "HTTPGet specifies the http request to perform." @@ -2041,6 +2142,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2094,6 +2196,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -2134,6 +2237,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2230,6 +2334,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -2270,6 +2375,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2384,6 +2490,18 @@ spec: allowPrivilegeEscalation: description: "AllowPrivilegeEscalation controls whether a process can gain more\nprivileges than its parent process. This bool directly controls if\nthe no_new_privs flag will be set on the container process.\nAllowPrivilegeEscalation is true always when the container is:\n1) run as Privileged\n2) has CAP_SYS_ADMIN\nNote that this field cannot be set when spec.os.name is windows." type: "boolean" + appArmorProfile: + description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile\noverrides the pod's appArmorProfile.\nNote that this field cannot be set when spec.os.name is windows." + properties: + localhostProfile: + description: "localhostProfile indicates a profile loaded on the node that should be used.\nThe profile must be preconfigured on the node to work.\nMust match the loaded name of the profile.\nMust be set if and only if type is \"Localhost\"." + type: "string" + type: + description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement." + type: "string" + required: + - "type" + type: "object" capabilities: description: "The capabilities to add/drop when running containers.\nDefaults to the default set of capabilities granted by the container runtime.\nNote that this field cannot be set when spec.os.name is windows." properties: @@ -2393,12 +2511,14 @@ spec: description: "Capability represent POSIX capabilities type" type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: description: "Removed capabilities" items: description: "Capability represent POSIX capabilities type" type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: description: "Run container in privileged mode.\nProcesses in privileged containers are essentially equivalent to root on the host.\nDefaults to false.\nNote that this field cannot be set when spec.os.name is windows." @@ -2476,6 +2596,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -2516,6 +2637,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2601,6 +2723,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: description: "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\nCannot be updated." items: @@ -2610,7 +2735,7 @@ spec: description: "Path within the container at which the volume should be mounted. Must\nnot contain ':'." type: "string" mountPropagation: - description: "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10." + description: "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10.\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\n(which defaults to None)." type: "string" name: description: "This must match the Name of a Volume." @@ -2618,6 +2743,9 @@ spec: readOnly: description: "Mounted read-only if true, read-write otherwise (false or unspecified).\nDefaults to false." type: "boolean" + recursiveReadOnly: + description: "RecursiveReadOnly specifies whether read-only mounts should be handled\nrecursively.\n\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\nrecursively read-only. If this field is set to IfPossible, the mount is made\nrecursively read-only, if it is supported by the container runtime. If this\nfield is set to Enabled, the mount is made recursively read-only if it is\nsupported by the container runtime, otherwise the pod will not be started and\nan error will be generated to indicate the reason.\n\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\nNone (or be unspecified, which defaults to None).\n\n\nIf this field is not specified, it is treated as an equivalent of Disabled." + type: "string" subPath: description: "Path within the volume from which the container's volume should be mounted.\nDefaults to \"\" (volume's root)." type: "string" @@ -2629,6 +2757,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: description: "Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\nCannot be updated." type: "string" @@ -2636,8 +2767,11 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" hostAliases: - description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\nfile if specified. This is only valid for non-hostNetwork pods." + description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\nfile if specified." items: description: "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\npod's hosts file." properties: @@ -2646,11 +2780,17 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" ip: description: "IP address of the host file entry." type: "string" + required: + - "ip" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "ip" + x-kubernetes-list-type: "map" hostIPC: description: "Use the host's ipc namespace.\nOptional: Default to false." type: "boolean" @@ -2672,11 +2812,15 @@ spec: description: "LocalObjectReference contains enough information to let you locate the\nreferenced object inside the same namespace." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" initContainers: description: "List of initialization containers belonging to the pod.\nInit containers are executed in order prior to containers being started. If any\ninit container fails, the pod is considered to have failed and is handled according\nto its restartPolicy. The name for an init container or normal container must be\nunique among all containers.\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\nThe resourceRequirements of an init container are taken into account during scheduling\nby finding the highest request/limit for each resource type, and then using the max of\nof that value or the sum of the normal containers. Limits are applied to init containers\nin a similar fashion.\nInit containers cannot currently be added or removed.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" items: @@ -2687,11 +2831,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: description: "Entrypoint array. Not executed within a shell.\nThe container image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\nproduce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\nof whether the variable exists or not. Cannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: description: "List of environment variables to set in the container.\nCannot be updated." items: @@ -2713,7 +2859,8 @@ spec: description: "The key to select." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap or its key must be defined" @@ -2762,7 +2909,8 @@ spec: description: "The key of the secret to select from. Must be a valid secret key." type: "string" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret or its key must be defined" @@ -2776,6 +2924,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: description: "List of sources to populate environment variables in the container.\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\nwill be reported as an event when the container is starting. When a key exists in multiple\nsources, the value associated with the last source will take precedence.\nValues defined by an Env with a duplicate key will take precedence.\nCannot be updated." items: @@ -2785,7 +2936,8 @@ spec: description: "The ConfigMap to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the ConfigMap must be defined" @@ -2799,7 +2951,8 @@ spec: description: "The Secret to select from" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "Specify whether the Secret must be defined" @@ -2808,6 +2961,7 @@ spec: x-kubernetes-map-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: description: "Container image name.\nMore info: https://kubernetes.io/docs/concepts/containers/images\nThis field is optional to allow higher level config management to default or override\ncontainer images in workload controllers like Deployments and StatefulSets." type: "string" @@ -2828,6 +2982,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: description: "HTTPGet specifies the http request to perform." @@ -2851,6 +3006,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2903,6 +3059,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: description: "HTTPGet specifies the http request to perform." @@ -2926,6 +3083,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -2979,6 +3137,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -3019,6 +3178,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -3115,6 +3275,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -3155,6 +3316,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -3269,6 +3431,18 @@ spec: allowPrivilegeEscalation: description: "AllowPrivilegeEscalation controls whether a process can gain more\nprivileges than its parent process. This bool directly controls if\nthe no_new_privs flag will be set on the container process.\nAllowPrivilegeEscalation is true always when the container is:\n1) run as Privileged\n2) has CAP_SYS_ADMIN\nNote that this field cannot be set when spec.os.name is windows." type: "boolean" + appArmorProfile: + description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile\noverrides the pod's appArmorProfile.\nNote that this field cannot be set when spec.os.name is windows." + properties: + localhostProfile: + description: "localhostProfile indicates a profile loaded on the node that should be used.\nThe profile must be preconfigured on the node to work.\nMust match the loaded name of the profile.\nMust be set if and only if type is \"Localhost\"." + type: "string" + type: + description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement." + type: "string" + required: + - "type" + type: "object" capabilities: description: "The capabilities to add/drop when running containers.\nDefaults to the default set of capabilities granted by the container runtime.\nNote that this field cannot be set when spec.os.name is windows." properties: @@ -3278,12 +3452,14 @@ spec: description: "Capability represent POSIX capabilities type" type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: description: "Removed capabilities" items: description: "Capability represent POSIX capabilities type" type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: description: "Run container in privileged mode.\nProcesses in privileged containers are essentially equivalent to root on the host.\nDefaults to false.\nNote that this field cannot be set when spec.os.name is windows." @@ -3361,6 +3537,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: description: "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1." @@ -3401,6 +3578,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: description: "Path to access on the HTTP server." type: "string" @@ -3483,6 +3661,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: description: "Pod volumes to mount into the container's filesystem.\nCannot be updated." items: @@ -3492,7 +3673,7 @@ spec: description: "Path within the container at which the volume should be mounted. Must\nnot contain ':'." type: "string" mountPropagation: - description: "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10." + description: "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10.\nWhen RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\n(which defaults to None)." type: "string" name: description: "This must match the Name of a Volume." @@ -3500,6 +3681,9 @@ spec: readOnly: description: "Mounted read-only if true, read-write otherwise (false or unspecified).\nDefaults to false." type: "boolean" + recursiveReadOnly: + description: "RecursiveReadOnly specifies whether read-only mounts should be handled\nrecursively.\n\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made\nrecursively read-only. If this field is set to IfPossible, the mount is made\nrecursively read-only, if it is supported by the container runtime. If this\nfield is set to Enabled, the mount is made recursively read-only if it is\nsupported by the container runtime, otherwise the pod will not be started and\nan error will be generated to indicate the reason.\n\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to\nNone (or be unspecified, which defaults to None).\n\n\nIf this field is not specified, it is treated as an equivalent of Disabled." + type: "string" subPath: description: "Path within the volume from which the container's volume should be mounted.\nDefaults to \"\" (volume's root)." type: "string" @@ -3511,6 +3695,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: description: "Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\nCannot be updated." type: "string" @@ -3518,6 +3705,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" nodeName: description: "NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\nrequirements." type: "string" @@ -3528,7 +3718,7 @@ spec: type: "object" x-kubernetes-map-type: "atomic" os: - description: "Specifies the OS of the containers in the pod.\nSome pod and container fields are restricted if this is set.\n\n\nIf the OS field is set to linux, the following fields must be unset:\n-securityContext.windowsOptions\n\n\nIf the OS field is set to windows, following fields must be unset:\n- spec.hostPID\n- spec.hostIPC\n- spec.hostUsers\n- spec.securityContext.seLinuxOptions\n- spec.securityContext.seccompProfile\n- spec.securityContext.fsGroup\n- spec.securityContext.fsGroupChangePolicy\n- spec.securityContext.sysctls\n- spec.shareProcessNamespace\n- spec.securityContext.runAsUser\n- spec.securityContext.runAsGroup\n- spec.securityContext.supplementalGroups\n- spec.containers[*].securityContext.seLinuxOptions\n- spec.containers[*].securityContext.seccompProfile\n- spec.containers[*].securityContext.capabilities\n- spec.containers[*].securityContext.readOnlyRootFilesystem\n- spec.containers[*].securityContext.privileged\n- spec.containers[*].securityContext.allowPrivilegeEscalation\n- spec.containers[*].securityContext.procMount\n- spec.containers[*].securityContext.runAsUser\n- spec.containers[*].securityContext.runAsGroup" + description: "Specifies the OS of the containers in the pod.\nSome pod and container fields are restricted if this is set.\n\n\nIf the OS field is set to linux, the following fields must be unset:\n-securityContext.windowsOptions\n\n\nIf the OS field is set to windows, following fields must be unset:\n- spec.hostPID\n- spec.hostIPC\n- spec.hostUsers\n- spec.securityContext.appArmorProfile\n- spec.securityContext.seLinuxOptions\n- spec.securityContext.seccompProfile\n- spec.securityContext.fsGroup\n- spec.securityContext.fsGroupChangePolicy\n- spec.securityContext.sysctls\n- spec.shareProcessNamespace\n- spec.securityContext.runAsUser\n- spec.securityContext.runAsGroup\n- spec.securityContext.supplementalGroups\n- spec.containers[*].securityContext.appArmorProfile\n- spec.containers[*].securityContext.seLinuxOptions\n- spec.containers[*].securityContext.seccompProfile\n- spec.containers[*].securityContext.capabilities\n- spec.containers[*].securityContext.readOnlyRootFilesystem\n- spec.containers[*].securityContext.privileged\n- spec.containers[*].securityContext.allowPrivilegeEscalation\n- spec.containers[*].securityContext.procMount\n- spec.containers[*].securityContext.runAsUser\n- spec.containers[*].securityContext.runAsGroup" properties: name: description: "Name is the name of the operating system. The currently supported values are linux and windows.\nAdditional value may be defined in future and can be one of:\nhttps://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\nClients should expect to handle additional values and treat unrecognized values in this field as os: null" @@ -3567,6 +3757,7 @@ spec: - "conditionType" type: "object" type: "array" + x-kubernetes-list-type: "atomic" resourceClaims: description: "ResourceClaims defines which ResourceClaims must be allocated\nand reserved before the Pod is allowed to start. The resources\nwill be made available to those containers which consume them\nby name.\n\n\nThis is an alpha field and requires enabling the\nDynamicResourceAllocation feature gate.\n\n\nThis field is immutable." items: @@ -3602,7 +3793,7 @@ spec: description: "If specified, the pod will be dispatched by specified scheduler.\nIf not specified, the pod will be dispatched by default scheduler." type: "string" schedulingGates: - description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\nscheduler will not attempt to schedule the pod.\n\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\n\n\nThis is a beta feature enabled by the PodSchedulingReadiness feature gate." + description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\nIf schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\nscheduler will not attempt to schedule the pod.\n\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards." items: description: "PodSchedulingGate is associated to a Pod to guard its scheduling." properties: @@ -3619,6 +3810,18 @@ spec: securityContext: description: "SecurityContext holds pod-level security attributes and common container settings.\nOptional: Defaults to empty. See type description for default values of each field." properties: + appArmorProfile: + description: "appArmorProfile is the AppArmor options to use by the containers in this pod.\nNote that this field cannot be set when spec.os.name is windows." + properties: + localhostProfile: + description: "localhostProfile indicates a profile loaded on the node that should be used.\nThe profile must be preconfigured on the node to work.\nMust match the loaded name of the profile.\nMust be set if and only if type is \"Localhost\"." + type: "string" + type: + description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement." + type: "string" + required: + - "type" + type: "object" fsGroup: description: "A special supplemental group that applies to all containers in a pod.\nSome volume types allow the Kubelet to change the ownership of that volume\nto be owned by the pod:\n\n\n1. The owning GID will be the FSGroup\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n3. The permission bits are OR'd with rw-rw----\n\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\nNote that this field cannot be set when spec.os.name is windows." format: "int64" @@ -3671,6 +3874,7 @@ spec: format: "int64" type: "integer" type: "array" + x-kubernetes-list-type: "atomic" sysctls: description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\nsysctls (by the container runtime) might fail to launch.\nNote that this field cannot be set when spec.os.name is windows." items: @@ -3687,6 +3891,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" windowsOptions: description: "The Windows specific settings applied to all containers.\nIf unspecified, the options within a container's SecurityContext will be used.\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\nNote that this field cannot be set when spec.os.name is linux." properties: @@ -3705,7 +3910,7 @@ spec: type: "object" type: "object" serviceAccount: - description: "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.\nDeprecated: Use serviceAccountName instead." + description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\nDeprecated: Use serviceAccountName instead." type: "string" serviceAccountName: description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod.\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/" @@ -3746,6 +3951,7 @@ spec: type: "string" type: "object" type: "array" + x-kubernetes-list-type: "atomic" topologySpreadConstraints: description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\nAll topologySpreadConstraints are ANDed." items: @@ -3770,11 +3976,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3793,7 +4001,7 @@ spec: format: "int32" type: "integer" minDomains: - description: "MinDomains indicates a minimum number of eligible domains.\nWhen the number of eligible domains with matching topology keys is less than minDomains,\nPod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\nthis value has no effect on scheduling.\nAs a result, when the number of eligible domains is less than minDomains,\nscheduler won't schedule more than maxSkew Pods to those domains.\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\nValid values are integers greater than 0.\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\nlabelSelector spread as 2/2/2:\n| zone1 | zone2 | zone3 |\n| P P | P P | P P |\nThe number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\nIn this situation, new pod with the same labelSelector cannot be scheduled,\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\nit will violate MaxSkew.\n\n\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)." + description: "MinDomains indicates a minimum number of eligible domains.\nWhen the number of eligible domains with matching topology keys is less than minDomains,\nPod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\nthis value has no effect on scheduling.\nAs a result, when the number of eligible domains is less than minDomains,\nscheduler won't schedule more than maxSkew Pods to those domains.\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\nValid values are integers greater than 0.\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\nlabelSelector spread as 2/2/2:\n| zone1 | zone2 | zone3 |\n| P P | P P | P P |\nThe number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\nIn this situation, new pod with the same labelSelector cannot be scheduled,\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\nit will violate MaxSkew." format: "int32" type: "integer" nodeAffinityPolicy: @@ -3891,6 +4099,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" path: description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" @@ -3904,7 +4113,8 @@ spec: description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -3927,7 +4137,8 @@ spec: description: "secretRef is optional: points to a secret object containing parameters used to connect\nto OpenStack." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -3964,8 +4175,10 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "optional specify whether the ConfigMap or its keys must be defined" @@ -3985,7 +4198,8 @@ spec: description: "nodePublishSecretRef is a reference to the secret object containing\nsensitive information to pass to the CSI driver to complete the CSI\nNodePublishVolume and NodeUnpublishVolume calls.\nThis field is optional, and may be empty if no secret is required. If the\nsecret object contains more than one secret, all secret references are passed." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -4013,7 +4227,7 @@ spec: description: "DownwardAPIVolumeFile represents information to create the file containing the pod field" properties: fieldRef: - description: "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported." properties: apiVersion: description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." @@ -4056,6 +4270,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" emptyDir: description: "emptyDir represents a temporary directory that shares a pod's lifetime.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" @@ -4088,6 +4303,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: description: "dataSource field can be used to specify either:\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n* An existing PVC (PersistentVolumeClaim)\nIf the provisioner or an external controller can support the specified data source,\nit will create a new volume based on the contents of the specified data source.\nWhen the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\nand dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\nIf the namespace is specified, then dataSourceRef will not be copied to dataSource." properties: @@ -4165,11 +4381,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4181,7 +4399,7 @@ spec: description: "storageClassName is the name of the StorageClass required by the claim.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeAttributesClassName: - description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." + description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\nIf specified, the CSI driver will create or update the volume with the attributes defined\nin the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\nit can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\nwill be applied to the claim but it's not allowed to reset this field to empty string once it is set.\nIf unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\nwill be set by the persistentvolume controller if it exists.\nIf the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\nset to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\nexists.\nMore info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled." type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim.\nValue of Filesystem is implied when not included in claim spec." @@ -4212,11 +4430,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" wwids: description: "wwids Optional: FC volume world wide identifiers (wwids)\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" flexVolume: description: "flexVolume represents a generic volume resource that is\nprovisioned/attached using an exec based plugin." @@ -4239,7 +4459,8 @@ spec: description: "secretRef is Optional: secretRef is reference to the secret object containing\nsensitive information to pass to the plugin scripts. This may be\nempty if no secret object is specified. If the secret object\ncontains more than one secret, all secrets are passed to the plugin\nscripts." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -4348,6 +4569,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" readOnly: description: "readOnly here will force the ReadOnly setting in VolumeMounts.\nDefaults to false." type: "boolean" @@ -4355,7 +4577,8 @@ spec: description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -4459,11 +4682,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4509,8 +4734,10 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "optional specify whether the ConfigMap or its keys must be defined" @@ -4526,7 +4753,7 @@ spec: description: "DownwardAPIVolumeFile represents information to create the file containing the pod field" properties: fieldRef: - description: "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported." properties: apiVersion: description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." @@ -4569,6 +4796,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" secret: description: "secret information about the secret data to project" @@ -4593,8 +4821,10 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" optional: description: "optional field specify whether the Secret or its key must be defined" @@ -4619,6 +4849,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" quobyte: description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" @@ -4662,6 +4893,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" pool: description: "pool is the rados pool name.\nDefault is rbd.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" @@ -4672,7 +4904,8 @@ spec: description: "secretRef is name of the authentication secret for RBDUser. If provided\noverrides keyring.\nDefault is nil.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -4702,7 +4935,8 @@ spec: description: "secretRef references to the secret for ScaleIO user and other\nsensitive information. If this is not provided, Login operation will fail." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -4753,6 +4987,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" optional: description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" @@ -4773,7 +5008,8 @@ spec: description: "secretRef specifies the secret to use for obtaining the StorageOS API\ncredentials. If not specified, default values will be attempted." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" @@ -4806,6 +5042,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" required: - "containers" type: "object" diff --git a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/scheduledbackups.yaml b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/scheduledbackups.yaml index f983eab6d..77a6f909f 100644 --- a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/scheduledbackups.yaml +++ b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/scheduledbackups.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "scheduledbackups.postgresql.cnpg.io" spec: group: "postgresql.cnpg.io" diff --git a/crd-catalog/eclipse-che/che-operator/org.eclipse.che/v2/checlusters.yaml b/crd-catalog/eclipse-che/che-operator/org.eclipse.che/v2/checlusters.yaml index d413260a0..1068322a6 100644 --- a/crd-catalog/eclipse-che/che-operator/org.eclipse.che/v2/checlusters.yaml +++ b/crd-catalog/eclipse-che/che-operator/org.eclipse.che/v2/checlusters.yaml @@ -2781,7 +2781,7 @@ spec: description: "Access Token Scope. This field is specific to Che installations made for Kubernetes only and ignored for OpenShift." type: "string" oAuthSecret: - description: "Name of the secret set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side." + description: "Name of the secret set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side. For Kubernetes, this can either be the plain text oAuthSecret value, or the name of a kubernetes secret which contains a key `oAuthSecret` and the value is the secret. NOTE: this secret must exist in the same namespace as the `CheCluster` resource and contain the label `app.kubernetes.io/part-of=che.eclipse.org`." type: "string" type: "object" domain: diff --git a/crd-catalog/elastic/cloud-on-k8s/agent.k8s.elastic.co/v1alpha1/agents.yaml b/crd-catalog/elastic/cloud-on-k8s/agent.k8s.elastic.co/v1alpha1/agents.yaml index acfcd5fe6..a336e23c6 100644 --- a/crd-catalog/elastic/cloud-on-k8s/agent.k8s.elastic.co/v1alpha1/agents.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/agent.k8s.elastic.co/v1alpha1/agents.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "agents.agent.k8s.elastic.co" spec: group: "agent.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1/apmservers.yaml b/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1/apmservers.yaml index 2450a93d5..b1b077465 100644 --- a/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1/apmservers.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1/apmservers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "apmservers.apm.k8s.elastic.co" spec: group: "apm.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1beta1/apmservers.yaml b/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1beta1/apmservers.yaml index 190952490..521eadd90 100644 --- a/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1beta1/apmservers.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/apm.k8s.elastic.co/v1beta1/apmservers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "apmservers.apm.k8s.elastic.co" spec: group: "apm.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/autoscaling.k8s.elastic.co/v1alpha1/elasticsearchautoscalers.yaml b/crd-catalog/elastic/cloud-on-k8s/autoscaling.k8s.elastic.co/v1alpha1/elasticsearchautoscalers.yaml index 1100e8313..f66b02e0c 100644 --- a/crd-catalog/elastic/cloud-on-k8s/autoscaling.k8s.elastic.co/v1alpha1/elasticsearchautoscalers.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/autoscaling.k8s.elastic.co/v1alpha1/elasticsearchautoscalers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "elasticsearchautoscalers.autoscaling.k8s.elastic.co" spec: group: "autoscaling.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/beat.k8s.elastic.co/v1beta1/beats.yaml b/crd-catalog/elastic/cloud-on-k8s/beat.k8s.elastic.co/v1beta1/beats.yaml index c8b159246..036265fe6 100644 --- a/crd-catalog/elastic/cloud-on-k8s/beat.k8s.elastic.co/v1beta1/beats.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/beat.k8s.elastic.co/v1beta1/beats.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "beats.beat.k8s.elastic.co" spec: group: "beat.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1/elasticsearches.yaml b/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1/elasticsearches.yaml index 037b7c6eb..9e84d87f2 100644 --- a/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1/elasticsearches.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1/elasticsearches.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "elasticsearches.elasticsearch.k8s.elastic.co" spec: group: "elasticsearch.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1beta1/elasticsearches.yaml b/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1beta1/elasticsearches.yaml index 32e01156a..d62ef6f31 100644 --- a/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1beta1/elasticsearches.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/elasticsearch.k8s.elastic.co/v1beta1/elasticsearches.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "elasticsearches.elasticsearch.k8s.elastic.co" spec: group: "elasticsearch.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1/enterprisesearches.yaml b/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1/enterprisesearches.yaml index 319c3ac1f..392c423e5 100644 --- a/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1/enterprisesearches.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1/enterprisesearches.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "enterprisesearches.enterprisesearch.k8s.elastic.co" spec: group: "enterprisesearch.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1beta1/enterprisesearches.yaml b/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1beta1/enterprisesearches.yaml index 431aa6450..9c82f7975 100644 --- a/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1beta1/enterprisesearches.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/enterprisesearch.k8s.elastic.co/v1beta1/enterprisesearches.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "enterprisesearches.enterprisesearch.k8s.elastic.co" spec: group: "enterprisesearch.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1/kibanas.yaml b/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1/kibanas.yaml index d7acba0b4..2e8401c3f 100644 --- a/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1/kibanas.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1/kibanas.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "kibanas.kibana.k8s.elastic.co" spec: group: "kibana.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1beta1/kibanas.yaml b/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1beta1/kibanas.yaml index 39db554fe..a02af2361 100644 --- a/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1beta1/kibanas.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/kibana.k8s.elastic.co/v1beta1/kibanas.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "kibanas.kibana.k8s.elastic.co" spec: group: "kibana.k8s.elastic.co" diff --git a/crd-catalog/elastic/cloud-on-k8s/maps.k8s.elastic.co/v1alpha1/elasticmapsservers.yaml b/crd-catalog/elastic/cloud-on-k8s/maps.k8s.elastic.co/v1alpha1/elasticmapsservers.yaml index 5e35d05b7..cca305126 100644 --- a/crd-catalog/elastic/cloud-on-k8s/maps.k8s.elastic.co/v1alpha1/elasticmapsservers.yaml +++ b/crd-catalog/elastic/cloud-on-k8s/maps.k8s.elastic.co/v1alpha1/elasticmapsservers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "elasticmapsservers.maps.k8s.elastic.co" spec: group: "maps.k8s.elastic.co" 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 133e2a538..a21566068 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 @@ -419,6 +419,19 @@ spec: authSecretRef: description: "Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. Optional for WorkloadIdentity." properties: + clientCertificate: + description: "The Azure ClientCertificate of the service principle used for authentication." + 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\ndefaulted, 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\nto the namespace of the referent." + type: "string" + type: "object" clientId: description: "The Azure clientId of the service principle or managed identity used for authentication." properties: 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 6e0c60aee..e3cad5e8a 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 @@ -419,6 +419,19 @@ spec: authSecretRef: description: "Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. Optional for WorkloadIdentity." properties: + clientCertificate: + description: "The Azure ClientCertificate of the service principle used for authentication." + 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\ndefaulted, 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\nto the namespace of the referent." + type: "string" + type: "object" clientId: description: "The Azure clientId of the service principle or managed identity used for authentication." properties: diff --git a/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/clusteroutputs.yaml b/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/clusteroutputs.yaml index 86770132d..ec7dd53e5 100644 --- a/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/clusteroutputs.yaml +++ b/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/clusteroutputs.yaml @@ -688,6 +688,9 @@ spec: sharedKey: description: "A key string known by the remote Fluentd used for authorization." type: "string" + tag: + description: "Overwrite the tag as we transmit. This allows the receiving pipeline start fresh, or to attribute source." + type: "string" timeAsInteger: description: "Set timestamps in integer format, it enable compatibility mode for Fluentd v0.12 series." type: "boolean" diff --git a/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/outputs.yaml b/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/outputs.yaml index 11eeba76f..a9c7b2bbe 100644 --- a/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/outputs.yaml +++ b/crd-catalog/fluent/fluent-operator/fluentbit.fluent.io/v1alpha2/outputs.yaml @@ -688,6 +688,9 @@ spec: sharedKey: description: "A key string known by the remote Fluentd used for authorization." type: "string" + tag: + description: "Overwrite the tag as we transmit. This allows the receiving pipeline start fresh, or to attribute source." + type: "string" timeAsInteger: description: "Set timestamps in integer format, it enable compatibility mode for Fluentd v0.12 series." type: "boolean" diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/alluxioruntimes.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/alluxioruntimes.yaml index a1bef127c..253909058 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/alluxioruntimes.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/alluxioruntimes.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "alluxioruntimes.data.fluid.io" spec: group: "data.fluid.io" @@ -147,6 +147,21 @@ spec: resources: description: "Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -225,9 +240,6 @@ spec: type: "string" description: "Environment variables that will be used by Alluxio Fuse" type: "object" - global: - description: "If the fuse client should be deployed in global mode, otherwise the affinity should be considered" - type: "boolean" image: description: "Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse)" type: "string" @@ -276,6 +288,21 @@ spec: resources: description: "Resources that will be requested by Alluxio Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -347,6 +374,21 @@ spec: resources: description: "Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -427,6 +469,21 @@ spec: resources: description: "Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -535,6 +592,21 @@ spec: resources: description: "Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -674,6 +746,21 @@ spec: resources: description: "Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -808,138 +895,140 @@ spec: description: "VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -950,38 +1039,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -1004,6 +1095,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1030,27 +1122,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -1062,12 +1155,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -1082,8 +1175,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -1094,13 +1188,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -1121,7 +1233,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -1150,14 +1262,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -1165,170 +1278,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -1336,89 +1451,89 @@ spec: - "targetPortal" type: "object" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1429,11 +1544,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -1452,6 +1568,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1478,28 +1595,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1510,21 +1628,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -1533,103 +1652,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -1637,26 +1758,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1664,49 +1785,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -1730,138 +1852,140 @@ spec: description: "Volume represents a named volume in a pod that may be accessed by any container in the pod." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1872,38 +1996,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -1926,6 +2052,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1952,27 +2079,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -1984,12 +2112,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -2004,8 +2132,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -2016,13 +2145,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -2043,7 +2190,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -2072,14 +2219,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -2087,170 +2235,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -2258,92 +2408,92 @@ spec: - "targetPortal" type: "object" name: - description: "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" type: "string" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2354,11 +2504,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -2377,6 +2528,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -2403,28 +2555,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2435,21 +2588,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -2458,103 +2612,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -2562,26 +2718,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2589,49 +2745,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -2700,6 +2857,21 @@ spec: resources: description: "Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -2813,6 +2985,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -2873,10 +3046,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" cacheStates: additionalProperties: @@ -3078,9 +3253,3 @@ spec: specReplicasPath: ".spec.replicas" statusReplicasPath: ".status.currentWorkerNumberScheduled" status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/databackups.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/databackups.yaml index d037b86df..ae5664ea4 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/databackups.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/databackups.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "databackups.data.fluid.io" spec: group: "data.fluid.io" @@ -61,6 +61,37 @@ spec: runAfter: description: "Specifies that the preceding operation in a workflow" properties: + affinityStrategy: + description: "AffinityStrategy specifies the pod affinity strategy with the referent operation." + properties: + policy: + description: "Policy one of: \"\", \"Require\", \"Prefer\"" + type: "string" + prefers: + items: + description: "Prefer defines the label key and weight for generating a PreferredSchedulingTerm." + properties: + name: + type: "string" + weight: + format: "int32" + type: "integer" + required: + - "name" + - "weight" + type: "object" + type: "array" + requires: + items: + description: "Require defines the label key for generating a NodeSelectorTerm." + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + type: "object" apiVersion: description: "API version of the referent operation" type: "string" @@ -159,6 +190,128 @@ spec: description: "LastSuccessfulTime is the last time the cron operation successfully completed" format: "date-time" type: "string" + nodeAffinity: + description: "NodeAffinity records the node affinity for operation pods" + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." + items: + description: "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op)." + properties: + preference: + description: "A node selector term, associated with the corresponding weight." + properties: + matchExpressions: + description: "A list of node selector requirements by node's labels." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + description: "A list of node selector requirements by node's fields." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." + properties: + nodeSelectorTerms: + description: "Required. A list of node selector terms. The terms are ORed." + items: + description: "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm." + properties: + matchExpressions: + description: "A list of node selector requirements by node's labels." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + description: "A list of node selector requirements by node's fields." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" phase: description: "Phase describes current phase of operation" type: "string" @@ -179,9 +332,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/dataloads.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/dataloads.yaml index 30d6c0897..988c8f91d 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/dataloads.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/dataloads.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "dataloads.data.fluid.io" spec: group: "data.fluid.io" @@ -103,6 +103,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -163,10 +164,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." @@ -209,8 +212,9 @@ spec: 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" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -239,8 +243,9 @@ spec: 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" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"." items: type: "string" type: "array" @@ -294,8 +299,9 @@ spec: 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" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -324,8 +330,9 @@ spec: 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" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"." items: type: "string" type: "array" @@ -378,8 +385,9 @@ spec: 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" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -408,8 +416,9 @@ spec: 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" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"." items: type: "string" type: "array" @@ -463,8 +472,9 @@ spec: 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" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -493,8 +503,9 @@ spec: 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" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"." items: type: "string" type: "array" @@ -557,6 +568,21 @@ spec: resources: description: "Resources that will be requested by the DataLoad job.
" 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: @@ -579,6 +605,37 @@ spec: runAfter: description: "Specifies that the preceding operation in a workflow" properties: + affinityStrategy: + description: "AffinityStrategy specifies the pod affinity strategy with the referent operation." + properties: + policy: + description: "Policy one of: \"\", \"Require\", \"Prefer\"" + type: "string" + prefers: + items: + description: "Prefer defines the label key and weight for generating a PreferredSchedulingTerm." + properties: + name: + type: "string" + weight: + format: "int32" + type: "integer" + required: + - "name" + - "weight" + type: "object" + type: "array" + requires: + items: + description: "Require defines the label key for generating a NodeSelectorTerm." + properties: + name: + type: "string" + required: + - "name" + type: "object" + type: "array" + type: "object" apiVersion: description: "API version of the referent operation" type: "string" @@ -699,6 +756,128 @@ spec: description: "LastSuccessfulTime is the last time the cron operation successfully completed" format: "date-time" type: "string" + nodeAffinity: + description: "NodeAffinity records the node affinity for operation pods" + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." + items: + description: "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op)." + properties: + preference: + description: "A node selector term, associated with the corresponding weight." + properties: + matchExpressions: + description: "A list of node selector requirements by node's labels." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + description: "A list of node selector requirements by node's fields." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + weight: + description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." + format: "int32" + type: "integer" + required: + - "preference" + - "weight" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." + properties: + nodeSelectorTerms: + description: "Required. A list of node selector terms. The terms are ORed." + items: + description: "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm." + properties: + matchExpressions: + description: "A list of node selector requirements by node's labels." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + matchFields: + description: "A list of node selector requirements by node's fields." + items: + description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + properties: + key: + description: "The label key that the selector applies to." + type: "string" + operator: + description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + type: "string" + values: + description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + items: + type: "string" + type: "array" + required: + - "key" + - "operator" + type: "object" + type: "array" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" + required: + - "nodeSelectorTerms" + type: "object" + x-kubernetes-map-type: "atomic" + type: "object" phase: description: "Phase describes current phase of operation" type: "string" @@ -719,9 +898,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/datasets.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/datasets.yaml index 160a5d701..5d11d3fba 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/datasets.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/datasets.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "datasets.data.fluid.io" spec: group: "data.fluid.io" @@ -192,10 +192,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" owner: description: "The owner of the dataset" @@ -468,9 +470,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/goosefsruntimes.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/goosefsruntimes.yaml index df3e20052..7cc9d8f98 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/goosefsruntimes.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/goosefsruntimes.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "goosefsruntimes.data.fluid.io" spec: group: "data.fluid.io" @@ -118,6 +118,21 @@ spec: resources: description: "Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -187,9 +202,6 @@ spec: type: "string" description: "Environment variables that will be used by GooseFS Fuse" type: "object" - global: - description: "If the fuse client should be deployed in global mode, otherwise the affinity should be considered" - type: "boolean" image: description: "Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse)" type: "string" @@ -217,6 +229,21 @@ spec: resources: description: "Resources that will be requested by GooseFS Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -273,6 +300,21 @@ spec: resources: description: "Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -337,6 +379,21 @@ spec: resources: description: "Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -401,6 +458,21 @@ spec: resources: description: "Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -470,6 +542,21 @@ spec: resources: description: "Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -562,138 +649,140 @@ spec: description: "VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -704,38 +793,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -758,6 +849,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -784,27 +876,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -816,12 +909,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -836,8 +929,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -848,13 +942,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -875,7 +987,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -904,14 +1016,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -919,170 +1032,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -1090,89 +1205,89 @@ spec: - "targetPortal" type: "object" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1183,11 +1298,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -1206,6 +1322,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1232,28 +1349,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1264,21 +1382,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -1287,103 +1406,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -1391,26 +1512,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1418,49 +1539,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -1522,6 +1644,21 @@ spec: resources: description: "Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -1607,6 +1744,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -1667,10 +1805,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" cacheStates: additionalProperties: @@ -1872,9 +2012,3 @@ spec: specReplicasPath: ".spec.replicas" statusReplicasPath: ".status.currentWorkerNumberScheduled" status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/jindoruntimes.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/jindoruntimes.yaml index 2624a3c8f..c86d18206 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/jindoruntimes.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/jindoruntimes.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "jindoruntimes.data.fluid.io" spec: group: "data.fluid.io" @@ -103,9 +103,6 @@ spec: type: "string" description: "Environment variables that will be used by Jindo Fuse" type: "object" - global: - description: "If the fuse client should be deployed in global mode, otherwise the affinity should be considered" - type: "boolean" image: description: "Image for Jindo Fuse(e.g. jindo/jindo-fuse)" type: "string" @@ -151,6 +148,21 @@ spec: resources: description: "Resources that will be requested by Jindo Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -271,6 +283,21 @@ spec: resources: description: "Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -437,138 +464,140 @@ spec: description: "VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -579,38 +608,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -633,6 +664,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -659,27 +691,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -691,12 +724,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -711,8 +744,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -723,13 +757,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -750,7 +802,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -779,14 +831,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -794,170 +847,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -965,89 +1020,89 @@ spec: - "targetPortal" type: "object" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1058,11 +1113,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -1081,6 +1137,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1107,28 +1164,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1139,21 +1197,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -1162,103 +1221,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -1266,26 +1327,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1293,49 +1354,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -1361,138 +1423,140 @@ spec: description: "Volume represents a named volume in a pod that may be accessed by any container in the pod." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1503,38 +1567,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -1557,6 +1623,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1583,27 +1650,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -1615,12 +1683,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -1635,8 +1703,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -1647,13 +1716,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -1674,7 +1761,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -1703,14 +1790,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -1718,170 +1806,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -1889,92 +1979,92 @@ spec: - "targetPortal" type: "object" name: - description: "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" type: "string" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1985,11 +2075,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -2008,6 +2099,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -2034,28 +2126,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2066,21 +2159,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -2089,103 +2183,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -2193,26 +2289,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2220,49 +2316,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -2323,6 +2420,21 @@ spec: resources: description: "Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -2459,6 +2571,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -2519,10 +2632,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" cacheStates: additionalProperties: @@ -2723,9 +2838,3 @@ spec: specReplicasPath: ".spec.replicas" statusReplicasPath: ".status.currentWorkerNumberScheduled" status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/juicefsruntimes.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/juicefsruntimes.yaml index 9a25cc7cf..f8be19ae5 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/juicefsruntimes.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/juicefsruntimes.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "juicefsruntimes.data.fluid.io" spec: group: "data.fluid.io" @@ -116,6 +116,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -128,6 +129,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -147,6 +149,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -162,14 +165,12 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" type: "object" type: "array" - global: - description: "If the fuse client should be deployed in global mode, otherwise the affinity should be considered" - type: "boolean" image: description: "Image for JuiceFS fuse" type: "string" @@ -213,6 +214,21 @@ spec: resources: description: "Resources that will be requested by JuiceFS Fuse." 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: @@ -281,6 +297,21 @@ spec: resources: description: "Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." 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: @@ -336,6 +367,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -348,6 +380,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -367,6 +400,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -382,6 +416,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -453,6 +488,21 @@ spec: resources: description: "Resources that will be requested by the JuiceFS component." 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: @@ -549,6 +599,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -561,6 +612,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -580,6 +632,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -595,6 +648,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -666,6 +720,21 @@ spec: resources: description: "Resources that will be requested by the JuiceFS component." 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: @@ -795,138 +864,140 @@ spec: description: "VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -937,38 +1008,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -991,6 +1064,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1017,27 +1091,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -1049,12 +1124,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -1069,8 +1144,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -1081,13 +1157,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -1108,7 +1202,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -1137,14 +1231,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -1152,170 +1247,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -1323,89 +1420,89 @@ spec: - "targetPortal" type: "object" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1416,11 +1513,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -1439,6 +1537,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1465,28 +1564,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1497,21 +1597,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -1520,103 +1621,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -1624,26 +1727,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1651,49 +1754,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -1717,138 +1821,140 @@ spec: description: "Volume represents a named volume in a pod that may be accessed by any container in the pod." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1859,38 +1965,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -1913,6 +2021,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1939,27 +2048,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -1971,12 +2081,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -1991,8 +2101,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -2003,13 +2114,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -2030,7 +2159,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -2059,14 +2188,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -2074,170 +2204,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -2245,92 +2377,92 @@ spec: - "targetPortal" type: "object" name: - description: "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" type: "string" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2341,11 +2473,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -2364,6 +2497,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -2390,28 +2524,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2422,21 +2557,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -2445,103 +2581,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -2549,26 +2687,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2576,49 +2714,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -2662,6 +2801,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -2674,6 +2814,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -2693,6 +2834,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -2708,6 +2850,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -2779,6 +2922,21 @@ spec: resources: description: "Resources that will be requested by the JuiceFS component." 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: @@ -2892,6 +3050,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -2952,10 +3111,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" cacheStates: additionalProperties: @@ -3157,9 +3318,3 @@ spec: specReplicasPath: ".spec.replicas" statusReplicasPath: ".status.currentWorkerNumberScheduled" status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimeprofiles.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimeprofiles.yaml index 3400047d7..efc17fa5f 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimeprofiles.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimeprofiles.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "thinruntimeprofiles.data.fluid.io" spec: group: "data.fluid.io" @@ -77,6 +77,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -89,6 +90,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -108,6 +110,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -123,6 +126,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -154,7 +158,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -178,7 +182,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -300,7 +304,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -324,7 +328,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -388,6 +392,21 @@ spec: resources: description: "Resources that will be requested by thinRuntime Fuse." 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: @@ -450,138 +469,140 @@ spec: description: "Volume represents a named volume in a pod that may be accessed by any container in the pod." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -592,38 +613,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -646,6 +669,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -672,27 +696,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -704,12 +729,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -724,8 +749,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -736,13 +762,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -763,7 +807,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -792,14 +836,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -807,170 +852,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -978,92 +1025,92 @@ spec: - "targetPortal" type: "object" name: - description: "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" type: "string" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1074,11 +1121,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -1097,6 +1145,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1123,28 +1172,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1155,21 +1205,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -1178,103 +1229,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -1282,26 +1335,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1309,49 +1362,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -1395,6 +1449,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -1407,6 +1462,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -1426,6 +1482,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -1441,6 +1498,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1472,7 +1530,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -1496,7 +1554,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -1613,7 +1671,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -1637,7 +1695,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -1706,6 +1764,21 @@ spec: resources: description: "Resources that will be requested by thinRuntime component." 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: @@ -1765,9 +1838,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimes.yaml b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimes.yaml index af10b4ccf..33bf2e18a 100644 --- a/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimes.yaml +++ b/crd-catalog/fluid-cloudnative/fluid/data.fluid.io/v1alpha1/thinruntimes.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.8.0" + controller-gen.kubebuilder.io/version: "v0.12.1" name: "thinruntimes.data.fluid.io" spec: group: "data.fluid.io" @@ -77,6 +77,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -89,6 +90,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -108,6 +110,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -123,6 +126,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -154,7 +158,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -178,7 +182,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -300,7 +304,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -324,7 +328,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -388,6 +392,21 @@ spec: resources: description: "Resources that will be requested by thinRuntime Fuse." 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: @@ -436,6 +455,32 @@ spec: type: "object" type: "array" type: "object" + management: + description: "RuntimeManagement defines policies when managing the runtime" + properties: + cleanCachePolicy: + description: "CleanCachePolicy defines the policy of cleaning cache when shutting down the runtime" + properties: + gracePeriodSeconds: + default: 60 + description: "Optional duration in seconds the cache needs to clean gracefully. May be decreased in delete runtime request. Value must be non-negative integer. The value zero indicates clean immediately via the timeout command (no opportunity to shut down). If this value is nil, the default grace period will be used instead. 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 timeout command. Set this value longer than the expected cleanup time for your process." + format: "int32" + type: "integer" + maxRetryAttempts: + default: 3 + description: "Optional max retry Attempts when cleanCache function returns an error after execution, runtime attempts to run it three more times by default. With Maximum Retry Attempts, you can customize the maximum number of retries. This gives you the option to continue processing retries." + format: "int32" + type: "integer" + type: "object" + metadataSyncPolicy: + description: "MetadataSyncPolicy defines the policy of syncing metadata when setting up the runtime. If not set," + properties: + autoSync: + default: true + description: "AutoSync enables automatic metadata sync when setting up a runtime. If not set, it defaults to true." + type: "boolean" + type: "object" + type: "object" profileName: description: "The specific runtime profile name, empty value is used for handling datasets which mount another dataset" type: "string" @@ -506,138 +551,140 @@ spec: description: "VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -648,38 +695,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -702,6 +751,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -728,27 +778,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -760,12 +811,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -780,8 +831,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -792,13 +844,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -819,7 +889,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -848,14 +918,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -863,170 +934,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -1034,89 +1107,89 @@ spec: - "targetPortal" type: "object" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1127,11 +1200,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -1150,6 +1224,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1176,28 +1251,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1208,21 +1284,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -1231,103 +1308,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -1335,26 +1414,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1362,49 +1441,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -1428,138 +1508,140 @@ spec: description: "Volume represents a named volume in a pod that may be accessed by any container in the pod." properties: awsElasticBlockStore: - description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." format: "int32" type: "integer" readOnly: - description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "boolean" volumeID: - description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" type: "string" required: - "volumeID" type: "object" azureDisk: - description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." properties: cachingMode: - description: "Host Caching mode: None, Read Only, Read Write." + description: "cachingMode is the Host Caching mode: None, Read Only, Read Write." type: "string" diskName: - description: "The Name of the data disk in the blob storage" + description: "diskName is the Name of the data disk in the blob storage" type: "string" diskURI: - description: "The URI the data disk in the blob storage" + description: "diskURI is the URI of data disk in the blob storage" type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" kind: - description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" required: - "diskName" - "diskURI" type: "object" azureFile: - description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod." properties: readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretName: - description: "the name of secret that contains Azure Storage Account Name and Key" + description: "secretName is the name of secret that contains Azure Storage Account Name and Key" type: "string" shareName: - description: "Share Name" + description: "shareName is the azure share Name" type: "string" required: - "secretName" - "shareName" type: "object" cephfs: - description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" properties: monitors: - description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" items: type: "string" type: "array" path: - description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" + description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "boolean" secretFile: - description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" secretRef: - description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" type: "string" required: - "monitors" type: "object" cinder: - description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "boolean" secretRef: - description: "Optional: points to a secret object containing parameters used to connect to OpenStack." + description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeID: - description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" type: "string" required: - "volumeID" type: "object" configMap: - description: "ConfigMap represents a configMap that should populate this volume" + description: "configMap represents a configMap that should populate this volume" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -1570,38 +1652,40 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: - description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." properties: driver: - description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." + description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster." type: "string" fsType: - description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." + description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply." type: "string" nodePublishSecretRef: - description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." + description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." 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" type: "object" + x-kubernetes-map-type: "atomic" readOnly: - description: "Specifies a read-only configuration for the volume. Defaults to false (read/write)." + description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write)." type: "boolean" volumeAttributes: additionalProperties: type: "string" - description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." + description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values." type: "object" required: - "driver" type: "object" downwardAPI: - description: "DownwardAPI represents downward API about the pod that should populate this volume" + description: "downwardAPI represents downward API about the pod that should populate this volume" properties: defaultMode: description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." @@ -1624,6 +1708,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -1650,27 +1735,28 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" emptyDir: - description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" properties: medium: - description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" type: "string" sizeLimit: anyOf: - type: "integer" - type: "string" - description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" x-kubernetes-int-or-string: true type: "object" ephemeral: - description: "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." + description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." @@ -1682,12 +1768,12 @@ spec: description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." properties: accessModes: - description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" items: type: "string" type: "array" dataSource: - description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field." + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." 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." @@ -1702,8 +1788,9 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: - description: "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled." + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." 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." @@ -1714,13 +1801,31 @@ spec: name: description: "Name is the name of resource being referenced" type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" required: - "kind" - "name" type: "object" resources: - description: "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" 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: @@ -1741,7 +1846,7 @@ spec: type: "object" type: "object" selector: - description: "A label query over volumes to consider for binding." + description: "selector is a label query over volumes to consider for binding." properties: matchExpressions: description: "matchExpressions is a list of label selector requirements. The requirements are ANDed." @@ -1770,14 +1875,15 @@ spec: 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" storageClassName: - description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" type: "string" volumeMode: description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." type: "string" volumeName: - description: "VolumeName is the binding reference to the PersistentVolume backing this claim." + description: "volumeName is the binding reference to the PersistentVolume backing this claim." type: "string" type: "object" required: @@ -1785,170 +1891,172 @@ spec: type: "object" type: "object" fc: - description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" lun: - description: "Optional: FC target lun number" + description: "lun is Optional: FC target lun number" format: "int32" type: "integer" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" targetWWNs: - description: "Optional: FC target worldwide names (WWNs)" + description: "targetWWNs is Optional: FC target worldwide names (WWNs)" items: type: "string" type: "array" wwids: - description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." items: type: "string" type: "array" type: "object" flexVolume: - description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." properties: driver: - description: "Driver is the name of the driver to use for this volume." + description: "driver is the name of the driver to use for this volume." type: "string" fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." type: "string" options: additionalProperties: type: "string" - description: "Optional: Extra command options if any." + description: "options is Optional: this field holds extra command options if any." type: "object" readOnly: - description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." 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" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" flocker: - description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" properties: datasetName: - description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" + description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated" type: "string" datasetUUID: - description: "UUID of the dataset. This is unique identifier of a Flocker dataset" + description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset" type: "string" type: "object" gcePersistentDisk: - description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" partition: - description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" format: "int32" type: "integer" pdName: - description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" type: "boolean" required: - "pdName" type: "object" gitRepo: - description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." + description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." properties: directory: - description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." type: "string" repository: - description: "Repository URL" + description: "repository is the URL" type: "string" revision: - description: "Commit hash for the specified revision." + description: "revision is the commit hash for the specified revision." type: "string" required: - "repository" type: "object" glusterfs: - description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" + description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" properties: endpoints: - description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" path: - description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "string" readOnly: - description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" type: "boolean" required: - "endpoints" - "path" type: "object" hostPath: - description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." + description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write." properties: path: - description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" type: - description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" type: "string" required: - "path" type: "object" iscsi: - description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" + description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" properties: chapAuthDiscovery: - description: "whether support iSCSI Discovery CHAP authentication" + description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication" type: "boolean" chapAuthSession: - description: "whether support iSCSI Session CHAP authentication" + description: "chapAuthSession defines whether support iSCSI Session CHAP authentication" type: "boolean" fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" initiatorName: - description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." + description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection." type: "string" iqn: - description: "Target iSCSI Qualified Name." + description: "iqn is the target iSCSI Qualified Name." type: "string" iscsiInterface: - description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." + description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)." type: "string" lun: - description: "iSCSI Target Lun number." + description: "lun represents iSCSI Target Lun number." format: "int32" type: "integer" portals: - description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." items: type: "string" type: "array" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." type: "boolean" secretRef: - description: "CHAP Secret for iSCSI target and initiator authentication" + description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication" 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" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: - description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." + description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." type: "string" required: - "iqn" @@ -1956,92 +2064,92 @@ spec: - "targetPortal" type: "object" name: - description: "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" type: "string" nfs: - description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" properties: path: - description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" readOnly: - description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "boolean" server: - description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" type: "string" required: - "path" - "server" type: "object" persistentVolumeClaim: - description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" properties: claimName: - description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" type: "string" readOnly: - description: "Will force the ReadOnly setting in VolumeMounts. Default false." + description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false." type: "boolean" required: - "claimName" type: "object" photonPersistentDisk: - description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" pdID: - description: "ID that identifies Photon Controller persistent disk" + description: "pdID is the ID that identifies Photon Controller persistent disk" type: "string" required: - "pdID" type: "object" portworxVolume: - description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" properties: fsType: - description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" volumeID: - description: "VolumeID uniquely identifies a Portworx volume" + description: "volumeID uniquely identifies a Portworx volume" type: "string" required: - "volumeID" type: "object" projected: - description: "Items for all in one resources secrets, configmaps, and downward API" + description: "projected items for all in one resources secrets, configmaps, and downward API" properties: defaultMode: - description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" sources: - description: "list of volume projections" + description: "sources is the list of volume projections" items: description: "Projection that may be projected along with other supported volume types" properties: configMap: - description: "information about the configMap data to project" + description: "configMap information about the configMap data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2052,11 +2160,12 @@ spec: 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 keys must be defined" + description: "optional specify whether the ConfigMap or its keys must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: - description: "information about the downwardAPI data to project" + description: "downwardAPI information about the downwardAPI data to project" properties: items: description: "Items is a list of DownwardAPIVolume file" @@ -2075,6 +2184,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" @@ -2101,28 +2211,29 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" type: "array" type: "object" secret: - description: "information about the secret data to project" + description: "secret information about the secret data to project" properties: items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2133,21 +2244,22 @@ spec: 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" + description: "optional field specify whether the Secret or its key must be defined" type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: - description: "information about the serviceAccountToken data to project" + description: "serviceAccountToken is information about the serviceAccountToken data to project" properties: audience: - description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." + description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver." type: "string" expirationSeconds: - description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." + description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes." format: "int64" type: "integer" path: - description: "Path is the path relative to the mount point of the file to project the token into." + description: "path is the path relative to the mount point of the file to project the token into." type: "string" required: - "path" @@ -2156,103 +2268,105 @@ spec: type: "array" type: "object" quobyte: - description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" properties: group: - description: "Group to map volume access to Default is no group" + description: "group to map volume access to Default is no group" type: "string" readOnly: - description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." type: "boolean" registry: - description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" type: "string" tenant: - description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" + description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin" type: "string" user: - description: "User to map volume access to Defaults to serivceaccount user" + description: "user to map volume access to Defaults to serivceaccount user" type: "string" volume: - description: "Volume is a string that references an already created Quobyte volume by name." + description: "volume is a string that references an already created Quobyte volume by name." type: "string" required: - "registry" - "volume" type: "object" rbd: - description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" + description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" properties: fsType: - description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" + description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine" type: "string" image: - description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" keyring: - description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" monitors: - description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" items: type: "string" type: "array" pool: - description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" readOnly: - description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "boolean" secretRef: - description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" 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" type: "object" + x-kubernetes-map-type: "atomic" user: - description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" type: "string" required: - "image" - "monitors" type: "object" scaleIO: - description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"." type: "string" gateway: - description: "The host address of the ScaleIO API Gateway." + description: "gateway is the host address of the ScaleIO API Gateway." type: "string" protectionDomain: - description: "The name of the ScaleIO Protection Domain for the configured storage." + description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." 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" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: - description: "Flag to enable/disable SSL communication with Gateway, default false" + description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false" type: "boolean" storageMode: - description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." + description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned." type: "string" storagePool: - description: "The ScaleIO Storage Pool associated with the protection domain." + description: "storagePool is the ScaleIO Storage Pool associated with the protection domain." type: "string" system: - description: "The name of the storage system as configured in ScaleIO." + description: "system is the name of the storage system as configured in ScaleIO." type: "string" volumeName: - description: "The name of a volume already created in the ScaleIO system that is associated with this volume source." + description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source." type: "string" required: - "gateway" @@ -2260,26 +2374,26 @@ spec: - "system" type: "object" secret: - description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" properties: defaultMode: - description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" items: - description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." + description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." items: description: "Maps a string key to a path within a volume." properties: key: - description: "The key to project." + description: "key is the key to project." type: "string" mode: - description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." format: "int32" type: "integer" path: - description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." type: "string" required: - "key" @@ -2287,49 +2401,50 @@ spec: type: "object" type: "array" optional: - description: "Specify whether the Secret or its keys must be defined" + description: "optional field specify whether the Secret or its keys must be defined" type: "boolean" secretName: - description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" type: "string" type: "object" storageos: - description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" readOnly: - description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." type: "boolean" secretRef: - description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." 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" type: "object" + x-kubernetes-map-type: "atomic" volumeName: - description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." + description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." type: "string" volumeNamespace: - description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." + description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." type: "string" type: "object" vsphereVolume: - description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" properties: fsType: - description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." type: "string" storagePolicyID: - description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." type: "string" storagePolicyName: - description: "Storage Policy Based Management (SPBM) profile name." + description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name." type: "string" volumePath: - description: "Path that identifies vSphere volume vmdk" + description: "volumePath is the path that identifies vSphere volume vmdk" type: "string" required: - "volumePath" @@ -2373,6 +2488,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." properties: @@ -2385,6 +2501,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." properties: @@ -2404,6 +2521,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: description: "Selects a key of a secret in the pod's namespace" properties: @@ -2419,6 +2537,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -2450,7 +2569,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -2474,7 +2593,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -2591,7 +2710,7 @@ spec: format: "int32" type: "integer" grpc: - description: "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate." + 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." @@ -2615,7 +2734,7 @@ spec: description: "HTTPHeader describes a custom header to be used in HTTP probes" properties: name: - description: "The header field name" + description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header." type: "string" value: description: "The header field value" @@ -2684,6 +2803,21 @@ spec: resources: description: "Resources that will be requested by thinRuntime component." 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: @@ -2797,6 +2931,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -2857,10 +2992,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" cacheStates: additionalProperties: @@ -3058,9 +3195,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2/helmreleases.yaml b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2/helmreleases.yaml index e88b92108..1912d83b3 100644 --- a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2/helmreleases.yaml +++ b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2/helmreleases.yaml @@ -42,7 +42,7 @@ spec: description: "HelmReleaseSpec defines the desired state of a Helm release." properties: chart: - description: "Chart defines the template of the v1beta2.HelmChart that should be created\nfor this HelmRelease." + description: "Chart defines the template of the v1.HelmChart that should be created\nfor this HelmRelease." properties: metadata: description: "ObjectMeta holds the template for metadata like labels and annotations." @@ -59,7 +59,7 @@ spec: type: "object" type: "object" spec: - description: "Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease." + description: "Spec holds the template for the v1.HelmChartSpec for this HelmRelease." properties: chart: description: "The name or path the Helm chart is available at in the SourceRef." @@ -135,7 +135,7 @@ spec: type: "object" version: default: "*" - description: "Version semver expression, ignored for charts from v1beta2.GitRepository and\nv1beta2.Bucket sources. Defaults to latest when omitted." + description: "Version semver expression, ignored for charts from v1.GitRepository and\nv1beta2.Bucket sources. Defaults to latest when omitted." type: "string" required: - "chart" diff --git a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml index 3585267be..a452ad900 100644 --- a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml +++ b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml @@ -143,6 +143,32 @@ spec: required: - "spec" type: "object" + chartRef: + description: "ChartRef holds a reference to a source controller resource containing the\nHelm chart artifact.\n\n\nNote: this field is provisional to the v2 API, and not actively used\nby v2beta1 HelmReleases." + properties: + apiVersion: + description: "APIVersion of the referent." + type: "string" + kind: + description: "Kind of the referent." + enum: + - "OCIRepository" + - "HelmChart" + type: "string" + name: + description: "Name of the referent." + maxLength: 253 + minLength: 1 + type: "string" + namespace: + description: "Namespace of the referent, defaults to the namespace of the Kubernetes\nresource object that contains the reference." + maxLength: 63 + minLength: 1 + type: "string" + required: + - "kind" + - "name" + type: "object" dependsOn: description: "DependsOn may contain a meta.NamespacedObjectReference slice with\nreferences to HelmRelease resources that must be ready before this HelmRelease\ncan be reconciled." items: @@ -606,7 +632,6 @@ spec: type: "object" type: "array" required: - - "chart" - "interval" type: "object" status: diff --git a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta2/helmreleases.yaml b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta2/helmreleases.yaml index 2ecfddcb1..eb1498293 100644 --- a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta2/helmreleases.yaml +++ b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta2/helmreleases.yaml @@ -150,7 +150,7 @@ spec: - "spec" type: "object" chartRef: - description: "ChartRef holds a reference to a source controller resource containing the\nHelm chart artifact." + description: "ChartRef holds a reference to a source controller resource containing the\nHelm chart artifact.\n\n\nNote: this field is provisional to the v2 API, and not actively used\nby v2beta2 HelmReleases." properties: apiVersion: description: "APIVersion of the referent." diff --git a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadashboards.yaml b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadashboards.yaml index 50d6f540d..45e0b7c8f 100644 --- a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadashboards.yaml +++ b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadashboards.yaml @@ -158,17 +158,22 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" type: "object" type: "object" x-kubernetes-map-type: "atomic" + x-kubernetes-validations: + - message: "Value is immutable" + rule: "self == oldSelf" json: type: "string" jsonnet: diff --git a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadatasources.yaml b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadatasources.yaml index d420c8574..675e7abe9 100644 --- a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadatasources.yaml +++ b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanadatasources.yaml @@ -85,17 +85,22 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" type: "object" type: "object" x-kubernetes-map-type: "atomic" + x-kubernetes-validations: + - message: "Value is immutable" + rule: "self == oldSelf" plugins: items: properties: diff --git a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanafolders.yaml b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanafolders.yaml index 798b5ab15..bbc215c5c 100644 --- a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanafolders.yaml +++ b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanafolders.yaml @@ -47,17 +47,22 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" type: "object" type: "object" x-kubernetes-map-type: "atomic" + x-kubernetes-validations: + - message: "Value is immutable" + rule: "self == oldSelf" permissions: type: "string" resyncPeriod: diff --git a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanas.yaml b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanas.yaml index 02f5d6cfc..9f2ac65aa 100644 --- a/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanas.yaml +++ b/crd-catalog/grafana-operator/grafana-operator/grafana.integreatly.org/v1beta1/grafanas.yaml @@ -96,11 +96,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -163,11 +165,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -179,11 +183,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" x-kubernetes-map-type: "atomic" weight: @@ -194,6 +200,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -210,11 +217,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -226,14 +235,17 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" x-kubernetes-map-type: "atomic" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -259,11 +271,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -293,11 +307,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -308,6 +324,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -321,6 +338,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -337,11 +355,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -371,11 +391,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -386,12 +408,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" podAntiAffinity: properties: @@ -413,11 +437,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -447,11 +473,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -462,6 +490,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -475,6 +504,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -491,11 +521,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -525,11 +557,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -540,12 +574,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "object" automountServiceAccountToken: @@ -557,10 +593,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: items: properties: @@ -625,6 +663,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: items: properties: @@ -648,6 +689,7 @@ spec: x-kubernetes-map-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: type: "string" imagePullPolicy: @@ -662,6 +704,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -679,6 +722,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -720,6 +764,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -737,6 +782,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -779,6 +825,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -809,6 +856,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -883,6 +931,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -913,6 +962,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1003,16 +1053,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -1068,6 +1129,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -1098,6 +1160,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1160,6 +1223,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: items: properties: @@ -1171,6 +1237,8 @@ spec: type: "string" readOnly: type: "boolean" + recursiveReadOnly: + type: "string" subPath: type: "string" subPathExpr: @@ -1180,6 +1248,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: type: "string" required: @@ -1192,6 +1263,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" options: items: properties: @@ -1201,10 +1273,12 @@ spec: type: "string" type: "object" type: "array" + x-kubernetes-list-type: "atomic" searches: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" dnsPolicy: type: "string" @@ -1217,10 +1291,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: items: properties: @@ -1285,6 +1361,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: items: properties: @@ -1308,6 +1387,7 @@ spec: x-kubernetes-map-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: type: "string" imagePullPolicy: @@ -1322,6 +1402,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -1339,6 +1420,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1380,6 +1462,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -1397,6 +1480,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1439,6 +1523,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -1469,6 +1554,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1543,6 +1629,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -1573,6 +1660,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1663,16 +1751,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -1728,6 +1827,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -1758,6 +1858,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1822,6 +1923,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: items: properties: @@ -1833,6 +1937,8 @@ spec: type: "string" readOnly: type: "boolean" + recursiveReadOnly: + type: "string" subPath: type: "string" subPathExpr: @@ -1842,6 +1948,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: type: "string" required: @@ -1855,6 +1964,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" ip: type: "string" type: "object" @@ -1884,10 +1994,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: items: properties: @@ -1952,6 +2064,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: items: properties: @@ -1975,6 +2090,7 @@ spec: x-kubernetes-map-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: type: "string" imagePullPolicy: @@ -1989,6 +2105,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -2006,6 +2123,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -2047,6 +2165,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -2064,6 +2183,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -2106,6 +2226,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -2136,6 +2257,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -2210,6 +2332,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -2240,6 +2363,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -2330,16 +2454,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -2395,6 +2530,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -2425,6 +2561,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -2487,6 +2624,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: items: properties: @@ -2498,6 +2638,8 @@ spec: type: "string" readOnly: type: "boolean" + recursiveReadOnly: + type: "string" subPath: type: "string" subPathExpr: @@ -2507,6 +2649,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: type: "string" required: @@ -2559,6 +2704,15 @@ spec: type: "string" securityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" fsGroup: format: "int64" type: "integer" @@ -2597,6 +2751,7 @@ spec: format: "int64" type: "integer" type: "array" + x-kubernetes-list-type: "atomic" sysctls: items: properties: @@ -2609,6 +2764,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" windowsOptions: properties: gmsaCredentialSpec: @@ -2666,11 +2822,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2759,6 +2917,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" readOnly: @@ -2813,6 +2972,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -2883,6 +3043,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" emptyDir: properties: @@ -2907,6 +3068,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -2966,11 +3128,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3003,10 +3167,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" wwids: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" flexVolume: properties: @@ -3103,6 +3269,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" readOnly: type: "boolean" secretRef: @@ -3184,11 +3351,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3223,6 +3392,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -3269,6 +3439,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" secret: properties: @@ -3287,6 +3458,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -3307,6 +3479,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" quobyte: properties: @@ -3338,6 +3511,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" pool: type: "string" readOnly: @@ -3405,6 +3579,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" optional: type: "boolean" secretName: @@ -3626,11 +3801,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3727,11 +3904,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3859,6 +4038,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" externalName: type: "string" externalTrafficPolicy: @@ -3883,6 +4063,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" ports: items: properties: @@ -3930,6 +4111,8 @@ spec: type: "integer" type: "object" type: "object" + trafficDistribution: + type: "string" type: type: "string" type: "object" diff --git a/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempomonolithics.yaml b/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempomonolithics.yaml index c40db57ee..378c2269b 100644 --- a/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempomonolithics.yaml +++ b/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempomonolithics.yaml @@ -627,6 +627,53 @@ spec: jaegerui: description: "JaegerUI defines the Jaeger UI configuration." properties: + authentication: + description: "Authentication defines the options for the oauth proxy used to protect jaeger UI" + properties: + enabled: + description: "Defines if the authentication will be enabled for jaeger UI." + type: "boolean" + resources: + description: "Resources defines the compute resource requirements of the OAuth Proxy container. The OAuth Proxy performs authentication and authorization of incoming requests to Jaeger UI when multi-tenancy is disabled." + 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" + sar: + description: "SAR defines the SAR to be used in the oauth-proxy default is \"{\"namespace\": \"\", \"resource\": \"pods\", \"verb\": \"get\"}" + type: "string" + type: "object" enabled: description: "Enabled defines if the Jaeger UI component should be created." type: "boolean" diff --git a/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempostacks.yaml b/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempostacks.yaml index 68342ea38..bdd003eb1 100644 --- a/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempostacks.yaml +++ b/crd-catalog/grafana/tempo-operator/tempo.grafana.com/v1alpha1/tempostacks.yaml @@ -871,11 +871,48 @@ spec: description: "JaegerQuery defines options specific to the Jaeger Query component." properties: authentication: - description: "Oauth defines the options for the oauth proxy used to protect jaeger UI" + description: "Authentication defines the options for the oauth proxy used to protect jaeger UI" properties: enabled: description: "Defines if the authentication will be enabled for jaeger UI." type: "boolean" + resources: + description: "Resources defines the compute resource requirements of the OAuth Proxy container. The OAuth Proxy performs authentication and authorization of incoming requests to Jaeger UI when multi-tenancy is disabled." + 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" sar: description: "SAR defines the SAR to be used in the oauth-proxy default is \"{\"namespace\": \"\", \"resource\": \"pods\", \"verb\": \"get\"}" type: "string" diff --git a/crd-catalog/infinispan/infinispan-operator/infinispan.org/v1/infinispans.yaml b/crd-catalog/infinispan/infinispan-operator/infinispan.org/v1/infinispans.yaml index 2ccdfcb50..1ad00e575 100644 --- a/crd-catalog/infinispan/infinispan-operator/infinispan.org/v1/infinispans.yaml +++ b/crd-catalog/infinispan/infinispan-operator/infinispan.org/v1/infinispans.yaml @@ -1499,6 +1499,9 @@ spec: operand: description: "The Operand status" properties: + deprecated: + description: "Whether the Operand has been deprecated and is subject for removal in a subsequent release" + type: "boolean" image: description: "The Image being used by the Operand currently being reconciled" type: "string" diff --git a/crd-catalog/instana/instana-agent-operator/instana.io/v1/agents.yaml b/crd-catalog/instana/instana-agent-operator/instana.io/v1/agents.yaml index 122e72f88..004bfe3cb 100644 --- a/crd-catalog/instana/instana-agent-operator/instana.io/v1/agents.yaml +++ b/crd-catalog/instana/instana-agent-operator/instana.io/v1/agents.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.1" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "agents.instana.io" spec: group: "instana.io" @@ -24,10 +24,10 @@ spec: description: "InstanaAgent is the Schema for the agents 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" @@ -38,7 +38,7 @@ spec: description: "Agent deployment specific fields." properties: additionalBackends: - description: "These are additional backends the Instana agent will report to besides the one configured via the `agent.endpointHost`, `agent.endpointPort` and `agent.key` setting." + description: "These are additional backends the Instana agent will report to besides\nthe one configured via the `agent.endpointHost`, `agent.endpointPort` and `agent.key` setting." items: properties: endpointHost: @@ -60,14 +60,14 @@ spec: description: "Mount in a ConfigMap with Agent configuration. Alternative to the `configuration_yaml` field." properties: autoMountConfigEntries: - description: "When setting this to true, the Helm chart will automatically look up the entries of the default instana-agent ConfigMap, and mount as agent configuration files under /opt/instana/agent/etc/instana all entries with keys that match the 'configuration-*.yaml' scheme" + description: "When setting this to true, the Helm chart will automatically look up the entries\nof the default instana-agent ConfigMap, and mount as agent configuration files\nunder /opt/instana/agent/etc/instana all entries with keys that match the\n'configuration-*.yaml' scheme" type: "boolean" type: "object" configuration_yaml: description: "Supply Agent configuration e.g. for configuring certain Sensors." type: "string" downloadKey: - description: "The DownloadKey, sometimes known as \"sales key\", that allows you to download software from Instana. It might be needed to specify this in addition to the Key." + description: "The DownloadKey, sometimes known as \"sales key\", that allows you to download software from Instana. It might be needed to\nspecify this in addition to the Key." type: "string" endpointHost: description: "EndpointHost is the hostname of the Instana server your agents will connect to." @@ -78,7 +78,7 @@ spec: env: additionalProperties: type: "string" - description: "Use the `env` field to set additional environment variables for the Instana Agent, for example: env: INSTANA_AGENT_TAGS: dev" + description: "Use the `env` field to set additional environment variables for the Instana Agent, for example:\nenv:\n INSTANA_AGENT_TAGS: dev" type: "object" host: description: "Host sets a host path to be mounted as the Agent Maven repository (mainly for debugging or development purposes)" @@ -90,7 +90,7 @@ spec: description: "Override the container image used for the Instana Agent pods." properties: digest: - description: "Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`, which will then be ignored." + description: "Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`,\nwhich will then be ignored." type: "string" name: description: "Name is the name of the container image of the Instana agent." @@ -99,7 +99,7 @@ spec: description: "PullPolicy specifies when to pull the image container." type: "string" pullSecrets: - description: "PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with \"containers.instana.io\". Setting `agent.image.pullSecrets` prevents the creation of the default \"containers-instana-io\" secret." + description: "PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with\n\"containers.instana.io\". Setting `agent.image.pullSecrets` prevents the creation of the default \"containers-instana-io\" secret." items: properties: name: @@ -111,36 +111,36 @@ spec: type: "string" type: "object" instanaMvnRepoUrl: - description: "Override for the Maven repository URL when the Agent needs to connect to a locally provided Maven repository 'proxy' Alternative to `Host` for referencing a different Maven repo." + description: "Override for the Maven repository URL when the Agent needs to connect to a locally provided Maven repository 'proxy'\nAlternative to `Host` for referencing a different Maven repo." type: "string" key: description: "Key is the secret token which your agent uses to authenticate to Instana's servers." type: "string" keysSecret: - description: "Rather than specifying the Key and optionally the DownloadKey, you can \"bring your own secret\" creating it in the namespace in which you install the `instana-agent` and specify its name in the `KeysSecret` field. The secret you create must contain a field called `key` and optionally one called `downloadKey`, which contain, respectively, the values you'd otherwise set in `.agent.key` and `agent.downloadKey`." + description: "Rather than specifying the Key and optionally the DownloadKey, you can \"bring your\nown secret\" creating it in the namespace in which you install the `instana-agent` and\nspecify its name in the `KeysSecret` field. The secret you create must contain a field called `key` and optionally one\ncalled `downloadKey`, which contain, respectively, the values you'd otherwise set in `.agent.key` and `agent.downloadKey`." type: "string" listenAddress: - description: "ListenAddress is the IP addresses the Agent HTTP server will listen on. Normally this will just be localhost (`127.0.0.1`), the pod public IP and any container runtime bridge interfaces. Set `listenAddress: *` for making the Agent listen on all network interfaces." + description: "ListenAddress is the IP addresses the Agent HTTP server will listen on. Normally this will just be localhost (`127.0.0.1`),\nthe pod public IP and any container runtime bridge interfaces. Set `listenAddress: *` for making the Agent listen on all\nnetwork interfaces." type: "string" minReadySeconds: description: "The minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing, for it to be considered available" type: "integer" mode: - description: "Set agent mode, possible options are APM, INFRASTRUCTURE or AWS. KUBERNETES should not be used but instead enabled via `kubernetes.deployment.enabled: true`." + description: "Set agent mode, possible options are APM, INFRASTRUCTURE or AWS. KUBERNETES should not be used but instead enabled via\n`kubernetes.deployment.enabled: true`." type: "string" pod: description: "Override Agent Pod specific settings such as annotations, labels and resources." properties: affinity: - description: "agent.pod.affinity are affinities to influence agent pod assignment. https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/" + description: "agent.pod.affinity are affinities to influence agent pod assignment.\nhttps://kubernetes.io/docs/concepts/configuration/taint-and-toleration/" properties: nodeAffinity: description: "Describes node affinity scheduling rules for the pod." properties: preferredDuringSchedulingIgnoredDuringExecution: - description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." + description: "The scheduler will prefer to schedule pods to nodes that satisfy\nthe affinity expressions specified by this field, but it may choose\na node that violates one or more of the expressions. The node that is\nmost preferred is the one with the greatest sum of weights, i.e.\nfor each node that meets all of the scheduling requirements (resource\nrequest, requiredDuringScheduling affinity expressions, etc.),\ncompute a sum by iterating through the elements of this field and adding\n\"weight\" to the sum if the node matches the corresponding matchExpressions; the\nnode(s) with the highest sum are the most preferred." items: - description: "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op)." + description: "An empty preferred scheduling term matches all objects with implicit weight 0\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op)." properties: preference: description: "A node selector term, associated with the corresponding weight." @@ -148,16 +148,16 @@ spec: matchExpressions: description: "A list of node selector requirements by node's labels." items: - description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + description: "A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values." properties: key: description: "The label key that the selector applies to." type: "string" operator: - description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + description: "Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." type: "string" values: - description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + description: "An array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. If the operator is Gt or Lt, the values\narray must have a single element, which will be interpreted as an integer.\nThis array is replaced during a strategic merge patch." items: type: "string" type: "array" @@ -169,16 +169,16 @@ spec: matchFields: description: "A list of node selector requirements by node's fields." items: - description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + description: "A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values." properties: key: description: "The label key that the selector applies to." type: "string" operator: - description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + description: "Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." type: "string" values: - description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + description: "An array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. If the operator is Gt or Lt, the values\narray must have a single element, which will be interpreted as an integer.\nThis array is replaced during a strategic merge patch." items: type: "string" type: "array" @@ -188,6 +188,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." format: "int32" @@ -198,26 +199,26 @@ spec: type: "object" type: "array" requiredDuringSchedulingIgnoredDuringExecution: - description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." + description: "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to an update), the system\nmay or may not try to eventually evict the pod from its node." properties: nodeSelectorTerms: description: "Required. A list of node selector terms. The terms are ORed." items: - description: "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm." + description: "A null or empty node selector term matches no objects. The requirements of\nthem are ANDed.\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm." properties: matchExpressions: description: "A list of node selector requirements by node's labels." items: - description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + description: "A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values." properties: key: description: "The label key that the selector applies to." type: "string" operator: - description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + description: "Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." type: "string" values: - description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + description: "An array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. If the operator is Gt or Lt, the values\narray must have a single element, which will be interpreted as an integer.\nThis array is replaced during a strategic merge patch." items: type: "string" type: "array" @@ -229,16 +230,16 @@ spec: matchFields: description: "A list of node selector requirements by node's fields." items: - description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values." + description: "A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values." properties: key: description: "The label key that the selector applies to." type: "string" operator: - description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + description: "Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." type: "string" values: - description: "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + description: "An array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. If the operator is Gt or Lt, the values\narray must have a single element, which will be interpreted as an integer.\nThis array is replaced during a strategic merge patch." items: type: "string" type: "array" @@ -248,16 +249,18 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." properties: preferredDuringSchedulingIgnoredDuringExecution: - description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." + description: "The scheduler will prefer to schedule pods to nodes that satisfy\nthe affinity expressions specified by this field, but it may choose\na node that violates one or more of the expressions. The node that is\nmost preferred is the one with the greatest sum of weights, i.e.\nfor each node that meets all of the scheduling requirements (resource\nrequest, requiredDuringScheduling affinity expressions, etc.),\ncompute a sum by iterating through the elements of this field and adding\n\"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\nnode(s) with the highest sum are the most preferred." items: description: "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)" properties: @@ -270,16 +273,16 @@ 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -291,25 +294,26 @@ 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to.\nThe term is applied to the union of the namespaces selected by this field\nand the ones listed in the namespaces field.\nnull selector and null or empty namespaces list means \"this pod's namespace\".\nAn empty selector ({}) matches all namespaces.\nThis field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -321,22 +325,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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to.\nThe term is applied to the union of the namespaces listed in this field\nand the ones selected by namespaceSelector.\nnull or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" items: type: "string" type: "array" topologyKey: - description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." + description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" required: - "topologyKey" type: "object" weight: - description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." + description: "weight associated with matching the corresponding podAffinityTerm,\nin the range 1-100." format: "int32" type: "integer" required: @@ -345,9 +350,9 @@ spec: type: "object" type: "array" requiredDuringSchedulingIgnoredDuringExecution: - description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + description: "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied." items: - description: "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running" + description: "Defines a set of pods (namely those matching the labelSelector\nrelative to the given namespace(s)) that this pod should be\nco-located (affinity) or not co-located (anti-affinity) with,\nwhere co-located is defined as running on a node whose value of\nthe label with key matches that of any node on which\na pod of the set of pods is running" properties: labelSelector: description: "A label query over a set of resources, in this case pods." @@ -355,16 +360,16 @@ 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -376,25 +381,26 @@ 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to.\nThe term is applied to the union of the namespaces selected by this field\nand the ones listed in the namespaces field.\nnull selector and null or empty namespaces list means \"this pod's namespace\".\nAn empty selector ({}) matches all namespaces.\nThis field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -406,16 +412,17 @@ 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to.\nThe term is applied to the union of the namespaces listed in this field\nand the ones selected by namespaceSelector.\nnull or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" items: type: "string" type: "array" topologyKey: - description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." + description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" required: - "topologyKey" @@ -426,7 +433,7 @@ spec: description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." properties: preferredDuringSchedulingIgnoredDuringExecution: - description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." + description: "The scheduler will prefer to schedule pods to nodes that satisfy\nthe anti-affinity expressions specified by this field, but it may choose\na node that violates one or more of the expressions. The node that is\nmost preferred is the one with the greatest sum of weights, i.e.\nfor each node that meets all of the scheduling requirements (resource\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\ncompute a sum by iterating through the elements of this field and adding\n\"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\nnode(s) with the highest sum are the most preferred." items: description: "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)" properties: @@ -439,16 +446,16 @@ 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -460,25 +467,26 @@ 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to.\nThe term is applied to the union of the namespaces selected by this field\nand the ones listed in the namespaces field.\nnull selector and null or empty namespaces list means \"this pod's namespace\".\nAn empty selector ({}) matches all namespaces.\nThis field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -490,22 +498,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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to.\nThe term is applied to the union of the namespaces listed in this field\nand the ones selected by namespaceSelector.\nnull or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" items: type: "string" type: "array" topologyKey: - description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." + description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" required: - "topologyKey" type: "object" weight: - description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." + description: "weight associated with matching the corresponding podAffinityTerm,\nin the range 1-100." format: "int32" type: "integer" required: @@ -514,9 +523,9 @@ spec: type: "object" type: "array" requiredDuringSchedulingIgnoredDuringExecution: - description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + description: "If the anti-affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the anti-affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied." items: - description: "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running" + description: "Defines a set of pods (namely those matching the labelSelector\nrelative to the given namespace(s)) that this pod should be\nco-located (affinity) or not co-located (anti-affinity) with,\nwhere co-located is defined as running on a node whose value of\nthe label with key matches that of any node on which\na pod of the set of pods is running" properties: labelSelector: description: "A label query over a set of resources, in this case pods." @@ -524,16 +533,16 @@ 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -545,25 +554,26 @@ 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaceSelector: - description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." + description: "A label query over the set of namespaces that the term applies to.\nThe term is applied to the union of the namespaces selected by this field\nand the ones listed in the namespaces field.\nnull selector and null or empty namespaces list means \"this pod's namespace\".\nAn empty selector ({}) matches all namespaces.\nThis field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled." 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" @@ -575,16 +585,17 @@ 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: - description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" + description: "namespaces specifies a static list of namespace names that the term applies to.\nThe term is applied to the union of the namespaces listed in this field\nand the ones selected by namespaceSelector.\nnull or empty namespaces list and null namespaceSelector means \"this pod's namespace\"" items: type: "string" type: "array" topologyKey: - description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." + description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." type: "string" required: - "topologyKey" @@ -609,10 +620,10 @@ 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.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" type: "object" priorityClassName: - description: "agent.pod.priorityClassName is the name of an existing PriorityClass that should be set on the agent pods https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/" + description: "agent.pod.priorityClassName is the name of an existing PriorityClass that should be set on the agent pods\nhttps://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/" type: "string" requests: additionalProperties: @@ -621,28 +632,28 @@ 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" + description: "Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\notherwise to an implementation-defined value.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" type: "object" tolerations: description: "agent.pod.tolerations are tolerations to influence agent pod assignment." items: - description: "The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator ." + description: "The pod this Toleration is attached to tolerates any taint that matches\nthe triple using the matching operator ." properties: effect: - description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." + description: "Effect indicates the taint effect to match. Empty means match all taint effects.\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." type: "string" key: - description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." + description: "Key is the taint key that the toleration applies to. Empty means match all taint keys.\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys." type: "string" operator: - description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." + description: "Operator represents a key's relationship to the value.\nValid operators are Exists and Equal. Defaults to Equal.\nExists is equivalent to wildcard for value, so that a pod can\ntolerate all taints of a particular category." type: "string" tolerationSeconds: - description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." + description: "TolerationSeconds represents the period of time the toleration (which must be\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\nit is not set, which means tolerate the taint forever (do not evict). Zero and\nnegative values will be treated as 0 (evict immediately) by the system." format: "int64" type: "integer" value: - description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." + description: "Value is the taint value the toleration matches to.\nIf the operator is Exists, the value should be empty, otherwise just a regular string." type: "string" type: "object" type: "array" @@ -669,7 +680,7 @@ spec: description: "RedactKubernetesSecrets sets the INSTANA_KUBERNETES_REDACT_SECRETS environment variable." type: "string" tls: - description: "TLS for end-to-end encryption between the Instana Agent and clients accessing the Agent. The Instana Agent does not yet allow enforcing TLS encryption, enabling makes it possible for clients to 'opt-in'. So TLS is only enabled on a connection when requested by the client." + description: "TLS for end-to-end encryption between the Instana Agent and clients accessing the Agent.\nThe Instana Agent does not yet allow enforcing TLS encryption, enabling makes it possible for clients to 'opt-in'.\nSo TLS is only enabled on a connection when requested by the client." properties: certificate: description: "certificate (together with key) is the alternative to an existing Secret. Must be base64 encoded." @@ -685,19 +696,19 @@ spec: description: "Control how to update the Agent DaemonSet" properties: rollingUpdate: - description: "Rolling update config params. Present only if type = \"RollingUpdate\". --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be. Same as Deployment `strategy.rollingUpdate`. See https://github.com/kubernetes/kubernetes/issues/35345" + description: "Rolling update config params. Present only if type = \"RollingUpdate\".\n---\nTODO: Update this to follow our convention for oneOf, whatever we decide it\nto be. Same as Deployment `strategy.rollingUpdate`.\nSee https://github.com/kubernetes/kubernetes/issues/35345" properties: maxSurge: anyOf: - type: "integer" - type: "string" - description: "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. 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 to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is beta field and enabled/disabled by DaemonSetUpdateSurge feature gate." + description: "The maximum number of nodes with an existing available DaemonSet pod that\ncan have an updated DaemonSet pod during during an update.\nValue can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\nThis can not be 0 if MaxUnavailable is 0.\nAbsolute number is calculated from percentage by rounding up to a minimum of 1.\nDefault value is 0.\nExample: when this is set to 30%, at most 30% of the total number of nodes\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\ncan have their a new pod created before the old pod is marked as deleted.\nThe update starts by launching new pods on 30% of nodes. Once an updated\npod is available (Ready for at least minReadySeconds) the old DaemonSet pod\non that node is marked deleted. If the old pod becomes unavailable for any\nreason (Ready transitions to false, is evicted, or is drained) an updated\npod is immediatedly created on that node without considering surge limits.\nAllowing surge implies the possibility that the resources consumed by the\ndaemonset on any given node can double if the readiness check fails, and\nso resource intensive daemonsets should take into account that they may\ncause evictions during disruption.\nThis is beta field and enabled/disabled by DaemonSetUpdateSurge feature gate." x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: "integer" - type: "string" - description: "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." + description: "The maximum number of DaemonSet pods that can be unavailable during the\nupdate. Value can be an absolute number (ex: 5) or a percentage of total\nnumber of DaemonSet pods at the start of the update (ex: 10%). Absolute\nnumber is calculated from percentage by rounding up.\nThis cannot be 0 if MaxSurge is 0\nDefault value is 1.\nExample: when this is set to 30%, at most 30% of the total number of nodes\nthat should be running the daemon pod (i.e. status.desiredNumberScheduled)\ncan have their pods stopped for an update at any given time. The update\nstarts by stopping at most 30% of those DaemonSet pods and then brings\nup new DaemonSet pods in their place. Once the new pods are available,\nit then proceeds onto other DaemonSet pods, thus ensuring that at least\n70% of original number of DaemonSet pods are available at all times during\nthe update." x-kubernetes-int-or-string: true type: "object" type: @@ -773,7 +784,7 @@ spec: agent.zone.name: type: "string" cluster: - description: "Name of the cluster, that will be assigned to this cluster in Instana. Either specifying the 'cluster.name' or 'zone.name' is mandatory." + description: "Name of the cluster, that will be assigned to this cluster in Instana. Either specifying the 'cluster.name' or 'zone.name'\nis mandatory." properties: name: type: "string" @@ -803,7 +814,7 @@ 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.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" type: "object" requests: additionalProperties: @@ -812,7 +823,7 @@ 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" + description: "Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\notherwise to an implementation-defined value.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" type: "object" type: "object" replicas: @@ -822,7 +833,7 @@ spec: image: properties: digest: - description: "Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`, which will then be ignored." + description: "Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`,\nwhich will then be ignored." type: "string" name: description: "Name is the name of the container image of the Instana agent." @@ -831,7 +842,7 @@ spec: description: "PullPolicy specifies when to pull the image container." type: "string" pullSecrets: - description: "PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with \"containers.instana.io\". Setting `agent.image.pullSecrets` prevents the creation of the default \"containers-instana-io\" secret." + description: "PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with\n\"containers.instana.io\". Setting `agent.image.pullSecrets` prevents the creation of the default \"containers-instana-io\" secret." items: properties: name: @@ -844,7 +855,7 @@ spec: type: "object" type: "object" kubernetes: - description: "Allows for installment of the Kubernetes Sensor as separate pod. Which allows for better tailored resource settings (mainly memory) both for the Agent pods and the Kubernetes Sensor pod." + description: "Allows for installment of the Kubernetes Sensor as separate pod. Which allows for better tailored resource settings\n(mainly memory) both for the Agent pods and the Kubernetes Sensor pod." properties: deployment: properties: @@ -863,7 +874,7 @@ 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.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" type: "object" requests: additionalProperties: @@ -872,7 +883,7 @@ 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" + description: "Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\notherwise to an implementation-defined value.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" type: "object" type: "object" replicas: @@ -881,7 +892,7 @@ spec: type: "object" type: "object" openshift: - description: "Set to `True` to indicate the Operator is being deployed in a OpenShift cluster. Provides a hint so that RBAC etc is configured correctly." + description: "Set to `True` to indicate the Operator is being deployed in a OpenShift cluster. Provides a hint so that RBAC etc is\nconfigured correctly." type: "boolean" opentelemetry: description: "Enables the OpenTelemetry gRPC endpoint on the Agent. If true, it will also apply `service.create: true`." @@ -902,7 +913,7 @@ spec: opentelemetry.enabled: type: "boolean" pinnedChartVersion: - description: "Specifying the PinnedChartVersion allows for 'pinning' the Helm Chart used by the Operator for installing the Agent DaemonSet. Normally the Operator will always install and update to the latest Helm Chart version. The Operator will check and make sure no 'unsupported' Chart versions can be selected." + description: "Specifying the PinnedChartVersion allows for 'pinning' the Helm Chart used by the Operator for installing the Agent\nDaemonSet. Normally the Operator will always install and update to the latest Helm Chart version.\nThe Operator will check and make sure no 'unsupported' Chart versions can be selected." type: "string" podSecurityPolicy: description: "Specify a PodSecurityPolicy for the Instana Agent Pods. If enabled requires `rbac.create: true`." @@ -928,7 +939,7 @@ spec: type: "boolean" type: "object" service: - description: "Specifies whether to create the instana-agent `Service` to expose within the cluster. The Service can then be used e.g. for the Prometheus remote-write, OpenTelemetry GRCP endpoint and other APIs. Note: Requires Kubernetes 1.17+, as it uses topologyKeys." + description: "Specifies whether to create the instana-agent `Service` to expose within the cluster. The Service can then be used e.g.\nfor the Prometheus remote-write, OpenTelemetry GRCP endpoint and other APIs.\nNote: Requires Kubernetes 1.17+, as it uses topologyKeys." properties: create: type: "boolean" @@ -1004,9 +1015,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/istio/istio/networking.istio.io/v1/workloadgroups.yaml b/crd-catalog/istio/istio/networking.istio.io/v1/workloadgroups.yaml index 33088ab77..817ae4a5f 100644 --- a/crd-catalog/istio/istio/networking.istio.io/v1/workloadgroups.yaml +++ b/crd-catalog/istio/istio/networking.istio.io/v1/workloadgroups.yaml @@ -31,7 +31,7 @@ spec: openAPIV3Schema: properties: spec: - description: "`WorkloadGroup` enables specifying the properties of a single workload for bootstrap and provides a template for `WorkloadEntry`, similar to how `Deployment` specifies properties of workloads via `Pod` templates." + description: "Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html" properties: metadata: description: "Metadata that will be used for all corresponding `WorkloadEntries`." diff --git a/crd-catalog/istio/istio/networking.istio.io/v1beta1/workloadgroups.yaml b/crd-catalog/istio/istio/networking.istio.io/v1beta1/workloadgroups.yaml index ad3f84e78..ffe0d0a87 100644 --- a/crd-catalog/istio/istio/networking.istio.io/v1beta1/workloadgroups.yaml +++ b/crd-catalog/istio/istio/networking.istio.io/v1beta1/workloadgroups.yaml @@ -31,7 +31,7 @@ spec: openAPIV3Schema: properties: spec: - description: "`WorkloadGroup` enables specifying the properties of a single workload for bootstrap and provides a template for `WorkloadEntry`, similar to how `Deployment` specifies properties of workloads via `Pod` templates." + description: "Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html" properties: metadata: description: "Metadata that will be used for all corresponding `WorkloadEntries`." diff --git a/crd-catalog/k8up-io/k8up/k8up.io/v1/archives.yaml b/crd-catalog/k8up-io/k8up/k8up.io/v1/archives.yaml index 5eb464684..765ada4b5 100644 --- a/crd-catalog/k8up-io/k8up/k8up.io/v1/archives.yaml +++ b/crd-catalog/k8up-io/k8up/k8up.io/v1/archives.yaml @@ -342,6 +342,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: diff --git a/crd-catalog/k8up-io/k8up/k8up.io/v1/backups.yaml b/crd-catalog/k8up-io/k8up/k8up.io/v1/backups.yaml index 9025860ee..be04daac0 100644 --- a/crd-catalog/k8up-io/k8up/k8up.io/v1/backups.yaml +++ b/crd-catalog/k8up-io/k8up/k8up.io/v1/backups.yaml @@ -346,6 +346,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: diff --git a/crd-catalog/k8up-io/k8up/k8up.io/v1/checks.yaml b/crd-catalog/k8up-io/k8up/k8up.io/v1/checks.yaml index 239d59245..6c163caac 100644 --- a/crd-catalog/k8up-io/k8up/k8up.io/v1/checks.yaml +++ b/crd-catalog/k8up-io/k8up/k8up.io/v1/checks.yaml @@ -342,6 +342,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: diff --git a/crd-catalog/k8up-io/k8up/k8up.io/v1/prunes.yaml b/crd-catalog/k8up-io/k8up/k8up.io/v1/prunes.yaml index b2b3e8136..b55e7ac09 100644 --- a/crd-catalog/k8up-io/k8up/k8up.io/v1/prunes.yaml +++ b/crd-catalog/k8up-io/k8up/k8up.io/v1/prunes.yaml @@ -342,6 +342,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: diff --git a/crd-catalog/k8up-io/k8up/k8up.io/v1/restores.yaml b/crd-catalog/k8up-io/k8up/k8up.io/v1/restores.yaml index 383117ff1..18ecf7fdc 100644 --- a/crd-catalog/k8up-io/k8up/k8up.io/v1/restores.yaml +++ b/crd-catalog/k8up-io/k8up/k8up.io/v1/restores.yaml @@ -342,6 +342,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: diff --git a/crd-catalog/k8up-io/k8up/k8up.io/v1/schedules.yaml b/crd-catalog/k8up-io/k8up/k8up.io/v1/schedules.yaml index cf0e83f7f..904d0a877 100644 --- a/crd-catalog/k8up-io/k8up/k8up.io/v1/schedules.yaml +++ b/crd-catalog/k8up-io/k8up/k8up.io/v1/schedules.yaml @@ -335,6 +335,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: @@ -1255,6 +1263,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: @@ -1796,6 +1812,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: @@ -2029,6 +2053,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef will apply the given template to all job definitions in this Schedule.\nIt can be overriden for specific jobs if necessary." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which actions (such as backups) shall be executed." properties: @@ -2423,6 +2455,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." properties: @@ -3020,6 +3060,14 @@ spec: keepJobs: description: "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively." type: "integer" + podConfigRef: + description: "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing." + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" podSecurityContext: description: "PodSecurityContext describes the security context with which this action shall be executed." 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 eb04abecf..8d5912d48 100644 --- a/crd-catalog/kiali/kiali-operator/kiali.io/v1alpha1/kialis.yaml +++ b/crd-catalog/kiali/kiali-operator/kiali.io/v1alpha1/kialis.yaml @@ -224,6 +224,17 @@ spec: - "mount" type: "object" type: "array" + dns: + description: "The Kiali server pod's DNS configuration. Kubernetes supports different DNS policies and configurations.\nFor further details, consult the Kubernetes documentation - https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/\n" + properties: + config: + description: "DNS configuration that is applied to the DNS policy. See the Kubernetes documentation for the different configuration settings that are supported." + type: "object" + x-kubernetes-preserve-unknown-fields: true + policy: + description: "DNS policy. See the Kubernetes documentation for the different policies that are supported." + type: "string" + type: "object" host_aliases: description: "This is content for the Kubernetes 'hostAliases' setting for the Kiali server.\nThis allows you to modify the Kiali server pod '/etc/hosts' file.\nA typical way to configure this setting is,\n```\nhost_aliases:\n- ip: 192.168.1.100\n hostnames:\n - \"foo.local\"\n - \"bar.local\"\n```\nFor details on the content of this setting, see https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/#adding-additional-entries-with-hostaliases\n" items: diff --git a/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/eventtailers.yaml b/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/eventtailers.yaml index ec03393a7..9ed4e4d5e 100644 --- a/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/eventtailers.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/eventtailers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "eventtailers.logging-extensions.banzaicloud.io" spec: group: "logging-extensions.banzaicloud.io" @@ -316,6 +316,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -384,6 +385,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -440,6 +442,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -531,6 +534,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -577,10 +581,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -612,6 +618,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -645,6 +652,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -688,6 +696,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -721,6 +730,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -762,6 +772,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -795,6 +806,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -838,6 +850,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -871,6 +884,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1172,6 +1186,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -1608,6 +1623,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -1624,6 +1640,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -1654,6 +1671,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -1665,6 +1683,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -1691,6 +1710,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -1711,6 +1731,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -1751,6 +1772,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -1807,6 +1829,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -1855,6 +1878,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -1939,6 +1963,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -2022,6 +2047,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -2055,6 +2081,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -2069,6 +2096,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -2089,6 +2117,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -2116,6 +2145,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -2170,6 +2200,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -2191,6 +2222,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -2242,6 +2274,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -2273,9 +2306,3 @@ spec: type: "object" served: true storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/hosttailers.yaml b/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/hosttailers.yaml index e0e3c376b..e63c7e4ad 100644 --- a/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/hosttailers.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging-extensions.banzaicloud.io/v1alpha1/hosttailers.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "hosttailers.logging-extensions.banzaicloud.io" spec: group: "logging-extensions.banzaicloud.io" @@ -325,6 +325,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -353,6 +354,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -655,6 +657,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -730,6 +733,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -776,10 +780,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -811,6 +817,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -844,6 +851,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -887,6 +895,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -920,6 +929,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -961,6 +971,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -994,6 +1005,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1037,6 +1049,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -1070,6 +1083,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1371,6 +1385,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -1807,6 +1822,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -1823,6 +1839,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -1853,6 +1870,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -1864,6 +1882,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -1890,6 +1909,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -1910,6 +1930,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -1950,6 +1971,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -2006,6 +2028,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -2054,6 +2077,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -2138,6 +2162,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -2221,6 +2246,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -2254,6 +2280,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -2268,6 +2295,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -2288,6 +2316,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -2315,6 +2344,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -2369,6 +2399,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -2390,6 +2421,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -2441,6 +2473,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -2470,9 +2503,3 @@ spec: type: "object" served: true storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusterflows.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusterflows.yaml index 3f7283f45..2d9d7f9d7 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusterflows.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusterflows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "clusterflows.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -152,6 +152,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -168,6 +169,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cache_refresh: @@ -193,6 +195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -209,6 +212,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -226,6 +230,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -242,6 +247,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" core_api_versions: @@ -407,6 +413,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -423,6 +430,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -498,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -514,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -606,6 +616,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -622,6 +633,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -697,6 +709,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -713,6 +726,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -1053,9 +1067,3 @@ spec: storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusteroutputs.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusteroutputs.yaml index 5e2ba64fe..a5cd5220a 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusteroutputs.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/clusteroutputs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "clusteroutputs.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -53,6 +53,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -69,6 +70,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -159,6 +161,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -175,6 +178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -192,6 +196,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -208,6 +213,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -225,6 +231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -241,6 +248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -258,6 +266,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -274,6 +283,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -319,6 +329,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -335,6 +346,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -352,6 +364,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -368,6 +381,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -385,6 +399,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -401,6 +416,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -418,6 +434,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -434,6 +451,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -451,6 +469,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -467,6 +486,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -486,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -502,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -519,6 +541,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -535,6 +558,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -626,6 +650,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -642,6 +667,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -715,6 +741,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -731,6 +758,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -793,6 +821,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -809,6 +838,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_account: @@ -826,6 +856,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -842,6 +873,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_sas_token: @@ -859,6 +891,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -875,6 +908,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -977,6 +1011,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -993,6 +1028,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -1010,6 +1046,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1026,6 +1063,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sts_role_arn: @@ -1198,6 +1236,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1214,6 +1253,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -1345,6 +1385,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1361,6 +1402,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -1451,6 +1493,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1467,6 +1510,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -1484,6 +1528,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1500,6 +1545,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -1517,6 +1563,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1533,6 +1580,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -1550,6 +1598,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1566,6 +1615,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -1661,6 +1711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1677,6 +1728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -1750,6 +1802,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1766,6 +1819,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -2049,6 +2103,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2065,6 +2120,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -2084,6 +2140,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2100,6 +2157,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" standby: @@ -2119,6 +2177,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2135,6 +2194,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" weight: @@ -2164,6 +2224,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2180,6 +2241,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_cert_thumbprint: @@ -2203,6 +2265,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2219,6 +2282,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_passphrase: @@ -2236,6 +2300,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2252,6 +2317,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_path: @@ -2269,6 +2335,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2285,6 +2352,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_insecure_mode: @@ -2396,6 +2464,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2412,6 +2481,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" encryption_key: @@ -2575,6 +2645,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2591,6 +2662,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" username: @@ -2608,6 +2680,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2624,6 +2697,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -2759,6 +2833,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2775,6 +2850,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_ciphers: @@ -2794,6 +2870,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2810,6 +2887,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_passphrase: @@ -2827,6 +2905,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2843,6 +2922,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_path: @@ -2860,6 +2940,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2876,6 +2957,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_verify_mode: @@ -3024,6 +3106,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3040,6 +3123,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" max_send_retries: @@ -3065,6 +3149,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3081,6 +3166,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" principal: @@ -3108,6 +3194,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3124,6 +3211,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_ca_certs_from_system: @@ -3143,6 +3231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3159,6 +3248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_chain: @@ -3176,6 +3266,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3192,6 +3283,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_key: @@ -3209,6 +3301,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3225,6 +3318,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_verify_hostname: @@ -3248,6 +3342,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3264,6 +3359,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -3307,6 +3403,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3323,6 +3420,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3340,6 +3438,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3356,6 +3455,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3373,6 +3473,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3389,6 +3490,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3536,6 +3638,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3552,6 +3655,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3569,6 +3673,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3585,6 +3690,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3602,6 +3708,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3618,6 +3725,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3919,6 +4027,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3935,6 +4044,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4043,6 +4153,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4059,6 +4170,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert: @@ -4076,6 +4188,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4092,6 +4205,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" configure_kubernetes_labels: @@ -4123,6 +4237,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4139,6 +4254,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" labels: @@ -4162,6 +4278,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4178,6 +4295,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" remove_keys: @@ -4205,6 +4323,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4221,6 +4340,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4241,6 +4361,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4257,6 +4378,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" channel_id: @@ -4284,6 +4406,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4300,6 +4423,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -4322,6 +4446,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4338,6 +4463,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" base_uri: @@ -4443,6 +4569,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4459,6 +4586,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4554,6 +4682,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4570,6 +4699,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" catch_transport_exception_on_retry: @@ -4589,6 +4719,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4605,6 +4736,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -4622,6 +4754,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4638,6 +4771,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -4655,6 +4789,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4671,6 +4806,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -4708,6 +4844,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4724,6 +4861,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -4741,6 +4879,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4757,6 +4896,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -4774,6 +4914,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4790,6 +4931,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -4807,6 +4949,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4823,6 +4966,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -4840,6 +4984,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4856,6 +5001,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -4875,6 +5021,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4891,6 +5038,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -4908,6 +5056,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4924,6 +5073,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4996,6 +5146,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5012,6 +5163,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -5079,6 +5231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5095,6 +5248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -5151,6 +5305,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5167,6 +5322,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" access_key_secret: @@ -5184,6 +5340,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5200,6 +5357,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" auto_create_bucket: @@ -5443,6 +5601,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5459,6 +5618,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -5516,6 +5676,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5532,6 +5693,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -5549,6 +5711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5565,6 +5728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -5845,6 +6009,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5861,6 +6026,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_path: @@ -5878,6 +6044,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5894,6 +6061,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -5911,6 +6079,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5927,6 +6096,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -5944,6 +6114,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5960,6 +6131,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" coerce_to_utf8: @@ -6006,6 +6178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6022,6 +6195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" host: @@ -6085,6 +6259,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6101,6 +6276,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -6118,6 +6294,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6134,6 +6311,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -6328,6 +6506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6344,6 +6523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" log_format: @@ -6464,6 +6644,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6480,6 +6661,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" enable_system_cert_store: @@ -6534,6 +6716,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6550,6 +6733,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" private_key_path: @@ -6567,6 +6751,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6583,6 +6768,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" slow_flush_log_threshold: @@ -6604,6 +6790,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6620,6 +6807,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" verify_fqdn: @@ -6722,6 +6910,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6738,6 +6927,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" config_param: @@ -6777,6 +6967,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6793,6 +6984,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -6837,6 +7029,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6853,6 +7046,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -6963,6 +7157,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6979,6 +7174,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" content_type: @@ -7018,9 +7214,3 @@ spec: storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/flows.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/flows.yaml index 3e29f2b42..ecda959e8 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/flows.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/flows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "flows.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -152,6 +152,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -168,6 +169,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cache_refresh: @@ -193,6 +195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -209,6 +212,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -226,6 +230,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -242,6 +247,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" core_api_versions: @@ -407,6 +413,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -423,6 +430,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -498,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -514,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -606,6 +616,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -622,6 +633,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -697,6 +709,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -713,6 +726,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -1049,9 +1063,3 @@ spec: storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/loggings.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/loggings.yaml index 53fe06e3a..0b5de60e2 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/loggings.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/loggings.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "loggings.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -34,9 +34,3 @@ spec: storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/outputs.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/outputs.yaml index cb1487536..2af364c00 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/outputs.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1alpha1/outputs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "outputs.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -53,6 +53,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -69,6 +70,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -159,6 +161,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -175,6 +178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -192,6 +196,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -208,6 +213,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -225,6 +231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -241,6 +248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -258,6 +266,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -274,6 +283,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -319,6 +329,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -335,6 +346,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -352,6 +364,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -368,6 +381,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -385,6 +399,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -401,6 +416,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -418,6 +434,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -434,6 +451,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -451,6 +469,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -467,6 +486,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -486,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -502,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -519,6 +541,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -535,6 +558,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -626,6 +650,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -642,6 +667,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -715,6 +741,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -731,6 +758,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -793,6 +821,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -809,6 +838,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_account: @@ -826,6 +856,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -842,6 +873,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_sas_token: @@ -859,6 +891,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -875,6 +908,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -977,6 +1011,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -993,6 +1028,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -1010,6 +1046,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1026,6 +1063,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sts_role_arn: @@ -1198,6 +1236,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1214,6 +1253,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -1345,6 +1385,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1361,6 +1402,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -1451,6 +1493,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1467,6 +1510,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -1484,6 +1528,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1500,6 +1545,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -1517,6 +1563,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1533,6 +1580,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -1550,6 +1598,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1566,6 +1615,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -1661,6 +1711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1677,6 +1728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -1750,6 +1802,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1766,6 +1819,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -2045,6 +2099,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2061,6 +2116,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -2080,6 +2136,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2096,6 +2153,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" standby: @@ -2115,6 +2173,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2131,6 +2190,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" weight: @@ -2160,6 +2220,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2176,6 +2237,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_cert_thumbprint: @@ -2199,6 +2261,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2215,6 +2278,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_passphrase: @@ -2232,6 +2296,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2248,6 +2313,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_path: @@ -2265,6 +2331,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2281,6 +2348,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_insecure_mode: @@ -2392,6 +2460,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2408,6 +2477,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" encryption_key: @@ -2571,6 +2641,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2587,6 +2658,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" username: @@ -2604,6 +2676,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2620,6 +2693,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -2755,6 +2829,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2771,6 +2846,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_ciphers: @@ -2790,6 +2866,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2806,6 +2883,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_passphrase: @@ -2823,6 +2901,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2839,6 +2918,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_path: @@ -2856,6 +2936,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2872,6 +2953,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_verify_mode: @@ -3020,6 +3102,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3036,6 +3119,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" max_send_retries: @@ -3061,6 +3145,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3077,6 +3162,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" principal: @@ -3104,6 +3190,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3120,6 +3207,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_ca_certs_from_system: @@ -3139,6 +3227,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3155,6 +3244,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_chain: @@ -3172,6 +3262,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3188,6 +3279,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_key: @@ -3205,6 +3297,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3221,6 +3314,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_verify_hostname: @@ -3244,6 +3338,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3260,6 +3355,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -3301,6 +3397,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3317,6 +3414,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3334,6 +3432,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3350,6 +3449,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3367,6 +3467,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3383,6 +3484,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3684,6 +3786,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3700,6 +3803,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -3808,6 +3912,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3824,6 +3929,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert: @@ -3841,6 +3947,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3857,6 +3964,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" configure_kubernetes_labels: @@ -3888,6 +3996,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3904,6 +4013,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" labels: @@ -3927,6 +4037,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3943,6 +4054,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" remove_keys: @@ -3970,6 +4082,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3986,6 +4099,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4006,6 +4120,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4022,6 +4137,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" base_uri: @@ -4127,6 +4243,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4143,6 +4260,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4238,6 +4356,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4254,6 +4373,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" catch_transport_exception_on_retry: @@ -4273,6 +4393,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4289,6 +4410,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -4306,6 +4428,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4322,6 +4445,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -4339,6 +4463,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4355,6 +4480,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -4392,6 +4518,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4408,6 +4535,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -4425,6 +4553,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4441,6 +4570,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -4458,6 +4588,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4474,6 +4605,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -4491,6 +4623,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4507,6 +4640,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -4524,6 +4658,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4540,6 +4675,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -4559,6 +4695,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4575,6 +4712,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -4592,6 +4730,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4608,6 +4747,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4680,6 +4820,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4696,6 +4837,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -4763,6 +4905,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4779,6 +4922,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -4835,6 +4979,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4851,6 +4996,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" access_key_secret: @@ -4868,6 +5014,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4884,6 +5031,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" auto_create_bucket: @@ -5125,6 +5273,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5141,6 +5290,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -5198,6 +5348,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5214,6 +5365,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -5231,6 +5383,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5247,6 +5400,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -5527,6 +5681,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5543,6 +5698,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_path: @@ -5560,6 +5716,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5576,6 +5733,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -5593,6 +5751,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5609,6 +5768,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -5626,6 +5786,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5642,6 +5803,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" coerce_to_utf8: @@ -5688,6 +5850,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5704,6 +5867,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" host: @@ -5767,6 +5931,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5783,6 +5948,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -5800,6 +5966,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5816,6 +5983,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -6010,6 +6178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6026,6 +6195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" log_format: @@ -6146,6 +6316,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6162,6 +6333,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" enable_system_cert_store: @@ -6216,6 +6388,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6232,6 +6405,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" private_key_path: @@ -6249,6 +6423,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6265,6 +6440,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" slow_flush_log_threshold: @@ -6286,6 +6462,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6302,6 +6479,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" verify_fqdn: @@ -6328,9 +6506,3 @@ spec: storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusterflows.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusterflows.yaml index d087e8300..5eece77e7 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusterflows.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusterflows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "clusterflows.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -152,6 +152,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -168,6 +169,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cache_refresh: @@ -193,6 +195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -209,6 +212,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -226,6 +230,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -242,6 +247,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" core_api_versions: @@ -407,6 +413,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -423,6 +430,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -498,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -514,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -606,6 +616,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -622,6 +633,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -697,6 +709,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -713,6 +726,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -1053,9 +1067,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusteroutputs.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusteroutputs.yaml index 62541eeb1..69a15dfd5 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusteroutputs.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/clusteroutputs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "clusteroutputs.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -53,6 +53,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -69,6 +70,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -159,6 +161,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -175,6 +178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -192,6 +196,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -208,6 +213,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -225,6 +231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -241,6 +248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -258,6 +266,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -274,6 +283,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -319,6 +329,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -335,6 +346,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -352,6 +364,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -368,6 +381,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -385,6 +399,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -401,6 +416,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -418,6 +434,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -434,6 +451,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -451,6 +469,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -467,6 +486,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -486,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -502,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -519,6 +541,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -535,6 +558,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -626,6 +650,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -642,6 +667,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -715,6 +741,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -731,6 +758,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -793,6 +821,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -809,6 +838,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_account: @@ -826,6 +856,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -842,6 +873,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_sas_token: @@ -859,6 +891,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -875,6 +908,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -977,6 +1011,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -993,6 +1028,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -1010,6 +1046,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1026,6 +1063,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sts_role_arn: @@ -1198,6 +1236,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1214,6 +1253,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -1345,6 +1385,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1361,6 +1402,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -1451,6 +1493,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1467,6 +1510,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -1484,6 +1528,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1500,6 +1545,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -1517,6 +1563,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1533,6 +1580,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -1550,6 +1598,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1566,6 +1615,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -1661,6 +1711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1677,6 +1728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -1750,6 +1802,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1766,6 +1819,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -2049,6 +2103,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2065,6 +2120,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -2084,6 +2140,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2100,6 +2157,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" standby: @@ -2119,6 +2177,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2135,6 +2194,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" weight: @@ -2164,6 +2224,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2180,6 +2241,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_cert_thumbprint: @@ -2203,6 +2265,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2219,6 +2282,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_passphrase: @@ -2236,6 +2300,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2252,6 +2317,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_path: @@ -2269,6 +2335,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2285,6 +2352,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_insecure_mode: @@ -2396,6 +2464,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2412,6 +2481,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" encryption_key: @@ -2575,6 +2645,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2591,6 +2662,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" username: @@ -2608,6 +2680,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2624,6 +2697,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -2759,6 +2833,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2775,6 +2850,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_ciphers: @@ -2794,6 +2870,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2810,6 +2887,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_passphrase: @@ -2827,6 +2905,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2843,6 +2922,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_path: @@ -2860,6 +2940,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2876,6 +2957,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_verify_mode: @@ -3024,6 +3106,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3040,6 +3123,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" max_send_retries: @@ -3065,6 +3149,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3081,6 +3166,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" principal: @@ -3108,6 +3194,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3124,6 +3211,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_ca_certs_from_system: @@ -3143,6 +3231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3159,6 +3248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_chain: @@ -3176,6 +3266,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3192,6 +3283,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_key: @@ -3209,6 +3301,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3225,6 +3318,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_verify_hostname: @@ -3248,6 +3342,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3264,6 +3359,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -3307,6 +3403,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3323,6 +3420,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3340,6 +3438,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3356,6 +3455,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3373,6 +3473,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3389,6 +3490,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3536,6 +3638,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3552,6 +3655,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3569,6 +3673,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3585,6 +3690,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3602,6 +3708,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3618,6 +3725,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3919,6 +4027,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3935,6 +4044,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4043,6 +4153,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4059,6 +4170,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert: @@ -4076,6 +4188,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4092,6 +4205,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" configure_kubernetes_labels: @@ -4123,6 +4237,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4139,6 +4254,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" labels: @@ -4162,6 +4278,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4178,6 +4295,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" remove_keys: @@ -4205,6 +4323,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4221,6 +4340,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4241,6 +4361,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4257,6 +4378,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" channel_id: @@ -4284,6 +4406,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4300,6 +4423,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -4322,6 +4446,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4338,6 +4463,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" base_uri: @@ -4443,6 +4569,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4459,6 +4586,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4554,6 +4682,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4570,6 +4699,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" catch_transport_exception_on_retry: @@ -4589,6 +4719,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4605,6 +4736,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -4622,6 +4754,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4638,6 +4771,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -4655,6 +4789,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4671,6 +4806,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -4708,6 +4844,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4724,6 +4861,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -4741,6 +4879,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4757,6 +4896,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -4774,6 +4914,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4790,6 +4931,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -4807,6 +4949,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4823,6 +4966,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -4840,6 +4984,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4856,6 +5001,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -4875,6 +5021,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4891,6 +5038,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -4908,6 +5056,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4924,6 +5073,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4996,6 +5146,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5012,6 +5163,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -5079,6 +5231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5095,6 +5248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -5151,6 +5305,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5167,6 +5322,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" access_key_secret: @@ -5184,6 +5340,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5200,6 +5357,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" auto_create_bucket: @@ -5443,6 +5601,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5459,6 +5618,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -5516,6 +5676,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5532,6 +5693,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -5549,6 +5711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5565,6 +5728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -5845,6 +6009,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5861,6 +6026,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_path: @@ -5878,6 +6044,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5894,6 +6061,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -5911,6 +6079,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5927,6 +6096,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -5944,6 +6114,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5960,6 +6131,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" coerce_to_utf8: @@ -6006,6 +6178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6022,6 +6195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" host: @@ -6085,6 +6259,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6101,6 +6276,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -6118,6 +6294,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6134,6 +6311,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -6328,6 +6506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6344,6 +6523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" log_format: @@ -6464,6 +6644,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6480,6 +6661,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" enable_system_cert_store: @@ -6534,6 +6716,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6550,6 +6733,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" private_key_path: @@ -6567,6 +6751,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6583,6 +6768,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" slow_flush_log_threshold: @@ -6604,6 +6790,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6620,6 +6807,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" verify_fqdn: @@ -6722,6 +6910,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6738,6 +6927,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" config_param: @@ -6777,6 +6967,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6793,6 +6984,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -6837,6 +7029,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6853,6 +7046,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -6963,6 +7157,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6979,6 +7174,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" content_type: @@ -7018,9 +7214,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/flows.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/flows.yaml index d95d2d600..54c5186b4 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/flows.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/flows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "flows.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -152,6 +152,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -168,6 +169,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cache_refresh: @@ -193,6 +195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -209,6 +212,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -226,6 +230,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -242,6 +247,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" core_api_versions: @@ -407,6 +413,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -423,6 +430,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -498,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -514,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -606,6 +616,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -622,6 +633,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -697,6 +709,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -713,6 +726,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -1049,9 +1063,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/fluentbitagents.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/fluentbitagents.yaml index e3ae8b157..cd8bd2405 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/fluentbitagents.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/fluentbitagents.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "fluentbitagents.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -71,6 +71,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -117,10 +118,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -152,6 +155,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -185,6 +189,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -228,6 +233,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -261,6 +267,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -302,6 +309,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -335,6 +343,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -378,6 +387,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -411,6 +421,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -502,6 +513,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -558,6 +570,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -606,6 +619,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -748,6 +762,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -759,6 +774,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -775,6 +791,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -786,6 +803,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -804,6 +822,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -852,6 +871,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -949,6 +969,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -958,6 +979,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -973,6 +995,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -984,6 +1007,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1271,6 +1295,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -1564,6 +1589,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -1575,6 +1601,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -1591,6 +1618,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -1602,6 +1630,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -1620,6 +1649,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -1721,6 +1751,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -1777,6 +1808,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -1873,6 +1905,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -1929,6 +1962,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -2218,6 +2252,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" metadata: properties: @@ -2248,6 +2283,7 @@ spec: uid: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" type: "object" syslogng_output: @@ -2317,9 +2353,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/loggings.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/loggings.yaml index ce6ae3191..b94f72733 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/loggings.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/loggings.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "loggings.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -179,6 +179,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -195,6 +196,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cache_refresh: @@ -220,6 +222,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -236,6 +239,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -253,6 +257,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -269,6 +274,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" core_api_versions: @@ -434,6 +440,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -450,6 +457,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -525,6 +533,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -541,6 +550,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -633,6 +643,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -649,6 +660,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -724,6 +736,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -740,6 +753,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -1069,6 +1083,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -1115,10 +1130,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -1150,6 +1167,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -1183,6 +1201,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1226,6 +1245,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -1259,6 +1279,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1300,6 +1321,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -1333,6 +1355,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1376,6 +1399,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -1409,6 +1433,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -1500,6 +1525,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -1556,6 +1582,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -1604,6 +1631,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -1746,6 +1774,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -1757,6 +1786,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -1773,6 +1803,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -1784,6 +1815,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -1802,6 +1834,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -1850,6 +1883,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -1947,6 +1981,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -1956,6 +1991,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -1971,6 +2007,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -1982,6 +2019,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -2269,6 +2307,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -2562,6 +2601,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -2573,6 +2613,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -2589,6 +2630,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -2600,6 +2642,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -2618,6 +2661,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -2719,6 +2763,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -2775,6 +2820,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -2871,6 +2917,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -2927,6 +2974,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3216,6 +3264,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" metadata: properties: @@ -3246,6 +3295,7 @@ spec: uid: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" type: "object" syslogng_output: @@ -3352,6 +3402,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -3398,10 +3449,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -3433,6 +3486,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -3466,6 +3520,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -3509,6 +3564,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -3542,6 +3598,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -3583,6 +3640,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -3616,6 +3674,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -3659,6 +3718,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -3692,6 +3752,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -3768,6 +3829,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -3824,6 +3886,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3872,6 +3935,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -4014,6 +4078,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -4025,6 +4090,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -4041,6 +4107,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -4052,6 +4119,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -4070,6 +4138,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -4153,6 +4222,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -4238,6 +4308,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -4247,6 +4318,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -4262,6 +4334,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -4273,6 +4346,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -4349,6 +4423,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -4405,6 +4480,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -4520,6 +4596,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -4576,6 +4653,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -4694,6 +4772,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -4924,6 +5003,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -4935,6 +5015,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -4951,6 +5032,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -4962,6 +5044,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -4980,6 +5063,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -5170,6 +5254,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -5190,6 +5275,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -5440,6 +5526,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" metadata: properties: @@ -5470,6 +5557,7 @@ spec: uid: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" type: "object" sidecarContainers: @@ -5503,6 +5591,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -5512,6 +5601,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -5527,6 +5617,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -5538,6 +5629,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -5553,6 +5645,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -5562,6 +5655,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -6159,6 +6253,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -6192,6 +6287,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" pullPolicy: type: "string" @@ -6322,6 +6418,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6338,6 +6435,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cache_refresh: @@ -6363,6 +6461,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6379,6 +6478,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -6396,6 +6496,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6412,6 +6513,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" core_api_versions: @@ -6577,6 +6679,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6593,6 +6696,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -6668,6 +6772,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6684,6 +6789,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -6776,6 +6882,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6792,6 +6899,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" delimiter: @@ -6867,6 +6975,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6883,6 +6992,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" estimate_current_event: @@ -7240,6 +7350,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -7296,6 +7407,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -7383,6 +7495,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" template: properties: metadata: @@ -7443,6 +7556,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -7489,10 +7603,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -7524,6 +7640,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -7557,6 +7674,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -7600,6 +7718,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -7633,6 +7752,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -7674,6 +7794,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -7707,6 +7828,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -7750,6 +7872,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -7783,6 +7906,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -7828,6 +7952,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -7837,6 +7962,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -7852,6 +7978,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -7863,6 +7990,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -7878,6 +8006,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -7887,6 +8016,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -8482,6 +8612,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -8491,6 +8622,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -8506,6 +8638,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -8517,6 +8650,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -8532,6 +8666,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -8541,6 +8676,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -9108,6 +9244,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -9140,6 +9277,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -9149,6 +9287,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -9164,6 +9303,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -9175,6 +9315,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -9190,6 +9331,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -9199,6 +9341,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -9892,6 +10035,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -9985,6 +10129,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -10001,6 +10146,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -10031,6 +10177,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -10042,6 +10189,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -10068,6 +10216,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -10088,6 +10237,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -10128,6 +10278,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -10184,6 +10335,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -10232,6 +10384,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -10316,6 +10469,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -10399,6 +10553,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -10432,6 +10587,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -10446,6 +10602,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -10466,6 +10623,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -10493,6 +10651,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -10547,6 +10706,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -10568,6 +10728,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -10619,6 +10780,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -10999,6 +11161,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -11010,6 +11173,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -11026,6 +11190,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -11037,6 +11202,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -11055,6 +11221,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -11251,6 +11418,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -11307,6 +11475,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -11487,6 +11656,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" metadata: properties: @@ -11517,6 +11687,7 @@ spec: uid: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" type: "object" targetHost: @@ -11682,6 +11853,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -11693,6 +11865,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -11709,6 +11882,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -11720,6 +11894,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -11738,6 +11913,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -11895,6 +12071,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -11941,10 +12118,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -11976,6 +12155,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -12009,6 +12189,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -12052,6 +12233,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -12085,6 +12267,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -12126,6 +12309,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -12159,6 +12343,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -12202,6 +12387,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -12235,6 +12421,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -12280,6 +12467,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -12289,6 +12477,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -12304,6 +12493,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -12315,6 +12505,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -12330,6 +12521,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -12339,6 +12531,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -12934,6 +13127,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -12943,6 +13137,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -12958,6 +13153,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -12969,6 +13165,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -12984,6 +13181,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -12993,6 +13191,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -13560,6 +13759,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -13592,6 +13792,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -13601,6 +13802,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -13616,6 +13818,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -13627,6 +13830,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -13642,6 +13846,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -13651,6 +13856,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -14344,6 +14550,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -14437,6 +14644,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -14453,6 +14661,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -14483,6 +14692,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -14494,6 +14704,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -14520,6 +14731,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -14540,6 +14752,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -14580,6 +14793,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -14636,6 +14850,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -14684,6 +14899,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -14768,6 +14984,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -14851,6 +15068,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -14884,6 +15102,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -14898,6 +15117,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -14918,6 +15138,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -14945,6 +15166,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -14999,6 +15221,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -15020,6 +15243,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -15071,6 +15295,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -15252,6 +15477,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -15263,6 +15489,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -15279,6 +15506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -15290,6 +15518,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -15308,6 +15537,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -15559,6 +15789,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" metadata: properties: @@ -15589,6 +15820,7 @@ spec: uid: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" type: "object" skipRBACCreate: @@ -15659,6 +15891,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" serviceName: type: "string" template: @@ -15721,6 +15954,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -15767,10 +16001,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -15802,6 +16038,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -15835,6 +16072,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -15878,6 +16116,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -15911,6 +16150,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -15952,6 +16192,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -15985,6 +16226,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -16028,6 +16270,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -16061,6 +16304,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -16106,6 +16350,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -16115,6 +16360,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -16130,6 +16376,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -16141,6 +16388,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -16156,6 +16404,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -16165,6 +16414,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -16760,6 +17010,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -16769,6 +17020,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -16784,6 +17036,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -16795,6 +17048,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -16810,6 +17064,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -16819,6 +17074,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -17386,6 +17642,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -17418,6 +17675,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -17427,6 +17685,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -17442,6 +17701,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -17453,6 +17713,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -17468,6 +17729,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -17477,6 +17739,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -18170,6 +18433,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -18263,6 +18527,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -18279,6 +18544,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -18309,6 +18575,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -18320,6 +18587,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -18346,6 +18614,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -18366,6 +18635,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -18406,6 +18676,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -18462,6 +18733,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -18510,6 +18782,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -18594,6 +18867,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -18677,6 +18951,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -18710,6 +18985,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -18724,6 +19000,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -18744,6 +19021,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -18771,6 +19049,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -18825,6 +19104,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -18846,6 +19126,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -18897,6 +19178,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -18971,6 +19253,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -19027,6 +19310,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -19075,6 +19359,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" watchNamespaces: items: type: "string" @@ -19108,9 +19393,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/nodeagents.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/nodeagents.yaml index 08933304f..ebffdcff1 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/nodeagents.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/nodeagents.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "nodeagents.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -117,6 +117,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -173,6 +174,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -260,6 +262,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" template: properties: metadata: @@ -320,6 +323,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -366,10 +370,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -401,6 +407,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -434,6 +441,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -477,6 +485,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -510,6 +519,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -551,6 +561,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -584,6 +595,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -627,6 +639,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -660,6 +673,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -705,6 +719,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -714,6 +729,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -729,6 +745,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -740,6 +757,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -755,6 +773,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -764,6 +783,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -1359,6 +1379,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -1368,6 +1389,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -1383,6 +1405,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -1394,6 +1417,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1409,6 +1433,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -1418,6 +1443,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -1985,6 +2011,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -2017,6 +2044,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -2026,6 +2054,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -2041,6 +2070,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -2052,6 +2082,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -2067,6 +2098,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -2076,6 +2108,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -2769,6 +2802,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -2862,6 +2896,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -2878,6 +2913,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -2908,6 +2944,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -2919,6 +2956,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -2945,6 +2983,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -2965,6 +3004,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -3005,6 +3045,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -3061,6 +3102,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3109,6 +3151,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -3193,6 +3236,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -3276,6 +3320,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -3309,6 +3354,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -3323,6 +3369,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -3343,6 +3390,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -3370,6 +3418,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -3424,6 +3473,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -3445,6 +3495,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -3496,6 +3547,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -3876,6 +3928,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -3887,6 +3940,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" caFile: type: "string" @@ -3903,6 +3957,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" secret: properties: key: @@ -3914,6 +3969,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" certFile: type: "string" @@ -3932,6 +3988,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" serverName: type: "string" type: "object" @@ -4128,6 +4185,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -4184,6 +4242,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -4364,6 +4423,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" metadata: properties: @@ -4394,6 +4454,7 @@ spec: uid: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" type: "object" targetHost: @@ -4425,9 +4486,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/outputs.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/outputs.yaml index 2278dcffa..d78cdcd34 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/outputs.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/outputs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "outputs.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -53,6 +53,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -69,6 +70,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -159,6 +161,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -175,6 +178,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -192,6 +196,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -208,6 +213,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -225,6 +231,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -241,6 +248,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -258,6 +266,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -274,6 +283,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -319,6 +329,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -335,6 +346,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -352,6 +364,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -368,6 +381,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -385,6 +399,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -401,6 +416,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -418,6 +434,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -434,6 +451,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -451,6 +469,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -467,6 +486,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -486,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -502,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -519,6 +541,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -535,6 +558,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -626,6 +650,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -642,6 +667,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -715,6 +741,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -731,6 +758,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -793,6 +821,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -809,6 +838,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_account: @@ -826,6 +856,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -842,6 +873,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" azure_storage_sas_token: @@ -859,6 +891,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -875,6 +908,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -977,6 +1011,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -993,6 +1028,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -1010,6 +1046,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1026,6 +1063,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sts_role_arn: @@ -1198,6 +1236,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1214,6 +1253,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -1345,6 +1385,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1361,6 +1402,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" application_name: @@ -1451,6 +1493,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1467,6 +1510,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -1484,6 +1528,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1500,6 +1545,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -1517,6 +1563,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1533,6 +1580,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -1550,6 +1598,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1566,6 +1615,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -1661,6 +1711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1677,6 +1728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -1750,6 +1802,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1766,6 +1819,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -2045,6 +2099,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2061,6 +2116,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -2080,6 +2136,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2096,6 +2153,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" standby: @@ -2115,6 +2173,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2131,6 +2190,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" weight: @@ -2160,6 +2220,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2176,6 +2237,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_cert_thumbprint: @@ -2199,6 +2261,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2215,6 +2278,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_passphrase: @@ -2232,6 +2296,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2248,6 +2313,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_client_private_key_path: @@ -2265,6 +2331,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2281,6 +2348,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_insecure_mode: @@ -2392,6 +2460,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2408,6 +2477,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" encryption_key: @@ -2571,6 +2641,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2587,6 +2658,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" username: @@ -2604,6 +2676,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2620,6 +2693,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -2755,6 +2829,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2771,6 +2846,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_ciphers: @@ -2790,6 +2866,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2806,6 +2883,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_passphrase: @@ -2823,6 +2901,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2839,6 +2918,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_private_key_path: @@ -2856,6 +2936,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2872,6 +2953,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" tls_verify_mode: @@ -3020,6 +3102,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3036,6 +3119,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" max_send_retries: @@ -3061,6 +3145,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3077,6 +3162,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" principal: @@ -3104,6 +3190,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3120,6 +3207,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_ca_certs_from_system: @@ -3139,6 +3227,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3155,6 +3244,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_chain: @@ -3172,6 +3262,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3188,6 +3279,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_client_cert_key: @@ -3205,6 +3297,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3221,6 +3314,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ssl_verify_hostname: @@ -3244,6 +3338,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3260,6 +3355,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -3303,6 +3399,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3319,6 +3416,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3336,6 +3434,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3352,6 +3451,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3369,6 +3469,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3385,6 +3486,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3532,6 +3634,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3548,6 +3651,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -3565,6 +3669,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3581,6 +3686,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_ses_token: @@ -3598,6 +3704,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3614,6 +3721,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch_request_max_count: @@ -3915,6 +4023,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -3931,6 +4040,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4039,6 +4149,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4055,6 +4166,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert: @@ -4072,6 +4184,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4088,6 +4201,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" configure_kubernetes_labels: @@ -4119,6 +4233,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4135,6 +4250,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" labels: @@ -4158,6 +4274,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4174,6 +4291,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" remove_keys: @@ -4201,6 +4319,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4217,6 +4336,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4237,6 +4357,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4253,6 +4374,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" channel_id: @@ -4280,6 +4402,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4296,6 +4419,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" required: @@ -4318,6 +4442,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4334,6 +4459,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" base_uri: @@ -4439,6 +4565,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4455,6 +4582,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -4550,6 +4678,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4566,6 +4695,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" catch_transport_exception_on_retry: @@ -4585,6 +4715,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4601,6 +4732,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -4618,6 +4750,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4634,6 +4767,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key_pass: @@ -4651,6 +4785,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4667,6 +4802,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" compression_level: @@ -4704,6 +4840,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4720,6 +4857,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_arn: @@ -4737,6 +4875,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4753,6 +4892,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_session_name: @@ -4770,6 +4910,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4786,6 +4927,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" assume_role_web_identity_token_file: @@ -4803,6 +4945,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4819,6 +4962,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ecs_container_credentials_relative_uri: @@ -4836,6 +4980,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4852,6 +4997,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" region: @@ -4871,6 +5017,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4887,6 +5034,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" sts_credentials_region: @@ -4904,6 +5052,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -4920,6 +5069,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -4992,6 +5142,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5008,6 +5159,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -5075,6 +5227,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5091,6 +5244,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" template_name: @@ -5147,6 +5301,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5163,6 +5318,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" access_key_secret: @@ -5180,6 +5336,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5196,6 +5353,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" auto_create_bucket: @@ -5437,6 +5595,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5453,6 +5612,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" port: @@ -5510,6 +5670,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5526,6 +5687,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -5543,6 +5705,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5559,6 +5722,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -5839,6 +6003,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5855,6 +6020,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_path: @@ -5872,6 +6038,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5888,6 +6055,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_cert: @@ -5905,6 +6073,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5921,6 +6090,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" client_key: @@ -5938,6 +6108,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -5954,6 +6125,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" coerce_to_utf8: @@ -6000,6 +6172,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6016,6 +6189,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" host: @@ -6079,6 +6253,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6095,6 +6270,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" aws_sec_key: @@ -6112,6 +6288,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6128,6 +6305,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" buffer: @@ -6322,6 +6500,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6338,6 +6517,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" log_format: @@ -6458,6 +6638,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6474,6 +6655,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" enable_system_cert_store: @@ -6528,6 +6710,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6544,6 +6727,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" private_key_path: @@ -6561,6 +6745,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6577,6 +6762,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" slow_flush_log_threshold: @@ -6598,6 +6784,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6614,6 +6801,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" verify_fqdn: @@ -6716,6 +6904,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6732,6 +6921,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" config_param: @@ -6771,6 +6961,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6787,6 +6978,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" path: @@ -6831,6 +7023,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6847,6 +7040,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -6957,6 +7151,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -6973,6 +7168,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" content_type: @@ -7010,9 +7206,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusterflows.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusterflows.yaml index 285dccb21..22684fb4b 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusterflows.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusterflows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "syslogngclusterflows.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -357,9 +357,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusteroutputs.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusteroutputs.yaml index f8e4e9bdf..f16d8cfda 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusteroutputs.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngclusteroutputs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "syslogngclusteroutputs.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -109,6 +109,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -125,6 +126,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -158,6 +160,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -174,6 +177,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -191,6 +195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -207,6 +212,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -224,6 +230,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -240,6 +247,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -259,6 +267,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -275,6 +284,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -412,6 +422,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -428,6 +439,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -459,6 +471,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -475,6 +488,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -492,6 +506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -508,6 +523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -525,6 +541,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -541,6 +558,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -560,6 +578,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -576,6 +595,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -670,6 +690,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -686,6 +707,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -703,6 +725,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -719,6 +742,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -736,6 +760,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -752,6 +777,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -771,6 +797,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -787,6 +814,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -818,6 +846,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -834,6 +863,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" transport: @@ -904,6 +934,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -920,6 +951,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -937,6 +969,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -953,6 +986,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -988,6 +1022,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1004,6 +1039,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -1021,6 +1057,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1037,6 +1074,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" key_file: @@ -1054,6 +1092,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1070,6 +1109,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -1192,6 +1232,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1208,6 +1249,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" value_pairs: @@ -1308,6 +1350,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1324,6 +1367,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -1361,6 +1405,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1377,6 +1422,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -1394,6 +1440,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1410,6 +1457,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -1427,6 +1475,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1443,6 +1492,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -1462,6 +1512,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1478,6 +1529,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -1520,6 +1572,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1536,6 +1589,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch-bytes: @@ -1613,6 +1667,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1629,6 +1684,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" bucket: @@ -1641,6 +1697,30 @@ spec: type: "boolean" compresslevel: type: "integer" + disk_buffer: + properties: + compaction: + type: "boolean" + dir: + type: "string" + disk_buf_size: + format: "int64" + type: "integer" + mem_buf_length: + format: "int64" + type: "integer" + mem_buf_size: + format: "int64" + type: "integer" + q_out_size: + format: "int64" + type: "integer" + reliable: + type: "boolean" + required: + - "disk_buf_size" + - "reliable" + type: "object" flush_grace_period: type: "integer" log-fifo-size: @@ -1674,6 +1754,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1690,6 +1771,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" storage_class: @@ -1790,6 +1872,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1806,6 +1889,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -1843,6 +1927,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1859,6 +1944,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -1876,6 +1962,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1892,6 +1979,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -1909,6 +1997,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1925,6 +2014,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -1944,6 +2034,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1960,6 +2051,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -1991,6 +2083,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2007,6 +2100,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -2043,6 +2137,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2059,6 +2154,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" deployment: @@ -2112,6 +2208,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2128,6 +2225,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -2145,6 +2243,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2161,6 +2260,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -2178,6 +2278,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2194,6 +2295,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -2213,6 +2315,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2229,6 +2332,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -2260,6 +2364,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2276,6 +2381,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -2330,6 +2436,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2346,6 +2453,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -2363,6 +2471,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2379,6 +2488,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -2396,6 +2506,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2412,6 +2523,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -2431,6 +2543,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2447,6 +2560,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -2531,6 +2645,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2547,6 +2662,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -2564,6 +2680,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2580,6 +2697,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -2597,6 +2715,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2613,6 +2732,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -2632,6 +2752,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2648,6 +2769,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -2688,9 +2810,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngflows.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngflows.yaml index e8850e032..c59d10188 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngflows.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngflows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "syslogngflows.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -361,9 +361,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngoutputs.yaml b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngoutputs.yaml index fce185aa6..ebd3c55df 100644 --- a/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngoutputs.yaml +++ b/crd-catalog/kube-logging/logging-operator/logging.banzaicloud.io/v1beta1/syslogngoutputs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "syslogngoutputs.logging.banzaicloud.io" spec: group: "logging.banzaicloud.io" @@ -109,6 +109,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -125,6 +126,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -158,6 +160,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -174,6 +177,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -191,6 +195,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -207,6 +212,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -224,6 +230,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -240,6 +247,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -259,6 +267,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -275,6 +284,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -408,6 +418,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -424,6 +435,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -455,6 +467,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -471,6 +484,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -488,6 +502,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -504,6 +519,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -521,6 +537,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -537,6 +554,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -556,6 +574,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -572,6 +591,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -666,6 +686,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -682,6 +703,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -699,6 +721,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -715,6 +738,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -732,6 +756,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -748,6 +773,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -767,6 +793,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -783,6 +810,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -814,6 +842,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -830,6 +859,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" transport: @@ -900,6 +930,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -916,6 +947,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -933,6 +965,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -949,6 +982,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -984,6 +1018,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1000,6 +1035,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -1017,6 +1053,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1033,6 +1070,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" key_file: @@ -1050,6 +1088,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1066,6 +1105,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -1188,6 +1228,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1204,6 +1245,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" value_pairs: @@ -1304,6 +1346,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1320,6 +1363,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -1357,6 +1401,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1373,6 +1418,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -1390,6 +1436,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1406,6 +1453,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -1423,6 +1471,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1439,6 +1488,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -1458,6 +1508,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1474,6 +1525,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -1516,6 +1568,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1532,6 +1585,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" batch-bytes: @@ -1609,6 +1663,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1625,6 +1680,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" bucket: @@ -1637,6 +1693,30 @@ spec: type: "boolean" compresslevel: type: "integer" + disk_buffer: + properties: + compaction: + type: "boolean" + dir: + type: "string" + disk_buf_size: + format: "int64" + type: "integer" + mem_buf_length: + format: "int64" + type: "integer" + mem_buf_size: + format: "int64" + type: "integer" + q_out_size: + format: "int64" + type: "integer" + reliable: + type: "boolean" + required: + - "disk_buf_size" + - "reliable" + type: "object" flush_grace_period: type: "integer" log-fifo-size: @@ -1670,6 +1750,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1686,6 +1767,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" storage_class: @@ -1786,6 +1868,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1802,6 +1885,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" persist_name: @@ -1839,6 +1923,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1855,6 +1940,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -1872,6 +1958,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1888,6 +1975,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -1905,6 +1993,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1921,6 +2010,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -1940,6 +2030,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -1956,6 +2047,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -1987,6 +2079,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2003,6 +2096,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" url: @@ -2039,6 +2133,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2055,6 +2150,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" deployment: @@ -2108,6 +2204,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2124,6 +2221,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -2141,6 +2239,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2157,6 +2256,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -2174,6 +2274,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2190,6 +2291,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -2209,6 +2311,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2225,6 +2328,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -2256,6 +2360,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2272,6 +2377,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" type: "object" @@ -2326,6 +2432,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2342,6 +2449,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -2359,6 +2467,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2375,6 +2484,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -2392,6 +2502,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2408,6 +2519,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -2427,6 +2539,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2443,6 +2556,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -2527,6 +2641,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2543,6 +2658,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" ca_file: @@ -2560,6 +2676,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2576,6 +2693,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cert_file: @@ -2593,6 +2711,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2609,6 +2728,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" cipher-suite: @@ -2628,6 +2748,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" value: type: "string" @@ -2644,6 +2765,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "object" peer_verify: @@ -2682,9 +2804,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotclasses.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotclasses.yaml index 8baed6a4d..299966892 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotclasses.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotclasses.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/814" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumegroupsnapshotclasses.groupsnapshot.storage.k8s.io" spec: group: "groupsnapshot.storage.k8s.io" @@ -31,29 +31,29 @@ spec: name: "v1alpha1" schema: openAPIV3Schema: - description: "VolumeGroupSnapshotClass specifies parameters that a underlying storage system uses when creating a volume group snapshot. A specific VolumeGroupSnapshotClass is used by specifying its name in a VolumeGroupSnapshot object. VolumeGroupSnapshotClasses are non-namespaced." + description: "VolumeGroupSnapshotClass specifies parameters that a underlying storage system\nuses when creating a volume group snapshot. A specific VolumeGroupSnapshotClass\nis used by specifying its name in a VolumeGroupSnapshot object.\nVolumeGroupSnapshotClasses are non-namespaced." 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" type: "string" deletionPolicy: - description: "DeletionPolicy determines whether a VolumeGroupSnapshotContent created through the VolumeGroupSnapshotClass should be deleted when its bound VolumeGroupSnapshot is deleted. Supported values are \"Retain\" and \"Delete\". \"Retain\" means that the VolumeGroupSnapshotContent and its physical group snapshot on underlying storage system are kept. \"Delete\" means that the VolumeGroupSnapshotContent and its physical group snapshot on underlying storage system are deleted. Required." + description: "DeletionPolicy determines whether a VolumeGroupSnapshotContent created\nthrough the VolumeGroupSnapshotClass should be deleted when its bound\nVolumeGroupSnapshot is deleted.\nSupported values are \"Retain\" and \"Delete\".\n\"Retain\" means that the VolumeGroupSnapshotContent and its physical group\nsnapshot on underlying storage system are kept.\n\"Delete\" means that the VolumeGroupSnapshotContent and its physical group\nsnapshot on underlying storage system are deleted.\nRequired." enum: - "Delete" - "Retain" type: "string" driver: - description: "Driver is the name of the storage driver expected to handle this VolumeGroupSnapshotClass. Required." + description: "Driver is the name of the storage driver expected to handle this VolumeGroupSnapshotClass.\nRequired." 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" parameters: additionalProperties: type: "string" - description: "Parameters is a key-value map with storage driver specific parameters for creating group snapshots. These values are opaque to Kubernetes and are passed directly to the driver." + description: "Parameters is a key-value map with storage driver specific parameters for\ncreating group snapshots.\nThese values are opaque to Kubernetes and are passed directly to the driver." type: "object" required: - "deletionPolicy" diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotcontents.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotcontents.yaml index b085246c1..088400bdb 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotcontents.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshotcontents.yaml @@ -2,8 +2,8 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/971" - controller-gen.kubebuilder.io/version: "v0.12.0" + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1068" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumegroupsnapshotcontents.groupsnapshot.storage.k8s.io" spec: group: "groupsnapshot.storage.k8s.io" @@ -48,44 +48,39 @@ spec: name: "v1alpha1" schema: openAPIV3Schema: - description: "VolumeGroupSnapshotContent represents the actual \"on-disk\" group snapshot object in the underlying storage system" + description: "VolumeGroupSnapshotContent represents the actual \"on-disk\" group snapshot object\nin the underlying storage system" 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" spec: - description: "Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system. Required." + description: "Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system.\nRequired." properties: deletionPolicy: - description: "DeletionPolicy determines whether this VolumeGroupSnapshotContent and the physical group snapshot on the underlying storage system should be deleted when the bound VolumeGroupSnapshot is deleted. Supported values are \"Retain\" and \"Delete\". \"Retain\" means that the VolumeGroupSnapshotContent and its physical group snapshot on underlying storage system are kept. \"Delete\" means that the VolumeGroupSnapshotContent and its physical group snapshot on underlying storage system are deleted. For dynamically provisioned group snapshots, this field will automatically be filled in by the CSI snapshotter sidecar with the \"DeletionPolicy\" field defined in the corresponding VolumeGroupSnapshotClass. For pre-existing snapshots, users MUST specify this field when creating the VolumeGroupSnapshotContent object. Required." + description: "DeletionPolicy determines whether this VolumeGroupSnapshotContent and the\nphysical group snapshot on the underlying storage system should be deleted\nwhen the bound VolumeGroupSnapshot is deleted.\nSupported values are \"Retain\" and \"Delete\".\n\"Retain\" means that the VolumeGroupSnapshotContent and its physical group\nsnapshot on underlying storage system are kept.\n\"Delete\" means that the VolumeGroupSnapshotContent and its physical group\nsnapshot on underlying storage system are deleted.\nFor dynamically provisioned group snapshots, this field will automatically\nbe filled in by the CSI snapshotter sidecar with the \"DeletionPolicy\" field\ndefined in the corresponding VolumeGroupSnapshotClass.\nFor pre-existing snapshots, users MUST specify this field when creating the\nVolumeGroupSnapshotContent object.\nRequired." enum: - "Delete" - "Retain" type: "string" driver: - description: "Driver is the name of the CSI driver used to create the physical group snapshot on the underlying storage system. This MUST be the same as the name returned by the CSI GetPluginName() call for that driver. Required." + description: "Driver is the name of the CSI driver used to create the physical group snapshot on\nthe underlying storage system.\nThis MUST be the same as the name returned by the CSI GetPluginName() call for\nthat driver.\nRequired." type: "string" source: - description: "Source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required." - oneOf: - - required: - - "volumeHandles" - - required: - - "groupSnapshotHandles" + description: "Source specifies whether the snapshot is (or should be) dynamically provisioned\nor already exists, and just requires a Kubernetes object representation.\nThis field is immutable after creation.\nRequired." properties: groupSnapshotHandles: - description: "GroupSnapshotHandles specifies the CSI \"group_snapshot_id\" of a pre-existing group snapshot and a list of CSI \"snapshot_id\" of pre-existing snapshots on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable." + description: "GroupSnapshotHandles specifies the CSI \"group_snapshot_id\" of a pre-existing\ngroup snapshot and a list of CSI \"snapshot_id\" of pre-existing snapshots\non the underlying storage system for which a Kubernetes object\nrepresentation was (or should be) created.\nThis field is immutable." properties: volumeGroupSnapshotHandle: - description: "VolumeGroupSnapshotHandle specifies the CSI \"group_snapshot_id\" of a pre-existing group snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. Required." + description: "VolumeGroupSnapshotHandle specifies the CSI \"group_snapshot_id\" of a pre-existing\ngroup snapshot on the underlying storage system for which a Kubernetes object\nrepresentation was (or should be) created.\nThis field is immutable.\nRequired." type: "string" volumeSnapshotHandles: - description: "VolumeSnapshotHandles is a list of CSI \"snapshot_id\" of pre-existing snapshots on the underlying storage system for which Kubernetes objects representation were (or should be) created. This field is immutable. Required." + description: "VolumeSnapshotHandles is a list of CSI \"snapshot_id\" of pre-existing\nsnapshots on the underlying storage system for which Kubernetes objects\nrepresentation were (or should be) created.\nThis field is immutable.\nRequired." items: type: "string" type: "array" @@ -93,41 +88,59 @@ spec: - "volumeGroupSnapshotHandle" - "volumeSnapshotHandles" type: "object" + x-kubernetes-validations: + - message: "groupSnapshotHandles is immutable" + rule: "self == oldSelf" volumeHandles: - description: "VolumeHandles is a list of volume handles on the backend to be snapshotted together. It is specified for dynamic provisioning of the VolumeGroupSnapshot. This field is immutable." + description: "VolumeHandles is a list of volume handles on the backend to be snapshotted\ntogether. It is specified for dynamic provisioning of the VolumeGroupSnapshot.\nThis field is immutable." items: type: "string" type: "array" + x-kubernetes-validations: + - message: "volumeHandles is immutable" + rule: "self == oldSelf" type: "object" + x-kubernetes-validations: + - message: "volumeHandles is required once set" + rule: "!has(oldSelf.volumeHandles) || has(self.volumeHandles)" + - message: "groupSnapshotHandles is required once set" + rule: "!has(oldSelf.groupSnapshotHandles) || has(self.groupSnapshotHandles)" + - message: "exactly one of volumeHandles and groupSnapshotHandles must be set" + rule: "(has(self.volumeHandles) && !has(self.groupSnapshotHandles)) || (!has(self.volumeHandles) && has(self.groupSnapshotHandles))" volumeGroupSnapshotClassName: - description: "VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass from which this group snapshot was (or will be) created. Note that after provisioning, the VolumeGroupSnapshotClass may be deleted or recreated with different set of values, and as such, should not be referenced post-snapshot creation. For dynamic provisioning, this field must be set. This field may be unset for pre-provisioned snapshots." + description: "VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass from\nwhich this group snapshot was (or will be) created.\nNote that after provisioning, the VolumeGroupSnapshotClass may be deleted or\nrecreated with different set of values, and as such, should not be referenced\npost-snapshot creation.\nFor dynamic provisioning, this field must be set.\nThis field may be unset for pre-provisioned snapshots." type: "string" volumeGroupSnapshotRef: - description: "VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this VolumeGroupSnapshotContent object is bound. VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to this VolumeGroupSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeGroupSnapshotContent object, name and namespace of the VolumeGroupSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required." + description: "VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this\nVolumeGroupSnapshotContent object is bound.\nVolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to\nthis VolumeGroupSnapshotContent's name for the bidirectional binding to be valid.\nFor a pre-existing VolumeGroupSnapshotContent object, name and namespace of the\nVolumeGroupSnapshot object MUST be provided for binding to happen.\nThis field is immutable after creation.\nRequired." 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\nshould contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\nFor example, if the object reference is to a container within a pod, this would take on a value like:\n\"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\nthe event) or if no container name is specified \"spec.containers[2]\" (container with\nindex 2 in this pod). This syntax is chosen only to have some well-defined way of\nreferencing a part of an object.\nTODO: 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.\nMore 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.\nMore 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.\nMore 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.\nMore 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids" type: "string" type: "object" x-kubernetes-map-type: "atomic" + x-kubernetes-validations: + - message: "both volumeGroupSnapshotRef.name and volumeGroupSnapshotRef.namespace must be set" + rule: "has(self.name) && has(self.__namespace__)" + - message: "volumeGroupSnapshotRef is immutable" + rule: "self == oldSelf" required: - "deletionPolicy" - "driver" @@ -138,55 +151,49 @@ spec: description: "status represents the current information of a group snapshot." properties: creationTime: - description: "CreationTime is the timestamp when the point-in-time group snapshot is taken by the underlying storage system. If not specified, it indicates the creation time is unknown. If not specified, it means the readiness of a group snapshot is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command date +%s%N returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC." + description: "CreationTime is the timestamp when the point-in-time group snapshot is taken\nby the underlying storage system.\nIf not specified, it indicates the creation time is unknown.\nIf not specified, it means the readiness of a group snapshot is unknown.\nThe format of this field is a Unix nanoseconds time encoded as an int64.\nOn Unix, the command date +%s%N returns the current time in nanoseconds\nsince 1970-01-01 00:00:00 UTC." format: "int64" type: "integer" error: - description: "Error is the last observed error during group snapshot creation, if any. Upon success after retry, this error field will be cleared." + description: "Error is the last observed error during group snapshot creation, if any.\nUpon success after retry, this error field will be cleared." properties: message: - description: "message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information." + description: "message is a string detailing the encountered error during snapshot\ncreation if specified.\nNOTE: message may be logged, and it should not contain sensitive\ninformation." type: "string" time: description: "time is the timestamp when the error was encountered." format: "date-time" type: "string" type: "object" - readyToUse: - description: "ReadyToUse indicates if all the individual snapshots in the group are ready to be used to restore a group of volumes. ReadyToUse becomes true when ReadyToUse of all individual snapshots become true." - type: "boolean" - volumeGroupSnapshotHandle: - description: "VolumeGroupSnapshotHandle is a unique id returned by the CSI driver to identify the VolumeGroupSnapshot on the storage system. If a storage system does not provide such an id, the CSI driver can choose to return the VolumeGroupSnapshot name." - type: "string" - volumeSnapshotContentRefList: - description: "VolumeSnapshotContentRefList is the list of volume snapshot content references for this group snapshot. The maximum number of allowed snapshots in the group is 100." + pvVolumeSnapshotContentList: + description: "PVVolumeSnapshotContentList is the list of pairs of PV and\nVolumeSnapshotContent for this group snapshot\nThe maximum number of allowed snapshots in the group is 100." 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: "PVVolumeSnapshotContentPair represent a pair of PV names and\nVolumeSnapshotContent names" 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." - type: "string" - kind: - 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" - type: "string" - namespace: - 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" - type: "string" - uid: - description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids" - type: "string" + persistentVolumeRef: + description: "PersistentVolumeRef is a reference to the persistent volume resource" + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + volumeSnapshotContentRef: + description: "VolumeSnapshotContentRef is a reference to the volume snapshot content resource" + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" type: "object" - x-kubernetes-map-type: "atomic" type: "array" + readyToUse: + description: "ReadyToUse indicates if all the individual snapshots in the group are ready to be\nused to restore a group of volumes.\nReadyToUse becomes true when ReadyToUse of all individual snapshots become true." + type: "boolean" + volumeGroupSnapshotHandle: + description: "VolumeGroupSnapshotHandle is a unique id returned by the CSI driver\nto identify the VolumeGroupSnapshot on the storage system.\nIf a storage system does not provide such an id, the\nCSI driver can choose to return the VolumeGroupSnapshot name." + type: "string" type: "object" required: - "spec" diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshots.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshots.yaml index 05b542eaf..12e8285fd 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshots.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/groupsnapshot.storage.k8s.io/v1alpha1/volumegroupsnapshots.yaml @@ -2,8 +2,8 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/995" - controller-gen.kubebuilder.io/version: "v0.12.0" + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1068" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumegroupsnapshots.groupsnapshot.storage.k8s.io" spec: group: "groupsnapshot.storage.k8s.io" @@ -39,116 +39,128 @@ spec: name: "v1alpha1" schema: openAPIV3Schema: - description: "VolumeGroupSnapshot is a user's request for creating either a point-in-time group snapshot or binding to a pre-existing group snapshot." + description: "VolumeGroupSnapshot is a user's request for creating either a point-in-time\ngroup snapshot or binding to a pre-existing group snapshot." 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" spec: - description: "Spec defines the desired characteristics of a group snapshot requested by a user. Required." + description: "Spec defines the desired characteristics of a group snapshot requested by a user.\nRequired." properties: source: - description: "Source specifies where a group snapshot will be created from. This field is immutable after creation. Required." + description: "Source specifies where a group snapshot will be created from.\nThis field is immutable after creation.\nRequired." properties: selector: - description: "Selector is a label query over persistent volume claims that are to be grouped together for snapshotting. This labelSelector will be used to match the label added to a PVC. If the label is added or removed to a volume after a group snapshot is created, the existing group snapshots won't be modified. Once a VolumeGroupSnapshotContent is created and the sidecar starts to process it, the volume list will not change with retries." + description: "Selector is a label query over persistent volume claims that are to be\ngrouped together for snapshotting.\nThis labelSelector will be used to match the label added to a PVC.\nIf the label is added or removed to a volume after a group snapshot\nis created, the existing group snapshots won't be modified.\nOnce a VolumeGroupSnapshotContent is created and the sidecar starts to process\nit, the volume list will not change with retries." 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\nrelates 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.\nValid 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,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch." items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" 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\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed." type: "object" type: "object" x-kubernetes-map-type: "atomic" + x-kubernetes-validations: + - message: "selector is immutable" + rule: "self == oldSelf" volumeGroupSnapshotContentName: - description: "VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent object representing an existing volume group snapshot. This field should be set if the volume group snapshot already exists and only needs a representation in Kubernetes. This field is immutable." + description: "VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent\nobject representing an existing volume group snapshot.\nThis field should be set if the volume group snapshot already exists and\nonly needs a representation in Kubernetes.\nThis field is immutable." type: "string" + x-kubernetes-validations: + - message: "volumeGroupSnapshotContentName is immutable" + rule: "self == oldSelf" type: "object" + x-kubernetes-validations: + - message: "selector is required once set" + rule: "!has(oldSelf.selector) || has(self.selector)" + - message: "volumeGroupSnapshotContentName is required once set" + rule: "!has(oldSelf.volumeGroupSnapshotContentName) || has(self.volumeGroupSnapshotContentName)" + - message: "exactly one of selector and volumeGroupSnapshotContentName must be set" + rule: "(has(self.selector) && !has(self.volumeGroupSnapshotContentName)) || (!has(self.selector) && has(self.volumeGroupSnapshotContentName))" volumeGroupSnapshotClassName: - description: "VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass requested by the VolumeGroupSnapshot. VolumeGroupSnapshotClassName may be left nil to indicate that the default class will be used. Empty string is not allowed for this field." + description: "VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass\nrequested by the VolumeGroupSnapshot.\nVolumeGroupSnapshotClassName may be left nil to indicate that the default\nclass will be used.\nEmpty string is not allowed for this field." type: "string" + x-kubernetes-validations: + - message: "volumeGroupSnapshotClassName must not be the empty string when set" + rule: "size(self) > 0" required: - "source" type: "object" status: - description: "Status represents the current information of a group snapshot. Consumers must verify binding between VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent point to each other) before using this object." + description: "Status represents the current information of a group snapshot.\nConsumers must verify binding between VolumeGroupSnapshot and\nVolumeGroupSnapshotContent objects is successful (by validating that both\nVolumeGroupSnapshot and VolumeGroupSnapshotContent point to each other) before\nusing this object." properties: boundVolumeGroupSnapshotContentName: - description: "BoundVolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent object to which this VolumeGroupSnapshot object intends to bind to. If not specified, it indicates that the VolumeGroupSnapshot object has not been successfully bound to a VolumeGroupSnapshotContent object yet. NOTE: To avoid possible security issues, consumers must verify binding between VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent point at each other) before using this object." + description: "BoundVolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent\nobject to which this VolumeGroupSnapshot object intends to bind to.\nIf not specified, it indicates that the VolumeGroupSnapshot object has not\nbeen successfully bound to a VolumeGroupSnapshotContent object yet.\nNOTE: To avoid possible security issues, consumers must verify binding between\nVolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful\n(by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent\npoint at each other) before using this object." type: "string" creationTime: - description: "CreationTime is the timestamp when the point-in-time group snapshot is taken by the underlying storage system. If not specified, it may indicate that the creation time of the group snapshot is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command date +%s%N returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC." + description: "CreationTime is the timestamp when the point-in-time group snapshot is taken\nby the underlying storage system.\nIf not specified, it may indicate that the creation time of the group snapshot\nis unknown.\nThe format of this field is a Unix nanoseconds time encoded as an int64.\nOn Unix, the command date +%s%N returns the current time in nanoseconds\nsince 1970-01-01 00:00:00 UTC." format: "date-time" type: "string" error: - description: "Error is the last observed error during group snapshot creation, if any. This field could be helpful to upper level controllers (i.e., application controller) to decide whether they should continue on waiting for the group snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the group snapshot creation. Upon success, this error field will be cleared." + description: "Error is the last observed error during group snapshot creation, if any.\nThis field could be helpful to upper level controllers (i.e., application\ncontroller) to decide whether they should continue on waiting for the group\nsnapshot to be created based on the type of error reported.\nThe snapshot controller will keep retrying when an error occurs during the\ngroup snapshot creation. Upon success, this error field will be cleared." properties: message: - description: "message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information." + description: "message is a string detailing the encountered error during snapshot\ncreation if specified.\nNOTE: message may be logged, and it should not contain sensitive\ninformation." type: "string" time: description: "time is the timestamp when the error was encountered." format: "date-time" type: "string" type: "object" - readyToUse: - description: "ReadyToUse indicates if all the individual snapshots in the group are ready to be used to restore a group of volumes. ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. If not specified, it means the readiness of a group snapshot is unknown." - type: "boolean" - volumeSnapshotRefList: - description: "VolumeSnapshotRefList is the list of volume snapshot references for this group snapshot. The maximum number of allowed snapshots in the group is 100." + pvcVolumeSnapshotRefList: + description: "VolumeSnapshotRefList is the list of PVC and VolumeSnapshot pairs that\nis part of this group snapshot.\nThe maximum number of allowed snapshots in the group is 100." 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: "PVCVolumeSnapshotPair defines a pair of a PVC reference and a Volume Snapshot Reference" 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." - type: "string" - kind: - 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" - type: "string" - namespace: - 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" - type: "string" - uid: - description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids" - type: "string" + persistentVolumeClaimRef: + description: "PersistentVolumeClaimRef is a reference to the PVC this pair is referring to" + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" + volumeSnapshotRef: + description: "VolumeSnapshotRef is a reference to the VolumeSnapshot this pair is referring to" + properties: + name: + description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + type: "object" + x-kubernetes-map-type: "atomic" type: "object" - x-kubernetes-map-type: "atomic" type: "array" + readyToUse: + description: "ReadyToUse indicates if all the individual snapshots in the group are ready\nto be used to restore a group of volumes.\nReadyToUse becomes true when ReadyToUse of all individual snapshots become true.\nIf not specified, it means the readiness of a group snapshot is unknown." + type: "boolean" type: "object" required: - "spec" diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotclasses.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotclasses.yaml index 95aae265c..9ce6988b1 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotclasses.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotclasses.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/814" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumesnapshotclasses.snapshot.storage.k8s.io" spec: group: "snapshot.storage.k8s.io" @@ -31,29 +31,29 @@ spec: name: "v1" schema: openAPIV3Schema: - description: "VolumeSnapshotClass specifies parameters that a underlying storage system uses when creating a volume snapshot. A specific VolumeSnapshotClass is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses are non-namespaced" + description: "VolumeSnapshotClass specifies parameters that a underlying storage system uses when\ncreating a volume snapshot. A specific VolumeSnapshotClass is used by specifying its\nname in a VolumeSnapshot object.\nVolumeSnapshotClasses are non-namespaced" 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" type: "string" deletionPolicy: - description: "deletionPolicy determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted. Supported values are \"Retain\" and \"Delete\". \"Retain\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. \"Delete\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. Required." + description: "deletionPolicy determines whether a VolumeSnapshotContent created through\nthe VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted.\nSupported values are \"Retain\" and \"Delete\".\n\"Retain\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept.\n\"Delete\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted.\nRequired." enum: - "Delete" - "Retain" type: "string" driver: - description: "driver is the name of the storage driver that handles this VolumeSnapshotClass. Required." + description: "driver is the name of the storage driver that handles this VolumeSnapshotClass.\nRequired." 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" parameters: additionalProperties: type: "string" - description: "parameters is a key-value map with storage driver specific parameters for creating snapshots. These values are opaque to Kubernetes." + description: "parameters is a key-value map with storage driver specific parameters for creating snapshots.\nThese values are opaque to Kubernetes." type: "object" required: - "deletionPolicy" diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotcontents.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotcontents.yaml index 228238e3d..7cad3032c 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotcontents.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshotcontents.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/955" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumesnapshotcontents.snapshot.storage.k8s.io" spec: group: "snapshot.storage.k8s.io" @@ -52,93 +52,110 @@ spec: name: "v1" schema: openAPIV3Schema: - description: "VolumeSnapshotContent represents the actual \"on-disk\" snapshot object in the underlying storage system" + description: "VolumeSnapshotContent represents the actual \"on-disk\" snapshot object in the\nunderlying storage system" 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" spec: - description: "spec defines properties of a VolumeSnapshotContent created by the underlying storage system. Required." + description: "spec defines properties of a VolumeSnapshotContent created by the underlying storage system.\nRequired." properties: deletionPolicy: - description: "deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. Supported values are \"Retain\" and \"Delete\". \"Retain\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. \"Delete\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. For dynamically provisioned snapshots, this field will automatically be filled in by the CSI snapshotter sidecar with the \"DeletionPolicy\" field defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users MUST specify this field when creating the VolumeSnapshotContent object. Required." + description: "deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on\nthe underlying storage system should be deleted when its bound VolumeSnapshot is deleted.\nSupported values are \"Retain\" and \"Delete\".\n\"Retain\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept.\n\"Delete\" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted.\nFor dynamically provisioned snapshots, this field will automatically be filled in by the\nCSI snapshotter sidecar with the \"DeletionPolicy\" field defined in the corresponding\nVolumeSnapshotClass.\nFor pre-existing snapshots, users MUST specify this field when creating the\n VolumeSnapshotContent object.\nRequired." enum: - "Delete" - "Retain" type: "string" driver: - description: "driver is the name of the CSI driver used to create the physical snapshot on the underlying storage system. This MUST be the same as the name returned by the CSI GetPluginName() call for that driver. Required." + description: "driver is the name of the CSI driver used to create the physical snapshot on\nthe underlying storage system.\nThis MUST be the same as the name returned by the CSI GetPluginName() call for\nthat driver.\nRequired." type: "string" source: - description: "source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required." - oneOf: - - required: - - "snapshotHandle" - - required: - - "volumeHandle" + description: "source specifies whether the snapshot is (or should be) dynamically provisioned\nor already exists, and just requires a Kubernetes object representation.\nThis field is immutable after creation.\nRequired." properties: snapshotHandle: - description: "snapshotHandle specifies the CSI \"snapshot_id\" of a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable." + description: "snapshotHandle specifies the CSI \"snapshot_id\" of a pre-existing snapshot on\nthe underlying storage system for which a Kubernetes object representation\nwas (or should be) created.\nThis field is immutable." type: "string" + x-kubernetes-validations: + - message: "snapshotHandle is immutable" + rule: "self == oldSelf" volumeHandle: - description: "volumeHandle specifies the CSI \"volume_id\" of the volume from which a snapshot should be dynamically taken from. This field is immutable." + description: "volumeHandle specifies the CSI \"volume_id\" of the volume from which a snapshot\nshould be dynamically taken from.\nThis field is immutable." type: "string" + x-kubernetes-validations: + - message: "volumeHandle is immutable" + rule: "self == oldSelf" type: "object" + x-kubernetes-validations: + - message: "volumeHandle is required once set" + rule: "!has(oldSelf.volumeHandle) || has(self.volumeHandle)" + - message: "snapshotHandle is required once set" + rule: "!has(oldSelf.snapshotHandle) || has(self.snapshotHandle)" + - message: "exactly one of volumeHandle and snapshotHandle must be set" + rule: "(has(self.volumeHandle) && !has(self.snapshotHandle)) || (!has(self.volumeHandle) && has(self.snapshotHandle))" sourceVolumeMode: - description: "SourceVolumeMode is the mode of the volume whose snapshot is taken. Can be either “Filesystem” or “Block”. If not specified, it indicates the source volume's mode is unknown. This field is immutable. This field is an alpha field." + description: "SourceVolumeMode is the mode of the volume whose snapshot is taken.\nCan be either “Filesystem” or “Block”.\nIf not specified, it indicates the source volume's mode is unknown.\nThis field is immutable.\nThis field is an alpha field." type: "string" + x-kubernetes-validations: + - message: "sourceVolumeMode is immutable" + rule: "self == oldSelf" volumeSnapshotClassName: - description: "name of the VolumeSnapshotClass from which this snapshot was (or will be) created. Note that after provisioning, the VolumeSnapshotClass may be deleted or recreated with different set of values, and as such, should not be referenced post-snapshot creation." + description: "name of the VolumeSnapshotClass from which this snapshot was (or will be)\ncreated.\nNote that after provisioning, the VolumeSnapshotClass may be deleted or\nrecreated with different set of values, and as such, should not be referenced\npost-snapshot creation." type: "string" volumeSnapshotRef: - description: "volumeSnapshotRef specifies the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to this VolumeSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent object, name and namespace of the VolumeSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required." + description: "volumeSnapshotRef specifies the VolumeSnapshot object to which this\nVolumeSnapshotContent object is bound.\nVolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to\nthis VolumeSnapshotContent's name for the bidirectional binding to be valid.\nFor a pre-existing VolumeSnapshotContent object, name and namespace of the\nVolumeSnapshot object MUST be provided for binding to happen.\nThis field is immutable after creation.\nRequired." 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\nshould contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\nFor example, if the object reference is to a container within a pod, this would take on a value like:\n\"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\nthe event) or if no container name is specified \"spec.containers[2]\" (container with\nindex 2 in this pod). This syntax is chosen only to have some well-defined way of\nreferencing a part of an object.\nTODO: 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.\nMore 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.\nMore 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.\nMore 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.\nMore 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids" type: "string" type: "object" x-kubernetes-map-type: "atomic" + x-kubernetes-validations: + - message: "both spec.volumeSnapshotRef.name and spec.volumeSnapshotRef.namespace must be set" + rule: "has(self.name) && has(self.__namespace__)" required: - "deletionPolicy" - "driver" - "source" - "volumeSnapshotRef" type: "object" + x-kubernetes-validations: + - message: "sourceVolumeMode is required once set" + rule: "!has(oldSelf.sourceVolumeMode) || has(self.sourceVolumeMode)" status: description: "status represents the current information of a snapshot." properties: creationTime: - description: "creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the \"creation_time\" value returned from CSI \"CreateSnapshot\" gRPC call. For a pre-existing snapshot, this field will be filled with the \"creation_time\" value returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it. If not specified, it indicates the creation time is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command `date +%s%N` returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC." + description: "creationTime is the timestamp when the point-in-time snapshot is taken\nby the underlying storage system.\nIn dynamic snapshot creation case, this field will be filled in by the\nCSI snapshotter sidecar with the \"creation_time\" value returned from CSI\n\"CreateSnapshot\" gRPC call.\nFor a pre-existing snapshot, this field will be filled with the \"creation_time\"\nvalue returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it.\nIf not specified, it indicates the creation time is unknown.\nThe format of this field is a Unix nanoseconds time encoded as an int64.\nOn Unix, the command `date +%s%N` returns the current time in nanoseconds\nsince 1970-01-01 00:00:00 UTC." format: "int64" type: "integer" error: - description: "error is the last observed error during snapshot creation, if any. Upon success after retry, this error field will be cleared." + description: "error is the last observed error during snapshot creation, if any.\nUpon success after retry, this error field will be cleared." properties: message: - description: "message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information." + description: "message is a string detailing the encountered error during snapshot\ncreation if specified.\nNOTE: message may be logged, and it should not contain sensitive\ninformation." type: "string" time: description: "time is the timestamp when the error was encountered." @@ -146,18 +163,18 @@ spec: type: "string" type: "object" readyToUse: - description: "readyToUse indicates if a snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the \"ready_to_use\" value returned from CSI \"CreateSnapshot\" gRPC call. For a pre-existing snapshot, this field will be filled with the \"ready_to_use\" value returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it, otherwise, this field will be set to \"True\". If not specified, it means the readiness of a snapshot is unknown." + description: "readyToUse indicates if a snapshot is ready to be used to restore a volume.\nIn dynamic snapshot creation case, this field will be filled in by the\nCSI snapshotter sidecar with the \"ready_to_use\" value returned from CSI\n\"CreateSnapshot\" gRPC call.\nFor a pre-existing snapshot, this field will be filled with the \"ready_to_use\"\nvalue returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it,\notherwise, this field will be set to \"True\".\nIf not specified, it means the readiness of a snapshot is unknown." type: "boolean" restoreSize: - description: "restoreSize represents the complete size of the snapshot in bytes. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the \"size_bytes\" value returned from CSI \"CreateSnapshot\" gRPC call. For a pre-existing snapshot, this field will be filled with the \"size_bytes\" value returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown." + description: "restoreSize represents the complete size of the snapshot in bytes.\nIn dynamic snapshot creation case, this field will be filled in by the\nCSI snapshotter sidecar with the \"size_bytes\" value returned from CSI\n\"CreateSnapshot\" gRPC call.\nFor a pre-existing snapshot, this field will be filled with the \"size_bytes\"\nvalue returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it.\nWhen restoring a volume from this snapshot, the size of the volume MUST NOT\nbe smaller than the restoreSize if it is specified, otherwise the restoration will fail.\nIf not specified, it indicates that the size is unknown." format: "int64" minimum: 0.0 type: "integer" snapshotHandle: - description: "snapshotHandle is the CSI \"snapshot_id\" of a snapshot on the underlying storage system. If not specified, it indicates that dynamic snapshot creation has either failed or it is still in progress." + description: "snapshotHandle is the CSI \"snapshot_id\" of a snapshot on the underlying storage system.\nIf not specified, it indicates that dynamic snapshot creation has either failed\nor it is still in progress." type: "string" volumeGroupSnapshotHandle: - description: "VolumeGroupSnapshotHandle is the CSI \"group_snapshot_id\" of a group snapshot on the underlying storage system." + description: "VolumeGroupSnapshotHandle is the CSI \"group_snapshot_id\" of a group snapshot\non the underlying storage system." type: "string" type: "object" required: diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshots.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshots.yaml index 73985b866..2df5d4725 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshots.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1/volumesnapshots.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/814" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumesnapshots.snapshot.storage.k8s.io" spec: group: "snapshot.storage.k8s.io" @@ -51,55 +51,66 @@ spec: name: "v1" schema: openAPIV3Schema: - description: "VolumeSnapshot is a user's request for either creating a point-in-time snapshot of a persistent volume, or binding to a pre-existing snapshot." + description: "VolumeSnapshot is a user's request for either creating a point-in-time\nsnapshot of a persistent volume, or binding to a pre-existing snapshot." 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" spec: - description: "spec defines the desired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots Required." + description: "spec defines the desired characteristics of a snapshot requested by a user.\nMore info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots\nRequired." properties: source: - description: "source specifies where a snapshot will be created from. This field is immutable after creation. Required." - oneOf: - - required: - - "persistentVolumeClaimName" - - required: - - "volumeSnapshotContentName" + description: "source specifies where a snapshot will be created from.\nThis field is immutable after creation.\nRequired." properties: persistentVolumeClaimName: - description: "persistentVolumeClaimName specifies the name of the PersistentVolumeClaim object representing the volume from which a snapshot should be created. This PVC is assumed to be in the same namespace as the VolumeSnapshot object. This field should be set if the snapshot does not exists, and needs to be created. This field is immutable." + description: "persistentVolumeClaimName specifies the name of the PersistentVolumeClaim\nobject representing the volume from which a snapshot should be created.\nThis PVC is assumed to be in the same namespace as the VolumeSnapshot\nobject.\nThis field should be set if the snapshot does not exists, and needs to be\ncreated.\nThis field is immutable." type: "string" + x-kubernetes-validations: + - message: "persistentVolumeClaimName is immutable" + rule: "self == oldSelf" volumeSnapshotContentName: - description: "volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent object representing an existing volume snapshot. This field should be set if the snapshot already exists and only needs a representation in Kubernetes. This field is immutable." + description: "volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent\nobject representing an existing volume snapshot.\nThis field should be set if the snapshot already exists and only needs a representation in Kubernetes.\nThis field is immutable." type: "string" + x-kubernetes-validations: + - message: "volumeSnapshotContentName is immutable" + rule: "self == oldSelf" type: "object" + x-kubernetes-validations: + - message: "persistentVolumeClaimName is required once set" + rule: "!has(oldSelf.persistentVolumeClaimName) || has(self.persistentVolumeClaimName)" + - message: "volumeSnapshotContentName is required once set" + rule: "!has(oldSelf.volumeSnapshotContentName) || has(self.volumeSnapshotContentName)" + - message: "exactly one of volumeSnapshotContentName and persistentVolumeClaimName must be set" + rule: "(has(self.volumeSnapshotContentName) && !has(self.persistentVolumeClaimName)) || (!has(self.volumeSnapshotContentName) && has(self.persistentVolumeClaimName))" volumeSnapshotClassName: - description: "VolumeSnapshotClassName is the name of the VolumeSnapshotClass requested by the VolumeSnapshot. VolumeSnapshotClassName may be left nil to indicate that the default SnapshotClass should be used. A given cluster may have multiple default Volume SnapshotClasses: one default per CSI Driver. If a VolumeSnapshot does not specify a SnapshotClass, VolumeSnapshotSource will be checked to figure out what the associated CSI Driver is, and the default VolumeSnapshotClass associated with that CSI Driver will be used. If more than one VolumeSnapshotClass exist for a given CSI Driver and more than one have been marked as default, CreateSnapshot will fail and generate an event. Empty string is not allowed for this field." + description: "VolumeSnapshotClassName is the name of the VolumeSnapshotClass\nrequested by the VolumeSnapshot.\nVolumeSnapshotClassName may be left nil to indicate that the default\nSnapshotClass should be used.\nA given cluster may have multiple default Volume SnapshotClasses: one\ndefault per CSI Driver. If a VolumeSnapshot does not specify a SnapshotClass,\nVolumeSnapshotSource will be checked to figure out what the associated\nCSI Driver is, and the default VolumeSnapshotClass associated with that\nCSI Driver will be used. If more than one VolumeSnapshotClass exist for\na given CSI Driver and more than one have been marked as default,\nCreateSnapshot will fail and generate an event.\nEmpty string is not allowed for this field." type: "string" + x-kubernetes-validations: + - message: "volumeSnapshotClassName must not be the empty string when set" + rule: "size(self) > 0" required: - "source" type: "object" status: - description: "status represents the current information of a snapshot. Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object." + description: "status represents the current information of a snapshot.\nConsumers must verify binding between VolumeSnapshot and\nVolumeSnapshotContent objects is successful (by validating that both\nVolumeSnapshot and VolumeSnapshotContent point at each other) before\nusing this object." properties: boundVolumeSnapshotContentName: - description: "boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent object to which this VolumeSnapshot object intends to bind to. If not specified, it indicates that the VolumeSnapshot object has not been successfully bound to a VolumeSnapshotContent object yet. NOTE: To avoid possible security issues, consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object." + description: "boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent\nobject to which this VolumeSnapshot object intends to bind to.\nIf not specified, it indicates that the VolumeSnapshot object has not been\nsuccessfully bound to a VolumeSnapshotContent object yet.\nNOTE: To avoid possible security issues, consumers must verify binding between\nVolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that\nboth VolumeSnapshot and VolumeSnapshotContent point at each other) before using\nthis object." type: "string" creationTime: - description: "creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the \"creation_time\" value returned from CSI \"CreateSnapshot\" gRPC call. For a pre-existing snapshot, this field will be filled with the \"creation_time\" value returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it. If not specified, it may indicate that the creation time of the snapshot is unknown." + description: "creationTime is the timestamp when the point-in-time snapshot is taken\nby the underlying storage system.\nIn dynamic snapshot creation case, this field will be filled in by the\nsnapshot controller with the \"creation_time\" value returned from CSI\n\"CreateSnapshot\" gRPC call.\nFor a pre-existing snapshot, this field will be filled with the \"creation_time\"\nvalue returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it.\nIf not specified, it may indicate that the creation time of the snapshot is unknown." format: "date-time" type: "string" error: - description: "error is the last observed error during snapshot creation, if any. This field could be helpful to upper level controllers(i.e., application controller) to decide whether they should continue on waiting for the snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the snapshot creation. Upon success, this error field will be cleared." + description: "error is the last observed error during snapshot creation, if any.\nThis field could be helpful to upper level controllers(i.e., application controller)\nto decide whether they should continue on waiting for the snapshot to be created\nbased on the type of error reported.\nThe snapshot controller will keep retrying when an error occurs during the\nsnapshot creation. Upon success, this error field will be cleared." properties: message: - description: "message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information." + description: "message is a string detailing the encountered error during snapshot\ncreation if specified.\nNOTE: message may be logged, and it should not contain sensitive\ninformation." type: "string" time: description: "time is the timestamp when the error was encountered." @@ -107,15 +118,15 @@ spec: type: "string" type: "object" readyToUse: - description: "readyToUse indicates if the snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the \"ready_to_use\" value returned from CSI \"CreateSnapshot\" gRPC call. For a pre-existing snapshot, this field will be filled with the \"ready_to_use\" value returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it, otherwise, this field will be set to \"True\". If not specified, it means the readiness of a snapshot is unknown." + description: "readyToUse indicates if the snapshot is ready to be used to restore a volume.\nIn dynamic snapshot creation case, this field will be filled in by the\nsnapshot controller with the \"ready_to_use\" value returned from CSI\n\"CreateSnapshot\" gRPC call.\nFor a pre-existing snapshot, this field will be filled with the \"ready_to_use\"\nvalue returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it,\notherwise, this field will be set to \"True\".\nIf not specified, it means the readiness of a snapshot is unknown." type: "boolean" restoreSize: - description: "restoreSize represents the minimum size of volume required to create a volume from this snapshot. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the \"size_bytes\" value returned from CSI \"CreateSnapshot\" gRPC call. For a pre-existing snapshot, this field will be filled with the \"size_bytes\" value returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown." + description: "restoreSize represents the minimum size of volume required to create a volume\nfrom this snapshot.\nIn dynamic snapshot creation case, this field will be filled in by the\nsnapshot controller with the \"size_bytes\" value returned from CSI\n\"CreateSnapshot\" gRPC call.\nFor a pre-existing snapshot, this field will be filled with the \"size_bytes\"\nvalue returned from the CSI \"ListSnapshots\" gRPC call if the driver supports it.\nWhen restoring a volume from this snapshot, the size of the volume MUST NOT\nbe smaller than the restoreSize if it is specified, otherwise the restoration will fail.\nIf not specified, it indicates that the size is unknown." pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" type: "string" x-kubernetes-int-or-string: true volumeGroupSnapshotName: - description: "VolumeGroupSnapshotName is the name of the VolumeGroupSnapshot of which this VolumeSnapshot is a part of." + description: "VolumeGroupSnapshotName is the name of the VolumeGroupSnapshot of which this\nVolumeSnapshot is a part of." type: "string" type: "object" required: diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotclasses.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotclasses.yaml index 586a22d68..1d54f9ca5 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotclasses.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotclasses.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/814" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumesnapshotclasses.snapshot.storage.k8s.io" spec: group: "snapshot.storage.k8s.io" diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotcontents.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotcontents.yaml index 5478d60bf..35a651067 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotcontents.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshotcontents.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/955" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumesnapshotcontents.snapshot.storage.k8s.io" spec: group: "snapshot.storage.k8s.io" diff --git a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshots.yaml b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshots.yaml index d21357665..0fc021a0d 100644 --- a/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshots.yaml +++ b/crd-catalog/kubernetes-csi/external-snapshotter/snapshot.storage.k8s.io/v1beta1/volumesnapshots.yaml @@ -3,7 +3,7 @@ kind: "CustomResourceDefinition" metadata: annotations: api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/814" - controller-gen.kubebuilder.io/version: "v0.12.0" + controller-gen.kubebuilder.io/version: "v0.15.0" name: "volumesnapshots.snapshot.storage.k8s.io" spec: group: "snapshot.storage.k8s.io" diff --git a/crd-catalog/kubernetes-sigs/aws-load-balancer-controller/elbv2.k8s.aws/v1beta1/ingressclassparams.yaml b/crd-catalog/kubernetes-sigs/aws-load-balancer-controller/elbv2.k8s.aws/v1beta1/ingressclassparams.yaml index 4d0f8e843..7e20eac68 100644 --- a/crd-catalog/kubernetes-sigs/aws-load-balancer-controller/elbv2.k8s.aws/v1beta1/ingressclassparams.yaml +++ b/crd-catalog/kubernetes-sigs/aws-load-balancer-controller/elbv2.k8s.aws/v1beta1/ingressclassparams.yaml @@ -45,8 +45,8 @@ spec: spec: description: "IngressClassParamsSpec defines the desired state of IngressClassParams" properties: - certficateArn: - description: "CertificateARN specifies the ARN of the certificates for all Ingresses that belong to IngressClass with this IngressClassParams." + certificateArn: + description: "CertificateArn specifies the ARN of the certificates for all Ingresses that belong to IngressClass with this IngressClassParams." items: type: "string" type: "array" @@ -69,6 +69,7 @@ spec: enum: - "ipv4" - "dualstack" + - "dualstack-without-public-ipv4" type: "string" loadBalancerAttributes: description: "LoadBalancerAttributes define the custom attributes to LoadBalancers for all Ingress that that belong to IngressClass with this IngressClassParams." 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 5a289a50c..c3170bfba 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 @@ -71,7 +71,8 @@ spec: description: "AddressRef is a reference to the address that was created for this claim." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" 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 62ce981f9..c487122ad 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 @@ -55,7 +55,8 @@ spec: description: "ClaimRef is a reference to the claim this IPAddress was created for." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" 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 ebd98dede..ef4ab8066 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 @@ -74,7 +74,8 @@ spec: description: "AddressRef is a reference to the address that was created for this claim." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" 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 5d2954a1e..d6b311b7a 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 @@ -55,7 +55,8 @@ spec: description: "ClaimRef is a reference to the claim this IPAddress was created for." properties: name: - description: "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + default: "" + description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896." type: "string" type: "object" x-kubernetes-map-type: "atomic" diff --git a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testtriggers.yaml b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testtriggers.yaml index 946cdf40a..eb95b17be 100644 --- a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testtriggers.yaml +++ b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testtriggers.yaml @@ -107,6 +107,24 @@ spec: - "deployment-image-update" - "deployment-env-update" - "deployment-containers-modified" + - "event-start-test" + - "event-end-test-success" + - "event-end-test-failed" + - "event-end-test-aborted" + - "event-end-test-timeout" + - "event-start-testsuite" + - "event-end-testsuite-success" + - "event-end-testsuite-failed" + - "event-end-testsuite-aborted" + - "event-end-testsuite-timeout" + - "event-queue-testworkflow" + - "event-start-testworkflow" + - "event-end-testworkflow-success" + - "event-end-testworkflow-failed" + - "event-end-testworkflow-aborted" + - "event-created" + - "event-updated" + - "event-deleted" type: "string" execution: description: "Execution identifies for which test execution should an Action be executed" diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml index 519186603..6d2fcead2 100644 --- a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml @@ -112,6 +112,9 @@ spec: preserveClusterCpuModel: description: "Preserve the CPU model and flags the VM runs with in its oVirt cluster." type: "boolean" + preserveStaticIPs: + description: "Preserve static IPs of VMs in vSphere (Windows only)" + type: "boolean" provider: description: "Providers." properties: diff --git a/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/configurations.yaml b/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/configurations.yaml index 930f5b7ce..c53553f9c 100644 --- a/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/configurations.yaml +++ b/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/configurations.yaml @@ -66,6 +66,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" entrypoint: description: "Entrypoint is the command entry point to run." type: "string" @@ -139,6 +154,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" expect: description: "Expect defines a list of matched checks to validate the operation outcome." items: @@ -198,6 +228,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" kind: description: "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" @@ -229,6 +274,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -255,6 +315,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -284,6 +359,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" container: description: "Container in pod to get logs from else --all-containers is used." type: "string" @@ -330,6 +420,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" content: description: "Content defines a shell script (run with \"sh -c ...\")." type: "string" @@ -396,6 +501,21 @@ spec: cluster: description: "Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" for: description: "For specifies the condition to wait for." properties: diff --git a/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/tests.yaml b/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/tests.yaml index fbd6e20bc..a443dc04b 100644 --- a/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/tests.yaml +++ b/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha1/tests.yaml @@ -83,6 +83,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" entrypoint: description: "Entrypoint is the command entry point to run." type: "string" @@ -156,6 +171,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" expect: description: "Expect defines a list of matched checks to validate the operation outcome." items: @@ -215,6 +245,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" kind: description: "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" @@ -246,6 +291,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -272,6 +332,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -301,6 +376,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" container: description: "Container in pod to get logs from else --all-containers is used." type: "string" @@ -347,6 +437,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" content: description: "Content defines a shell script (run with \"sh -c ...\")." type: "string" @@ -413,6 +518,21 @@ spec: cluster: description: "Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" for: description: "For specifies the condition to wait for." properties: @@ -475,6 +595,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" concurrent: description: "Concurrent determines whether the test should run concurrently with other tests." type: "boolean" @@ -559,6 +694,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" entrypoint: description: "Entrypoint is the command entry point to run." type: "string" @@ -632,6 +782,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" expect: description: "Expect defines a list of matched checks to validate the operation outcome." items: @@ -691,6 +856,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" kind: description: "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" @@ -722,6 +902,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -748,6 +943,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -777,6 +987,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" container: description: "Container in pod to get logs from else --all-containers is used." type: "string" @@ -823,6 +1048,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" content: description: "Content defines a shell script (run with \"sh -c ...\")." type: "string" @@ -889,6 +1129,21 @@ spec: cluster: description: "Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" for: description: "For specifies the condition to wait for." properties: @@ -951,6 +1206,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" description: description: "Description contains a description of the test step." type: "string" @@ -991,6 +1261,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" entrypoint: description: "Entrypoint is the command entry point to run." type: "string" @@ -1064,6 +1349,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" expect: description: "Expect defines a list of matched checks to validate the operation outcome." items: @@ -1123,6 +1423,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" kind: description: "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" @@ -1154,6 +1469,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -1180,6 +1510,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -1209,6 +1554,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" container: description: "Container in pod to get logs from else --all-containers is used." type: "string" @@ -1255,6 +1615,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" content: description: "Content defines a shell script (run with \"sh -c ...\")." type: "string" @@ -1321,6 +1696,21 @@ spec: cluster: description: "Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" for: description: "For specifies the condition to wait for." properties: @@ -1439,6 +1829,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" dryRun: description: "DryRun determines whether the file should be applied in dry run mode." type: "boolean" @@ -1518,6 +1923,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" file: description: "File is the path to the referenced file. This can be a direct path to a file\nor an expression that matches multiple files, such as \"manifest/*.yaml\" for all YAML\nfiles within the \"manifest\" directory." type: "string" @@ -1564,6 +1984,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" entrypoint: description: "Entrypoint is the command entry point to run." type: "string" @@ -1640,6 +2075,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" dryRun: description: "DryRun determines whether the file should be applied in dry run mode." type: "boolean" @@ -1719,6 +2169,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" expect: description: "Expect defines a list of matched checks to validate the operation outcome." items: @@ -1795,6 +2260,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" file: description: "File is the path to the referenced file. This can be a direct path to a file\nor an expression that matches multiple files, such as \"manifest/*.yaml\" for all YAML\nfiles within the \"manifest\" directory." type: "string" @@ -1832,6 +2312,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" dryRun: description: "DryRun determines whether the file should be applied in dry run mode." type: "boolean" @@ -1915,6 +2410,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" content: description: "Content defines a shell script (run with \"sh -c ...\")." type: "string" @@ -1995,6 +2505,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" dryRun: description: "DryRun determines whether the file should be applied in dry run mode." type: "boolean" @@ -2060,6 +2585,21 @@ spec: cluster: description: "Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" for: description: "For specifies the condition to wait for." properties: diff --git a/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha2/configurations.yaml b/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha2/configurations.yaml index 83f86fcb7..417bfccf4 100644 --- a/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha2/configurations.yaml +++ b/crd-catalog/kyverno/chainsaw/chainsaw.kyverno.io/v1alpha2/configurations.yaml @@ -66,6 +66,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" entrypoint: description: "Entrypoint is the command entry point to run." type: "string" @@ -139,6 +154,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" expect: description: "Expect defines a list of matched checks to validate the operation outcome." items: @@ -198,6 +228,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" kind: description: "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" @@ -229,6 +274,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -255,6 +315,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" format: description: "Format determines the output format (json or yaml)." pattern: "^(?:json|yaml|\\(.+\\))$" @@ -284,6 +359,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" container: description: "Container in pod to get logs from else --all-containers is used." type: "string" @@ -330,6 +420,21 @@ spec: cluster: description: "Cluster defines the target cluster (default cluster will be used if not specified and/or overridden)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" content: description: "Content defines a shell script (run with \"sh -c ...\")." type: "string" @@ -396,6 +501,21 @@ spec: cluster: description: "Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified)." type: "string" + clusters: + additionalProperties: + description: "Cluster defines cluster config and context." + properties: + context: + description: "Context is the name of the context to use." + type: "string" + kubeconfig: + description: "Kubeconfig is the path to the referenced file." + type: "string" + required: + - "kubeconfig" + type: "object" + description: "Clusters holds a registry to clusters to support multi-cluster tests." + type: "object" for: description: "For specifies the condition to wait for." properties: diff --git a/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/nodes.yaml b/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/nodes.yaml index 81efb8b2a..0a9ec594e 100644 --- a/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/nodes.yaml +++ b/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/nodes.yaml @@ -176,6 +176,8 @@ spec: type: "string" filesystemType: type: "string" + instanceManagerName: + type: "string" scheduledReplica: additionalProperties: format: "int64" diff --git a/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/settings.yaml b/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/settings.yaml index c0d9fdc18..3f2a712ce 100644 --- a/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/settings.yaml +++ b/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/settings.yaml @@ -26,6 +26,10 @@ spec: jsonPath: ".value" name: "Value" type: "string" + - description: "The setting is applied" + jsonPath: ".status.applied" + name: "Applied" + type: "boolean" - jsonPath: ".metadata.creationTimestamp" name: "Age" type: "date" @@ -42,6 +46,15 @@ spec: type: "string" metadata: type: "object" + status: + description: "SettingStatus defines the observed state of the Longhorn setting" + properties: + applied: + description: "The setting is applied." + type: "boolean" + required: + - "applied" + type: "object" value: description: "The value of the setting." type: "string" diff --git a/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/databases.yaml b/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/databases.yaml index f153a2bbd..5fb8fd48d 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/databases.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/databases.yaml @@ -59,7 +59,7 @@ spec: type: "string" collate: default: "utf8_general_ci" - description: "CharacterSet to use in the Database." + description: "Collate to use in the Database." type: "string" mariaDbRef: description: "MariaDBRef is a reference to a MariaDB object." diff --git a/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/mariadbs.yaml b/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/mariadbs.yaml index 12820d083..25ec7bde2 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/mariadbs.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/k8s.mariadb.com/v1alpha1/mariadbs.yaml @@ -5303,7 +5303,7 @@ spec: type: "string" type: "object" image: - description: "Image name to be used by the MaxScale instances. The supported format is `:`.\nOnly MaxScale official images are supported." + description: "Image name to be used by the MaxScale instances. The supported format is `:`.\nOnly MariaDB official images are supported." type: "string" imagePullPolicy: description: "ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`." @@ -12053,7 +12053,7 @@ spec: description: "NodeSelector to be used in the Pod." type: "object" passwordSecretKeyRef: - description: "PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret." + description: "PasswordSecretKeyRef is a Secret reference to the password of the initial user created on bootstrap." properties: generate: default: false @@ -12417,7 +12417,7 @@ spec: format: "int32" type: "integer" replication: - description: "Replication configures high availability via replication." + description: "Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA." properties: enabled: description: "Enabled is a flag to enable Replication." @@ -12522,7 +12522,7 @@ spec: type: "object" type: "object" rootEmptyPassword: - description: "RootEmptyPassword indicates if the root password should be empty." + description: "RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments." type: "boolean" rootPasswordSecretKeyRef: description: "RootPasswordSecretKeyRef is a reference to a Secret key containing the root password." @@ -13549,7 +13549,7 @@ spec: type: "string" type: "object" username: - description: "Username is the username of the user to be created on bootstrap." + description: "Username is the username of the initial user created on bootstrap." type: "string" volumeMounts: description: "VolumeMounts to be used in the Container." diff --git a/crd-catalog/minio/operator/minio.min.io/v2/tenants.yaml b/crd-catalog/minio/operator/minio.min.io/v2/tenants.yaml index 173d1c567..04dde45ee 100644 --- a/crd-catalog/minio/operator/minio.min.io/v2/tenants.yaml +++ b/crd-catalog/minio/operator/minio.min.io/v2/tenants.yaml @@ -2,8 +2,8 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" - operator.min.io/version: "v5.0.14" + controller-gen.kubebuilder.io/version: "v0.15.0" + operator.min.io/version: "v5.0.15" name: "tenants.minio.min.io" spec: group: "minio.min.io" @@ -20,6 +20,9 @@ spec: - jsonPath: ".status.currentState" name: "State" type: "string" + - jsonPath: ".status.healthStatus" + name: "Health" + type: "string" - jsonPath: ".metadata.creationTimestamp" name: "Age" type: "date" @@ -2416,6 +2419,14 @@ spec: required: - "port" type: "object" + sleep: + properties: + seconds: + format: "int64" + type: "integer" + required: + - "seconds" + type: "object" tcpSocket: properties: host: @@ -2466,6 +2477,14 @@ spec: required: - "port" type: "object" + sleep: + properties: + seconds: + format: "int64" + type: "integer" + required: + - "seconds" + type: "object" tcpSocket: properties: host: diff --git a/crd-catalog/minio/operator/sts.min.io/v1alpha1/policybindings.yaml b/crd-catalog/minio/operator/sts.min.io/v1alpha1/policybindings.yaml index 53bc587a1..16e7dea52 100644 --- a/crd-catalog/minio/operator/sts.min.io/v1alpha1/policybindings.yaml +++ b/crd-catalog/minio/operator/sts.min.io/v1alpha1/policybindings.yaml @@ -2,8 +2,8 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.14.0" - operator.min.io/version: "v5.0.14" + controller-gen.kubebuilder.io/version: "v0.15.0" + operator.min.io/version: "v5.0.15" name: "policybindings.sts.min.io" spec: group: "sts.min.io" @@ -70,6 +70,6 @@ spec: type: "object" type: "object" served: true - storage: true + storage: false subresources: status: {} diff --git a/crd-catalog/minio/operator/sts.min.io/v1beta1/policybindings.yaml b/crd-catalog/minio/operator/sts.min.io/v1beta1/policybindings.yaml new file mode 100644 index 000000000..14461d58f --- /dev/null +++ b/crd-catalog/minio/operator/sts.min.io/v1beta1/policybindings.yaml @@ -0,0 +1,75 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.15.0" + operator.min.io/version: "v5.0.15" + name: "policybindings.sts.min.io" +spec: + group: "sts.min.io" + names: + kind: "PolicyBinding" + listKind: "PolicyBindingList" + plural: "policybindings" + shortNames: + - "policybinding" + singular: "policybinding" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.currentState" + name: "State" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "Age" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + type: "string" + kind: + type: "string" + metadata: + type: "object" + spec: + properties: + application: + properties: + namespace: + type: "string" + serviceaccount: + type: "string" + required: + - "namespace" + - "serviceaccount" + type: "object" + policies: + items: + type: "string" + type: "array" + required: + - "application" + - "policies" + type: "object" + status: + properties: + currentState: + type: "string" + usage: + nullable: true + properties: + authotizations: + format: "int64" + type: "integer" + type: "object" + required: + - "currentState" + - "usage" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml index a06167069..c14a992aa 100644 --- a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml +++ b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml @@ -77,7 +77,7 @@ spec: type: "string" type: "array" features: - description: "List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
\n- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting\nthe kernel debug filesystem, so the eBPF pod has to run as privileged.\nIf the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
\n- `DNSTracking`: enable the DNS tracking feature.
\n- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
" + description: "List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
\n- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting\nthe kernel debug filesystem, so the eBPF pod has to run as privileged.\nIf the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
\n- `DNSTracking`: enable the DNS tracking feature.
\n- `FlowRTT`: enable flow latency (sRTT) extraction in the eBPF agent from TCP traffic.
" items: description: "Agent feature, can be one of:
\n- `PacketDrop`, to track packet drops.
\n- `DNSTracking`, to track specific information on DNS traffic.
\n- `FlowRTT`, to track TCP latency. [Unsupported (*)].
" enum: @@ -177,9 +177,9 @@ spec: description: "`metrics` defines the eBPF agent configuration regarding metrics" properties: disableAlerts: - description: "`disableAlerts` is a list of alerts that should be disabled.\nPossible values are:
\n`NetObservDroppedFlows`, which is triggered when eBPF agent hashmap table is full.
" + description: "`disableAlerts` is a list of alerts that should be disabled.\nPossible values are:
\n`NetObservDroppedFlows`, which is triggered when the eBPF agent is dropping flows, such as when the BPF hashmap is full or the capacity limiter being triggered.
" items: - description: "Name of a ebpf agent alert.\nPossible values are:
\n- `NetObservDroppedFlows`, which is triggered when eBPF agent hashmap table is full.
" + description: "Name of an eBPF agent alert.\nPossible values are:
\n`NetObservDroppedFlows`, which is triggered when the eBPF agent is dropping flows, such as when the BPF hashmap is full or the capacity limiter being triggered.
" enum: - "NetObservDroppedFlows" type: "string" diff --git a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml index be208a1aa..821069e52 100644 --- a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml +++ b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml @@ -632,7 +632,7 @@ spec: type: "string" type: "array" features: - description: "List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
\n- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting\nthe kernel debug filesystem, so the eBPF pod has to run as privileged.\nIf the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
\n- `DNSTracking`: enable the DNS tracking feature.
\n- `FlowRTT`: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
" + description: "List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
\n- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting\nthe kernel debug filesystem, so the eBPF pod has to run as privileged.\nIf the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
\n- `DNSTracking`: enable the DNS tracking feature.
\n- `FlowRTT`: enable flow latency (sRTT) extraction in the eBPF agent from TCP traffic.
" items: description: "Agent feature, can be one of:
\n- `PacketDrop`, to track packet drops.
\n- `DNSTracking`, to track specific information on DNS traffic.
\n- `FlowRTT`, to track TCP latency.
" enum: @@ -732,9 +732,9 @@ spec: description: "`metrics` defines the eBPF agent configuration regarding metrics" properties: disableAlerts: - description: "`disableAlerts` is a list of alerts that should be disabled.\nPossible values are:
\n`NetObservDroppedFlows`, which is triggered when eBPF agent hashmap table is full.
" + description: "`disableAlerts` is a list of alerts that should be disabled.\nPossible values are:
\n`NetObservDroppedFlows`, which is triggered when the eBPF agent is dropping flows, such as when the BPF hashmap is full or the capacity limiter being triggered.
" items: - description: "Name of a ebpf agent alert.\nPossible values are:
\n- `NetObservDroppedFlows`, which is triggered when eBPF agent hashmap table is full.
" + description: "Name of an eBPF agent alert.\nPossible values are:
\n`NetObservDroppedFlows`, which is triggered when the eBPF agent is dropping flows, such as when the BPF hashmap is full or the capacity limiter being triggered.
" enum: - "NetObservDroppedFlows" type: "string" diff --git a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/clientsettingspolicies.yaml b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/clientsettingspolicies.yaml index 7dfb57457..b3ed28965 100644 --- a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/clientsettingspolicies.yaml +++ b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/clientsettingspolicies.yaml @@ -95,12 +95,6 @@ spec: maxLength: 253 minLength: 1 type: "string" - namespace: - description: "Namespace is the namespace of the referent. When unspecified, the local\nnamespace is inferred. Even when policy targets a resource in a different\nnamespace, it MUST only apply to traffic originating from the same\nnamespace as the policy." - maxLength: 63 - minLength: 1 - pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" - type: "string" required: - "group" - "kind" @@ -128,7 +122,7 @@ spec: type: "string" kind: default: "Gateway" - description: "Kind is kind of the referent.\n\n\nThere are two kinds of parent resources with \"Core\" support:\n\n\n* Gateway (Gateway conformance profile)\n* Service (Mesh conformance profile, experimental, ClusterIP Services only)\n\n\nSupport for other resources is Implementation-Specific." + description: "Kind is kind of the referent.\n\n\nThere are two kinds of parent resources with \"Core\" support:\n\n\n* Gateway (Gateway conformance profile)\n* Service (Mesh conformance profile, ClusterIP Services only)\n\n\nSupport for other resources is Implementation-Specific." maxLength: 63 minLength: 1 pattern: "^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$" @@ -145,13 +139,13 @@ spec: pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" type: "string" port: - description: "Port is the network port this Route targets. It can be interpreted\ndifferently based on the type of parent resource.\n\n\nWhen the parent resource is a Gateway, this targets all listeners\nlistening on the specified port that also support this kind of Route(and\nselect this Route). It's not recommended to set `Port` unless the\nnetworking behaviors specified in a Route must apply to a specific port\nas opposed to a listener(s) whose port(s) may be changed. When both Port\nand SectionName are specified, the name and port of the selected listener\nmust match both specified values.\n\n\n\nWhen the parent resource is a Service, this targets a specific port in the\nService spec. When both Port (experimental) and SectionName are specified,\nthe name and port of the selected port must match both specified values.\n\n\n\nImplementations MAY choose to support other parent resources.\nImplementations supporting other types of parent resources MUST clearly\ndocument how/if Port is interpreted.\n\n\nFor the purpose of status, an attachment is considered successful as\nlong as the parent resource accepts it partially. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment\nfrom the referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route,\nthe Route MUST be considered detached from the Gateway.\n\n\nSupport: Extended\n\n\n" + description: "Port is the network port this Route targets. It can be interpreted\ndifferently based on the type of parent resource.\n\n\nWhen the parent resource is a Gateway, this targets all listeners\nlistening on the specified port that also support this kind of Route(and\nselect this Route). It's not recommended to set `Port` unless the\nnetworking behaviors specified in a Route must apply to a specific port\nas opposed to a listener(s) whose port(s) may be changed. When both Port\nand SectionName are specified, the name and port of the selected listener\nmust match both specified values.\n\n\n\nWhen the parent resource is a Service, this targets a specific port in the\nService spec. When both Port (experimental) and SectionName are specified,\nthe name and port of the selected port must match both specified values.\n\n\n\nImplementations MAY choose to support other parent resources.\nImplementations supporting other types of parent resources MUST clearly\ndocument how/if Port is interpreted.\n\n\nFor the purpose of status, an attachment is considered successful as\nlong as the parent resource accepts it partially. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment\nfrom the referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route,\nthe Route MUST be considered detached from the Gateway.\n\n\nSupport: Extended" format: "int32" maximum: 65535.0 minimum: 1.0 type: "integer" sectionName: - description: "SectionName is the name of a section within the target resource. In the\nfollowing resources, SectionName is interpreted as the following:\n\n\n* Gateway: Listener Name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values.\n* Service: Port Name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values. Note that attaching Routes to Services as Parents\nis part of experimental Mesh support and is not supported for any other\npurpose.\n\n\nImplementations MAY choose to support attaching Routes to other resources.\nIf that is the case, they MUST clearly document how SectionName is\ninterpreted.\n\n\nWhen unspecified (empty string), this will reference the entire resource.\nFor the purpose of status, an attachment is considered successful if at\nleast one section in the parent resource accepts it. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment from\nthe referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route, the\nRoute MUST be considered detached from the Gateway.\n\n\nSupport: Core" + description: "SectionName is the name of a section within the target resource. In the\nfollowing resources, SectionName is interpreted as the following:\n\n\n* Gateway: Listener name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values.\n* Service: Port name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values.\n\n\nImplementations MAY choose to support attaching Routes to other resources.\nIf that is the case, they MUST clearly document how SectionName is\ninterpreted.\n\n\nWhen unspecified (empty string), this will reference the entire resource.\nFor the purpose of status, an attachment is considered successful if at\nleast one section in the parent resource accepts it. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment from\nthe referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route, the\nRoute MUST be considered detached from the Gateway.\n\n\nSupport: Core" maxLength: 253 minLength: 1 pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" diff --git a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxproxies.yaml b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxproxies.yaml index ff9954820..11a0b1bc0 100644 --- a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxproxies.yaml +++ b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxproxies.yaml @@ -35,6 +35,9 @@ spec: spec: description: "Spec defines the desired state of the NginxProxy." properties: + disableHTTP2: + description: "DisableHTTP2 defines if http2 should be disabled for all servers.\nDefault is false, meaning http2 will be enabled for all servers." + type: "boolean" telemetry: description: "Telemetry specifies the OpenTelemetry configuration." properties: diff --git a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/observabilitypolicies.yaml b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/observabilitypolicies.yaml index ecbf62b2c..8a7328195 100644 --- a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/observabilitypolicies.yaml +++ b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/observabilitypolicies.yaml @@ -56,12 +56,6 @@ spec: maxLength: 253 minLength: 1 type: "string" - namespace: - description: "Namespace is the namespace of the referent. When unspecified, the local\nnamespace is inferred. Even when policy targets a resource in a different\nnamespace, it MUST only apply to traffic originating from the same\nnamespace as the policy." - maxLength: 63 - minLength: 1 - pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" - type: "string" required: - "group" - "kind" @@ -150,7 +144,7 @@ spec: type: "string" kind: default: "Gateway" - description: "Kind is kind of the referent.\n\n\nThere are two kinds of parent resources with \"Core\" support:\n\n\n* Gateway (Gateway conformance profile)\n* Service (Mesh conformance profile, experimental, ClusterIP Services only)\n\n\nSupport for other resources is Implementation-Specific." + description: "Kind is kind of the referent.\n\n\nThere are two kinds of parent resources with \"Core\" support:\n\n\n* Gateway (Gateway conformance profile)\n* Service (Mesh conformance profile, ClusterIP Services only)\n\n\nSupport for other resources is Implementation-Specific." maxLength: 63 minLength: 1 pattern: "^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$" @@ -167,13 +161,13 @@ spec: pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" type: "string" port: - description: "Port is the network port this Route targets. It can be interpreted\ndifferently based on the type of parent resource.\n\n\nWhen the parent resource is a Gateway, this targets all listeners\nlistening on the specified port that also support this kind of Route(and\nselect this Route). It's not recommended to set `Port` unless the\nnetworking behaviors specified in a Route must apply to a specific port\nas opposed to a listener(s) whose port(s) may be changed. When both Port\nand SectionName are specified, the name and port of the selected listener\nmust match both specified values.\n\n\n\nWhen the parent resource is a Service, this targets a specific port in the\nService spec. When both Port (experimental) and SectionName are specified,\nthe name and port of the selected port must match both specified values.\n\n\n\nImplementations MAY choose to support other parent resources.\nImplementations supporting other types of parent resources MUST clearly\ndocument how/if Port is interpreted.\n\n\nFor the purpose of status, an attachment is considered successful as\nlong as the parent resource accepts it partially. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment\nfrom the referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route,\nthe Route MUST be considered detached from the Gateway.\n\n\nSupport: Extended\n\n\n" + description: "Port is the network port this Route targets. It can be interpreted\ndifferently based on the type of parent resource.\n\n\nWhen the parent resource is a Gateway, this targets all listeners\nlistening on the specified port that also support this kind of Route(and\nselect this Route). It's not recommended to set `Port` unless the\nnetworking behaviors specified in a Route must apply to a specific port\nas opposed to a listener(s) whose port(s) may be changed. When both Port\nand SectionName are specified, the name and port of the selected listener\nmust match both specified values.\n\n\n\nWhen the parent resource is a Service, this targets a specific port in the\nService spec. When both Port (experimental) and SectionName are specified,\nthe name and port of the selected port must match both specified values.\n\n\n\nImplementations MAY choose to support other parent resources.\nImplementations supporting other types of parent resources MUST clearly\ndocument how/if Port is interpreted.\n\n\nFor the purpose of status, an attachment is considered successful as\nlong as the parent resource accepts it partially. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment\nfrom the referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route,\nthe Route MUST be considered detached from the Gateway.\n\n\nSupport: Extended" format: "int32" maximum: 65535.0 minimum: 1.0 type: "integer" sectionName: - description: "SectionName is the name of a section within the target resource. In the\nfollowing resources, SectionName is interpreted as the following:\n\n\n* Gateway: Listener Name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values.\n* Service: Port Name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values. Note that attaching Routes to Services as Parents\nis part of experimental Mesh support and is not supported for any other\npurpose.\n\n\nImplementations MAY choose to support attaching Routes to other resources.\nIf that is the case, they MUST clearly document how SectionName is\ninterpreted.\n\n\nWhen unspecified (empty string), this will reference the entire resource.\nFor the purpose of status, an attachment is considered successful if at\nleast one section in the parent resource accepts it. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment from\nthe referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route, the\nRoute MUST be considered detached from the Gateway.\n\n\nSupport: Core" + description: "SectionName is the name of a section within the target resource. In the\nfollowing resources, SectionName is interpreted as the following:\n\n\n* Gateway: Listener name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values.\n* Service: Port name. When both Port (experimental) and SectionName\nare specified, the name and port of the selected listener must match\nboth specified values.\n\n\nImplementations MAY choose to support attaching Routes to other resources.\nIf that is the case, they MUST clearly document how SectionName is\ninterpreted.\n\n\nWhen unspecified (empty string), this will reference the entire resource.\nFor the purpose of status, an attachment is considered successful if at\nleast one section in the parent resource accepts it. For example, Gateway\nlisteners can restrict which Routes can attach to them by Route kind,\nnamespace, or hostname. If 1 of 2 Gateway listeners accept attachment from\nthe referencing Route, the Route MUST be considered successfully\nattached. If no Gateway listeners accept attachment from this Route, the\nRoute MUST be considered detached from the Gateway.\n\n\nSupport: Core" maxLength: 253 minLength: 1 pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" diff --git a/crd-catalog/open-cluster-management-io/ocm/operator.open-cluster-management.io/v1/klusterlets.yaml b/crd-catalog/open-cluster-management-io/ocm/operator.open-cluster-management.io/v1/klusterlets.yaml index 7fe49ec46..020472693 100644 --- a/crd-catalog/open-cluster-management-io/ocm/operator.open-cluster-management.io/v1/klusterlets.yaml +++ b/crd-catalog/open-cluster-management-io/ocm/operator.open-cluster-management.io/v1/klusterlets.yaml @@ -74,7 +74,7 @@ spec: type: "string" namespace: description: "Namespace is the namespace to deploy the agent on the managed cluster. The namespace must have a prefix of \"open-cluster-management-\", and if it is not set, the namespace of \"open-cluster-management-agent\" is used to deploy agent. In addition, the add-ons are deployed to the namespace of \"{Namespace}-addon\". In the Hosted mode, this namespace still exists on the managed cluster to contain necessary resources, like service accounts, roles and rolebindings, while the agent is deployed to the namespace with the same name as klusterlet on the management cluster." - maxLength: 63 + maxLength: 57 pattern: "^open-cluster-management-[-a-z0-9]*[a-z0-9]$" type: "string" nodePlacement: @@ -233,6 +233,10 @@ spec: workConfiguration: description: "WorkConfiguration contains the configuration of work" properties: + appliedManifestWorkEvictionGracePeriod: + description: "AppliedManifestWorkEvictionGracePeriod is the eviction grace period the work agent will wait before evicting the AppliedManifestWorks, whose corresponding ManifestWorks are missing on the hub cluster, from the managed cluster. If not present, the default value of the work agent will be used." + pattern: "^([0-9]+(s|m|h))+$" + type: "string" featureGates: description: "FeatureGates represents the list of feature gates for work If it is set empty, default feature gates will be used. If it is set, featuregate/Foo is an example of one item in FeatureGates: 1. If featuregate/Foo does not exist, registration-operator will discard it 2. If featuregate/Foo exists and is false by default. It is now possible to set featuregate/Foo=[false|true] 3. If featuregate/Foo exists and is true by default. If a cluster-admin upgrading from 1 to 2 wants to continue having featuregate/Foo=false, he can set featuregate/Foo=false before upgrading. Let's say the cluster-admin wants featuregate/Foo=false." items: diff --git a/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1beta1/opentelemetrycollectors.yaml b/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1beta1/opentelemetrycollectors.yaml index 4d3c9fd5b..e0f8a745c 100644 --- a/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1beta1/opentelemetrycollectors.yaml +++ b/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1beta1/opentelemetrycollectors.yaml @@ -2389,6 +2389,27 @@ spec: x-kubernetes-list-type: "atomic" priorityClassName: type: "string" + readinessProbe: + properties: + failureThreshold: + format: "int32" + type: "integer" + initialDelaySeconds: + format: "int32" + type: "integer" + periodSeconds: + format: "int32" + type: "integer" + successThreshold: + format: "int32" + type: "integer" + terminationGracePeriodSeconds: + format: "int64" + type: "integer" + timeoutSeconds: + format: "int32" + type: "integer" + type: "object" replicas: format: "int32" type: "integer" diff --git a/crd-catalog/openshift/hive/hive.openshift.io/v1/machinepools.yaml b/crd-catalog/openshift/hive/hive.openshift.io/v1/machinepools.yaml index e08530fe2..5ffc27ee7 100644 --- a/crd-catalog/openshift/hive/hive.openshift.io/v1/machinepools.yaml +++ b/crd-catalog/openshift/hive/hive.openshift.io/v1/machinepools.yaml @@ -115,7 +115,7 @@ spec: type: "string" type: "object" subnets: - description: "Subnets is the list of IDs of subnets to which to attach the machines. There must be exactly one subnet for each availability zone used. These subnets may be public or private. As a special case, for consistency with install-config, you may specify exactly one private and one public subnet for each availability zone. In this case, the public subnets will be filtered out and only the private subnets will be used. If empty/omitted, we will look for subnets in each availability zone tagged with Name=-private-." + description: "Subnets is the list of IDs of subnets to which to attach the machines. There must be exactly one subnet for each availability zone used. These subnets may be public or private. As a special case, for consistency with install-config, you may specify exactly one private and one public subnet for each availability zone. In this case, the public subnets will be filtered out and only the private subnets will be used. If empty/omitted, we will look for subnets in each availability zone tagged with Name=-private- (legacy terraform) or -subnet-private- (CAPA)." items: type: "string" type: "array" diff --git a/crd-catalog/percona/percona-postgresql-operator/pgv2.percona.com/v2/perconapgclusters.yaml b/crd-catalog/percona/percona-postgresql-operator/pgv2.percona.com/v2/perconapgclusters.yaml index 58cb7dfbb..75afd4f7a 100644 --- a/crd-catalog/percona/percona-postgresql-operator/pgv2.percona.com/v2/perconapgclusters.yaml +++ b/crd-catalog/percona/percona-postgresql-operator/pgv2.percona.com/v2/perconapgclusters.yaml @@ -7247,6 +7247,145 @@ spec: - "name" type: "object" type: "array" + tablespaceVolumes: + description: "The list of tablespaces volumes to mount for this postgrescluster This field requires enabling TablespaceVolumes feature gate" + items: + properties: + dataVolumeClaimSpec: + description: "Defines a PersistentVolumeClaim for a tablespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes" + properties: + accessModes: + description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" + items: + type: "string" + type: "array" + dataSource: + description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." + 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." + type: "string" + kind: + description: "Kind is the type of resource being referenced" + type: "string" + name: + description: "Name is the name of resource being referenced" + type: "string" + required: + - "kind" + - "name" + type: "object" + x-kubernetes-map-type: "atomic" + dataSourceRef: + description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + 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." + type: "string" + kind: + description: "Kind is the type of resource being referenced" + type: "string" + name: + description: "Name is the name of resource being referenced" + type: "string" + namespace: + description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled." + type: "string" + required: + - "kind" + - "name" + type: "object" + resources: + description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + 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" + selector: + description: "selector is a label query over volumes to consider for binding." + 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" + storageClassName: + description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" + type: "string" + volumeMode: + description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec." + type: "string" + volumeName: + description: "volumeName is the binding reference to the PersistentVolume backing this claim." + type: "string" + type: "object" + name: + description: "The name for the tablespace, used as the path name for the volume. Must be unique in the instance set since they become the directory names." + minLength: 1 + pattern: "^[a-z][a-z0-9]*$" + type: "string" + required: + - "dataVolumeClaimSpec" + - "name" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" tolerations: description: "Tolerations of a PostgreSQL pod. Changing this value causes PostgreSQL to restart.\nMore info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration" items: diff --git a/crd-catalog/percona/percona-xtradb-cluster-operator/pxc.percona.com/v1/perconaxtradbclusters.yaml b/crd-catalog/percona/percona-xtradb-cluster-operator/pxc.percona.com/v1/perconaxtradbclusters.yaml index a0f61ff81..871a676e9 100644 --- a/crd-catalog/percona/percona-xtradb-cluster-operator/pxc.percona.com/v1/perconaxtradbclusters.yaml +++ b/crd-catalog/percona/percona-xtradb-cluster-operator/pxc.percona.com/v1/perconaxtradbclusters.yaml @@ -158,11 +158,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -174,11 +176,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" weight: format: "int32" @@ -188,6 +192,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -204,11 +209,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -220,13 +227,16 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -251,11 +261,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -284,11 +296,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -298,6 +312,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -311,6 +326,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -327,11 +343,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -360,11 +378,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -374,12 +394,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" podAntiAffinity: properties: @@ -401,11 +423,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -434,11 +458,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -448,6 +474,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -461,6 +488,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -477,11 +505,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -510,11 +540,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -524,12 +556,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "object" annotations: @@ -629,16 +663,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -696,6 +741,15 @@ spec: type: "object" podSecurityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" fsGroup: format: "int64" type: "integer" @@ -734,6 +788,7 @@ spec: format: "int64" type: "integer" type: "array" + x-kubernetes-list-type: "atomic" sysctls: items: properties: @@ -746,6 +801,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" windowsOptions: properties: gmsaCredentialSpec: @@ -838,11 +894,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -905,6 +963,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -963,11 +1022,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1014,11 +1075,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -1030,11 +1093,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" weight: format: "int32" @@ -1044,6 +1109,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -1060,11 +1126,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -1076,13 +1144,16 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -1107,11 +1178,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1140,11 +1213,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1154,6 +1229,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -1167,6 +1243,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -1183,11 +1260,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1216,11 +1295,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1230,12 +1311,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" podAntiAffinity: properties: @@ -1257,11 +1340,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1290,11 +1375,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1304,6 +1391,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -1317,6 +1405,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -1333,11 +1422,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1366,11 +1457,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -1380,12 +1473,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "object" antiAffinityTopologyKey: @@ -1401,16 +1496,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -1550,6 +1656,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -1567,6 +1674,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1608,6 +1716,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -1625,6 +1734,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1670,6 +1780,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -1700,6 +1811,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1765,6 +1877,15 @@ spec: type: "object" podSecurityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" fsGroup: format: "int64" type: "integer" @@ -1803,6 +1924,7 @@ spec: format: "int64" type: "integer" type: "array" + x-kubernetes-list-type: "atomic" sysctls: items: properties: @@ -1815,6 +1937,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" windowsOptions: properties: gmsaCredentialSpec: @@ -1840,6 +1963,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -1870,6 +1994,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -1992,6 +2117,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -2050,11 +2176,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2075,6 +2203,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" allocatedResourceStatuses: additionalProperties: type: "string" @@ -2118,6 +2247,9 @@ spec: - "type" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "type" + x-kubernetes-list-type: "map" currentVolumeAttributesClassName: type: "string" modifyVolumeStatus: @@ -2218,6 +2350,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" readOnly: @@ -2270,6 +2403,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -2336,6 +2470,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" emptyDir: properties: @@ -2360,6 +2495,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -2418,11 +2554,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2454,10 +2592,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" wwids: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" flexVolume: properties: @@ -2553,6 +2693,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" readOnly: type: "boolean" secretRef: @@ -2633,11 +2774,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -2671,6 +2814,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -2714,6 +2858,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" secret: properties: @@ -2732,6 +2877,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -2751,6 +2897,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" quobyte: properties: @@ -2782,6 +2929,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" pool: type: "string" readOnly: @@ -2847,6 +2995,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" optional: type: "boolean" secretName: @@ -2892,10 +3041,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: items: properties: @@ -2956,6 +3107,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: items: properties: @@ -2977,6 +3131,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: type: "string" imagePullPolicy: @@ -2991,6 +3146,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -3008,6 +3164,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -3049,6 +3206,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -3066,6 +3224,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -3108,6 +3267,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -3138,6 +3298,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -3212,6 +3373,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -3242,6 +3404,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -3332,16 +3495,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -3397,6 +3571,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -3427,6 +3602,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -3489,6 +3665,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: items: properties: @@ -3500,6 +3679,8 @@ spec: type: "string" readOnly: type: "boolean" + recursiveReadOnly: + type: "string" subPath: type: "string" subPathExpr: @@ -3509,6 +3690,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: type: "string" required: @@ -3554,11 +3738,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3619,6 +3805,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -3677,11 +3864,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -3754,16 +3943,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -3863,16 +4063,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -3992,11 +4203,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -4008,11 +4221,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" weight: format: "int32" @@ -4022,6 +4237,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -4038,11 +4254,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -4054,13 +4272,16 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -4085,11 +4306,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4118,11 +4341,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4132,6 +4357,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -4145,6 +4371,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -4161,11 +4388,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4194,11 +4423,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4208,12 +4439,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" podAntiAffinity: properties: @@ -4235,11 +4468,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4268,11 +4503,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4282,6 +4519,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -4295,6 +4533,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -4311,11 +4550,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4344,11 +4585,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -4358,12 +4601,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "object" antiAffinityTopologyKey: @@ -4379,16 +4624,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -4501,6 +4757,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -4518,6 +4775,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -4559,6 +4817,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -4576,6 +4835,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -4621,6 +4881,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -4651,6 +4912,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -4716,6 +4978,15 @@ spec: type: "object" podSecurityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" fsGroup: format: "int64" type: "integer" @@ -4754,6 +5025,7 @@ spec: format: "int64" type: "integer" type: "array" + x-kubernetes-list-type: "atomic" sysctls: items: properties: @@ -4766,6 +5038,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" windowsOptions: properties: gmsaCredentialSpec: @@ -4791,6 +5064,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -4821,6 +5095,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -4935,6 +5210,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -4993,11 +5269,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -5018,6 +5296,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" allocatedResourceStatuses: additionalProperties: type: "string" @@ -5061,6 +5340,9 @@ spec: - "type" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "type" + x-kubernetes-list-type: "map" currentVolumeAttributesClassName: type: "string" modifyVolumeStatus: @@ -5161,6 +5443,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" readOnly: @@ -5213,6 +5496,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -5279,6 +5563,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" emptyDir: properties: @@ -5303,6 +5588,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -5361,11 +5647,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -5397,10 +5685,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" wwids: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" flexVolume: properties: @@ -5496,6 +5786,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" readOnly: type: "boolean" secretRef: @@ -5576,11 +5867,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -5614,6 +5907,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -5657,6 +5951,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" secret: properties: @@ -5675,6 +5970,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -5694,6 +5990,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" quobyte: properties: @@ -5725,6 +6022,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" pool: type: "string" readOnly: @@ -5790,6 +6088,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" optional: type: "boolean" secretName: @@ -5835,10 +6134,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: items: properties: @@ -5899,6 +6200,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: items: properties: @@ -5920,6 +6224,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: type: "string" imagePullPolicy: @@ -5934,6 +6239,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -5951,6 +6257,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -5992,6 +6299,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -6009,6 +6317,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -6051,6 +6360,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -6081,6 +6391,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -6155,6 +6466,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -6185,6 +6497,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -6275,16 +6588,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -6340,6 +6664,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -6370,6 +6695,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -6432,6 +6758,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: items: properties: @@ -6443,6 +6772,8 @@ spec: type: "string" readOnly: type: "boolean" + recursiveReadOnly: + type: "string" subPath: type: "string" subPathExpr: @@ -6452,6 +6783,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: type: "string" required: @@ -6497,11 +6831,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6562,6 +6898,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -6620,11 +6957,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6665,11 +7004,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -6681,11 +7022,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" weight: format: "int32" @@ -6695,6 +7038,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -6711,11 +7055,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchFields: items: properties: @@ -6727,13 +7073,16 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "array" + x-kubernetes-list-type: "atomic" required: - "nodeSelectorTerms" type: "object" @@ -6758,11 +7107,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6791,11 +7142,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6805,6 +7158,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -6818,6 +7172,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -6834,11 +7189,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6867,11 +7224,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6881,12 +7240,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" podAntiAffinity: properties: @@ -6908,11 +7269,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6941,11 +7304,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -6955,6 +7320,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: @@ -6968,6 +7334,7 @@ spec: - "weight" type: "object" type: "array" + x-kubernetes-list-type: "atomic" requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -6984,11 +7351,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -7017,11 +7386,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -7031,12 +7402,14 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" topologyKey: type: "string" required: - "topologyKey" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" type: "object" antiAffinityTopologyKey: @@ -7054,16 +7427,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -7176,6 +7560,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -7193,6 +7578,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -7234,6 +7620,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -7251,6 +7638,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -7296,6 +7684,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -7326,6 +7715,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -7391,6 +7781,15 @@ spec: type: "object" podSecurityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" fsGroup: format: "int64" type: "integer" @@ -7429,6 +7828,7 @@ spec: format: "int64" type: "integer" type: "array" + x-kubernetes-list-type: "atomic" sysctls: items: properties: @@ -7441,6 +7841,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" windowsOptions: properties: gmsaCredentialSpec: @@ -7466,6 +7867,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -7496,6 +7898,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -7643,6 +8046,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -7701,11 +8105,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -7726,6 +8132,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" allocatedResourceStatuses: additionalProperties: type: "string" @@ -7769,6 +8176,9 @@ spec: - "type" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "type" + x-kubernetes-list-type: "map" currentVolumeAttributesClassName: type: "string" modifyVolumeStatus: @@ -7869,6 +8279,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" readOnly: @@ -7921,6 +8332,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -7987,6 +8399,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" emptyDir: properties: @@ -8011,6 +8424,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -8069,11 +8483,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -8105,10 +8521,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" wwids: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" flexVolume: properties: @@ -8204,6 +8622,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" readOnly: type: "boolean" secretRef: @@ -8284,11 +8703,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -8322,6 +8743,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -8365,6 +8787,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" secret: properties: @@ -8383,6 +8806,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" name: type: "string" optional: @@ -8402,6 +8826,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" type: "object" quobyte: properties: @@ -8433,6 +8858,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" pool: type: "string" readOnly: @@ -8498,6 +8924,7 @@ spec: - "path" type: "object" type: "array" + x-kubernetes-list-type: "atomic" optional: type: "boolean" secretName: @@ -8543,10 +8970,12 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" command: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" env: items: properties: @@ -8607,6 +9036,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "name" + x-kubernetes-list-type: "map" envFrom: items: properties: @@ -8628,6 +9060,7 @@ spec: type: "object" type: "object" type: "array" + x-kubernetes-list-type: "atomic" image: type: "string" imagePullPolicy: @@ -8642,6 +9075,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -8659,6 +9093,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -8700,6 +9135,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" httpGet: properties: @@ -8717,6 +9153,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -8759,6 +9196,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -8789,6 +9227,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -8863,6 +9302,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -8893,6 +9333,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -8983,16 +9424,27 @@ spec: properties: allowPrivilegeEscalation: type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + required: + - "type" + type: "object" capabilities: properties: add: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" drop: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" privileged: type: "boolean" @@ -9048,6 +9500,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" type: "object" failureThreshold: format: "int32" @@ -9078,6 +9531,7 @@ spec: - "value" type: "object" type: "array" + x-kubernetes-list-type: "atomic" path: type: "string" port: @@ -9140,6 +9594,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "devicePath" + x-kubernetes-list-type: "map" volumeMounts: items: properties: @@ -9151,6 +9608,8 @@ spec: type: "string" readOnly: type: "boolean" + recursiveReadOnly: + type: "string" subPath: type: "string" subPathExpr: @@ -9160,6 +9619,9 @@ spec: - "name" type: "object" type: "array" + x-kubernetes-list-map-keys: + - "mountPath" + x-kubernetes-list-type: "map" workingDir: type: "string" required: @@ -9205,11 +9667,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" @@ -9270,6 +9734,7 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" dataSource: properties: apiGroup: @@ -9328,11 +9793,13 @@ spec: items: type: "string" type: "array" + x-kubernetes-list-type: "atomic" required: - "key" - "operator" type: "object" type: "array" + x-kubernetes-list-type: "atomic" matchLabels: additionalProperties: type: "string" diff --git a/crd-catalog/project-codeflare/codeflare-operator/workload.codeflare.dev/v1beta2/appwrappers.yaml b/crd-catalog/project-codeflare/codeflare-operator/workload.codeflare.dev/v1beta2/appwrappers.yaml new file mode 100644 index 000000000..f7168672f --- /dev/null +++ b/crd-catalog/project-codeflare/codeflare-operator/workload.codeflare.dev/v1beta2/appwrappers.yaml @@ -0,0 +1,203 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.14.0" + name: "appwrappers.workload.codeflare.dev" +spec: + conversion: + strategy: "Webhook" + webhook: + clientConfig: + service: + name: "webhook-service" + namespace: "system" + path: "/convert" + conversionReviewVersions: + - "v1" + group: "workload.codeflare.dev" + names: + kind: "AppWrapper" + listKind: "AppWrapperList" + plural: "appwrappers" + singular: "appwrapper" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.phase" + name: "Status" + type: "string" + - jsonPath: ".status.conditions[?(@.type==\"QuotaReserved\")].status" + name: "Quota Reserved" + type: "string" + - jsonPath: ".status.conditions[?(@.type==\"ResourcesDeployed\")].status" + name: "Resources Deployed" + type: "string" + - jsonPath: ".status.conditions[?(@.type==\"Unhealthy\")].status" + name: "Unhealthy" + type: "string" + name: "v1beta2" + schema: + openAPIV3Schema: + description: "AppWrapper is the Schema for the appwrappers API" + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "AppWrapperSpec defines the desired state of the AppWrapper" + properties: + components: + description: "Components lists the components contained in the AppWrapper" + items: + description: "AppWrapperComponent describes a single wrapped Kubernetes resource" + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations is an unstructured key value map that may be used to store and retrieve\narbitrary metadata about the Component to customize its treatment by the AppWrapper controller." + type: "object" + podSetInfos: + description: "PodSetInfos assigned to the Component's PodSets by Kueue" + items: + description: "AppWrapperPodSetInfo contains the data that Kueue wants to inject into an admitted PodSpecTemplate" + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations to be added to the PodSpecTemplate" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to be added to the PodSepcTemplate" + type: "object" + nodeSelector: + additionalProperties: + type: "string" + description: "NodeSelectors to be added to the PodSpecTemplate" + type: "object" + tolerations: + description: "Tolerations to be added to the PodSpecTemplate" + items: + description: "The pod this Toleration is attached to tolerates any taint that matches\nthe triple using the matching operator ." + properties: + effect: + description: "Effect indicates the taint effect to match. Empty means match all taint effects.\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." + type: "string" + key: + description: "Key is the taint key that the toleration applies to. Empty means match all taint keys.\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys." + type: "string" + operator: + description: "Operator represents a key's relationship to the value.\nValid operators are Exists and Equal. Defaults to Equal.\nExists is equivalent to wildcard for value, so that a pod can\ntolerate all taints of a particular category." + type: "string" + tolerationSeconds: + description: "TolerationSeconds represents the period of time the toleration (which must be\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\nit is not set, which means tolerate the taint forever (do not evict). Zero and\nnegative values will be treated as 0 (evict immediately) by the system." + format: "int64" + type: "integer" + value: + description: "Value is the taint value the toleration matches to.\nIf the operator is Exists, the value should be empty, otherwise just a regular string." + type: "string" + type: "object" + type: "array" + type: "object" + type: "array" + podSets: + description: "PodSets contained in the Component" + items: + description: "AppWrapperPodSet describes an homogeneous set of pods" + properties: + path: + description: "Path is the path Component.Template to the PodTemplateSpec for this PodSet" + type: "string" + replicas: + description: "Replicas is the number of pods in this PodSet" + format: "int32" + type: "integer" + required: + - "path" + type: "object" + type: "array" + template: + description: "Template defines the Kubernetes resource for the Component" + type: "object" + x-kubernetes-embedded-resource: true + x-kubernetes-preserve-unknown-fields: true + required: + - "template" + type: "object" + type: "array" + suspend: + description: "Suspend suspends the AppWrapper when set to true" + type: "boolean" + required: + - "components" + type: "object" + status: + description: "AppWrapperStatus defines the observed state of the appwrapper" + properties: + conditions: + description: "Conditions hold the latest available observations of the AppWrapper current state.\n\n\nThe type of the condition could be:\n\n\n- QuotaReserved: The AppWrapper was admitted by Kueue and has quota allocated to it\n- ResourcesDeployed: The contained resources are deployed (or being deployed) on the cluster\n- PodsReady: All pods of the contained resources are in the Ready or Succeeded state\n- Unhealthy: One or more of the contained resources is unhealthy\n- DeletingResources: The contained resources are in the process of being deleted from the cluster" + items: + 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.\nThis 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.\nThis may be an empty string." + maxLength: 32768 + type: "string" + observedGeneration: + description: "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty." + maxLength: 1024 + minLength: 1 + pattern: "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$" + type: "string" + status: + description: "status of the condition, one of True, False, Unknown." + enum: + - "True" + - "False" + - "Unknown" + type: "string" + type: + description: "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe 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" + required: + - "lastTransitionTime" + - "message" + - "reason" + - "status" + - "type" + type: "object" + type: "array" + x-kubernetes-list-map-keys: + - "type" + x-kubernetes-list-type: "map" + phase: + description: "Phase of the AppWrapper object" + type: "string" + resettingCount: + description: "Retries counts the number of times the AppWrapper has entered the Resetting Phase" + format: "int32" + type: "integer" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml index 7bc702dfb..56e4c9a9d 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml @@ -652,6 +652,63 @@ spec: items: description: "AlertmanagerEndpoints defines a selection of a single Endpoints object\ncontaining Alertmanager IPs to fire alerts against." properties: + alertRelabelings: + description: "Relabeling configs applied before sending alerts to a specific Alertmanager.\nIt requires Prometheus >= v2.51.0." + items: + description: "RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\nscraped samples and remote write samples.\n\n\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config" + properties: + action: + default: "replace" + description: "Action to perform based on the regex matching.\n\n\n`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.\n`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.\n\n\nDefault: \"Replace\"" + enum: + - "replace" + - "Replace" + - "keep" + - "Keep" + - "drop" + - "Drop" + - "hashmod" + - "HashMod" + - "labelmap" + - "LabelMap" + - "labeldrop" + - "LabelDrop" + - "labelkeep" + - "LabelKeep" + - "lowercase" + - "Lowercase" + - "uppercase" + - "Uppercase" + - "keepequal" + - "KeepEqual" + - "dropequal" + - "DropEqual" + type: "string" + modulus: + description: "Modulus to take of the hash of the source label values.\n\n\nOnly applicable when the action is `HashMod`." + format: "int64" + type: "integer" + regex: + description: "Regular expression against which the extracted value is matched." + type: "string" + replacement: + description: "Replacement value against which a Replace action is performed if the\nregular expression matches.\n\n\nRegex capture groups are available." + type: "string" + separator: + description: "Separator is the string between concatenated SourceLabels." + type: "string" + sourceLabels: + description: "The source labels select values from existing labels. Their content is\nconcatenated using the configured Separator and matched against the\nconfigured regular expression." + items: + description: "LabelName is a valid Prometheus label name which may only contain ASCII\nletters, numbers, as well as underscores." + pattern: "^[a-zA-Z_][a-zA-Z0-9_]*$" + type: "string" + type: "array" + targetLabel: + description: "Label to which the resulting string is written in a replacement.\n\n\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\n`KeepEqual` and `DropEqual` actions.\n\n\nRegex capture groups are available." + type: "string" + type: "object" + type: "array" apiVersion: description: "Version of the Alertmanager API that Prometheus uses to send alerts.\nIt can be \"v1\" or \"v2\"." type: "string" @@ -735,6 +792,63 @@ spec: - type: "string" description: "Port on which the Alertmanager API is exposed." x-kubernetes-int-or-string: true + relabelings: + description: "Relabel configuration applied to the discovered Alertmanagers." + items: + description: "RelabelConfig allows dynamic rewriting of the label set for targets, alerts,\nscraped samples and remote write samples.\n\n\nMore info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config" + properties: + action: + default: "replace" + description: "Action to perform based on the regex matching.\n\n\n`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.\n`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.\n\n\nDefault: \"Replace\"" + enum: + - "replace" + - "Replace" + - "keep" + - "Keep" + - "drop" + - "Drop" + - "hashmod" + - "HashMod" + - "labelmap" + - "LabelMap" + - "labeldrop" + - "LabelDrop" + - "labelkeep" + - "LabelKeep" + - "lowercase" + - "Lowercase" + - "uppercase" + - "Uppercase" + - "keepequal" + - "KeepEqual" + - "dropequal" + - "DropEqual" + type: "string" + modulus: + description: "Modulus to take of the hash of the source label values.\n\n\nOnly applicable when the action is `HashMod`." + format: "int64" + type: "integer" + regex: + description: "Regular expression against which the extracted value is matched." + type: "string" + replacement: + description: "Replacement value against which a Replace action is performed if the\nregular expression matches.\n\n\nRegex capture groups are available." + type: "string" + separator: + description: "Separator is the string between concatenated SourceLabels." + type: "string" + sourceLabels: + description: "The source labels select values from existing labels. Their content is\nconcatenated using the configured Separator and matched against the\nconfigured regular expression." + items: + description: "LabelName is a valid Prometheus label name which may only contain ASCII\nletters, numbers, as well as underscores." + pattern: "^[a-zA-Z_][a-zA-Z0-9_]*$" + type: "string" + type: "array" + targetLabel: + description: "Label to which the resulting string is written in a replacement.\n\n\nIt is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,\n`KeepEqual` and `DropEqual` actions.\n\n\nRegex capture groups are available." + type: "string" + type: "object" + type: "array" scheme: description: "Scheme to use when firing alerts." type: "string" @@ -3543,7 +3657,7 @@ spec: - "AzurePublic" type: "string" managedIdentity: - description: "ManagedIdentity defines the Azure User-assigned Managed identity.\nCannot be set at the same time as `oauth`." + description: "ManagedIdentity defines the Azure User-assigned Managed identity.\nCannot be set at the same time as `oauth` or `sdk`." properties: clientId: description: "The client id" @@ -3552,7 +3666,7 @@ spec: - "clientId" type: "object" oauth: - description: "OAuth defines the oauth config that is being used to authenticate.\nCannot be set at the same time as `managedIdentity`.\n\n\nIt requires Prometheus >= v2.48.0." + description: "OAuth defines the oauth config that is being used to authenticate.\nCannot be set at the same time as `managedIdentity` or `sdk`.\n\n\nIt requires Prometheus >= v2.48.0." properties: clientId: description: "`clientID` is the clientId of the Azure Active Directory application that is being used to authenticate." @@ -3575,7 +3689,7 @@ spec: type: "object" x-kubernetes-map-type: "atomic" tenantId: - description: "`tenantID` is the tenant ID of the Azure Active Directory application that is being used to authenticate." + description: "`tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate." minLength: 1 pattern: "^[0-9a-zA-Z-.]+$" type: "string" @@ -3584,6 +3698,14 @@ spec: - "clientSecret" - "tenantId" type: "object" + sdk: + description: "SDK defines the Azure SDK config that is being used to authenticate.\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\nCannot be set at the same time as `oauth` or `managedIdentity`.\n\n\nIt requires Prometheus >= 2.52.0." + properties: + tenantId: + description: "`tenantId` is the tenant ID of the azure active directory application that is being used to authenticate." + pattern: "^[0-9a-zA-Z-.]+$" + type: "string" + type: "object" type: "object" basicAuth: description: "BasicAuth configuration for the URL.\n\n\nCannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`." @@ -4133,7 +4255,7 @@ spec: items: properties: default: - description: "Default indicates that the scrape applies to all scrape objects that don't configure an explicit scrape class name.\n\n\nOnly one scrape class can be set as default." + description: "Default indicates that the scrape applies to all scrape objects that\ndon't configure an explicit scrape class name.\n\n\nOnly one scrape class can be set as the default." type: "boolean" name: description: "Name of the scrape class." @@ -4197,7 +4319,7 @@ spec: type: "object" type: "array" tlsConfig: - description: "TLSConfig section for scrapes." + description: "TLSConfig defines the TLS settings to use for the scrape. When the\nscrape objects define their own CA, certificate and/or key, they take\nprecedence over the corresponding scrape class fields.\n\n\nFor now only the `caFile`, `certFile` and `keyFile` fields are supported." properties: ca: description: "Certificate authority used when verifying server certificates." diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml index ca6c83d3e..518402b8a 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml @@ -2898,7 +2898,7 @@ spec: - "AzurePublic" type: "string" managedIdentity: - description: "ManagedIdentity defines the Azure User-assigned Managed identity.\nCannot be set at the same time as `oauth`." + description: "ManagedIdentity defines the Azure User-assigned Managed identity.\nCannot be set at the same time as `oauth` or `sdk`." properties: clientId: description: "The client id" @@ -2907,7 +2907,7 @@ spec: - "clientId" type: "object" oauth: - description: "OAuth defines the oauth config that is being used to authenticate.\nCannot be set at the same time as `managedIdentity`.\n\n\nIt requires Prometheus >= v2.48.0." + description: "OAuth defines the oauth config that is being used to authenticate.\nCannot be set at the same time as `managedIdentity` or `sdk`.\n\n\nIt requires Prometheus >= v2.48.0." properties: clientId: description: "`clientID` is the clientId of the Azure Active Directory application that is being used to authenticate." @@ -2930,7 +2930,7 @@ spec: type: "object" x-kubernetes-map-type: "atomic" tenantId: - description: "`tenantID` is the tenant ID of the Azure Active Directory application that is being used to authenticate." + description: "`tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate." minLength: 1 pattern: "^[0-9a-zA-Z-.]+$" type: "string" @@ -2939,6 +2939,14 @@ spec: - "clientSecret" - "tenantId" type: "object" + sdk: + description: "SDK defines the Azure SDK config that is being used to authenticate.\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication\nCannot be set at the same time as `oauth` or `managedIdentity`.\n\n\nIt requires Prometheus >= 2.52.0." + properties: + tenantId: + description: "`tenantId` is the tenant ID of the azure active directory application that is being used to authenticate." + pattern: "^[0-9a-zA-Z-.]+$" + type: "string" + type: "object" type: "object" basicAuth: description: "BasicAuth configuration for the URL.\n\n\nCannot be set at the same time as `sigv4`, `authorization`, `oauth2`, or `azureAd`." @@ -3401,7 +3409,7 @@ spec: items: properties: default: - description: "Default indicates that the scrape applies to all scrape objects that don't configure an explicit scrape class name.\n\n\nOnly one scrape class can be set as default." + description: "Default indicates that the scrape applies to all scrape objects that\ndon't configure an explicit scrape class name.\n\n\nOnly one scrape class can be set as the default." type: "boolean" name: description: "Name of the scrape class." @@ -3465,7 +3473,7 @@ spec: type: "object" type: "array" tlsConfig: - description: "TLSConfig section for scrapes." + description: "TLSConfig defines the TLS settings to use for the scrape. When the\nscrape objects define their own CA, certificate and/or key, they take\nprecedence over the corresponding scrape class fields.\n\n\nFor now only the `caFile`, `certFile` and `keyFile` fields are supported." properties: ca: description: "Certificate authority used when verifying server certificates." 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 9ce9fd3b6..32da03001 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 @@ -187,21 +187,23 @@ spec: type: "object" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -354,10 +356,11 @@ spec: description: "AzureSDConfig allow retrieving scrape targets from Azure VMs.\nSee https://prometheus.io/docs/prometheus/latest/configuration/configuration/#azure_sd_config" properties: authenticationMethod: - description: "# The authentication method, either OAuth or ManagedIdentity.\nSee https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview" + description: "# The authentication method, either `OAuth` or `ManagedIdentity` or `SDK`.\nSee https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview\nSDK authentication method uses environment variables by default.\nSee https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication" enum: - "OAuth" - "ManagedIdentity" + - "SDK" type: "string" clientID: description: "Optional client ID. Only required with the OAuth authentication method." @@ -605,21 +608,23 @@ spec: type: "string" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -893,21 +898,23 @@ spec: type: "integer" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -1228,21 +1235,23 @@ spec: type: "integer" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -1579,21 +1588,23 @@ spec: type: "object" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -1918,21 +1929,23 @@ spec: type: "integer" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -2132,21 +2145,23 @@ spec: type: "string" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -2443,21 +2458,23 @@ spec: type: "object" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -2774,21 +2791,23 @@ spec: type: "object" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" @@ -3193,21 +3212,23 @@ spec: x-kubernetes-map-type: "atomic" proxyConnectHeader: additionalProperties: - description: "SecretKeySelector selects a key of a Secret." - 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" - type: "string" - optional: - description: "Specify whether the Secret or its key must be defined" - type: "boolean" - required: - - "key" - type: "object" - x-kubernetes-map-type: "atomic" + items: + description: "SecretKeySelector selects a key of a Secret." + 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?" + type: "string" + optional: + description: "Specify whether the Secret or its key must be defined" + type: "boolean" + required: + - "key" + type: "object" + x-kubernetes-map-type: "atomic" + type: "array" description: "ProxyConnectHeader optionally specifies headers to send to\nproxies during CONNECT requests.\n\n\nIt requires Prometheus >= v2.43.0." type: "object" x-kubernetes-map-type: "atomic" diff --git a/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml b/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml index 77b96fe7d..054e13564 100644 --- a/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml +++ b/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml @@ -3469,6 +3469,12 @@ spec: storage: description: "CephStorage represents flavors of Ceph Cluster Storage" properties: + deprecatedOSDs: + additionalProperties: + items: + type: "integer" + type: "array" + type: "object" deviceClasses: items: description: "DeviceClasses represents device classes of a Ceph Cluster" diff --git a/crd-catalog/scylladb/scylla-operator/scylla.scylladb.com/v1/scyllaclusters.yaml b/crd-catalog/scylladb/scylla-operator/scylla.scylladb.com/v1/scyllaclusters.yaml index 0106bf150..f6244c7e9 100644 --- a/crd-catalog/scylladb/scylla-operator/scylla.scylladb.com/v1/scyllaclusters.yaml +++ b/crd-catalog/scylladb/scylla-operator/scylla.scylladb.com/v1/scyllaclusters.yaml @@ -138,7 +138,7 @@ spec: type: "string" type: "array" name: - description: "name is a unique name of a task." + description: "name specifies the name of a task." type: "string" numRetries: default: 3 @@ -2105,7 +2105,7 @@ spec: type: "string" type: "array" name: - description: "name is a unique name of a task." + description: "name specifies the name of a task." type: "string" numRetries: default: 3 @@ -2157,63 +2157,61 @@ spec: items: properties: cron: - description: "cron specifies the task schedule as a cron expression. It supports an extended syntax including @monthly, @weekly, @daily, @midnight, @hourly, @every X[h|m|s]." + description: "cron reflects the task schedule as a cron expression." type: "string" dc: - description: "dc is a list of datacenter glob patterns, e.g. 'dc1,!otherdc*' used to specify the DCs to include or exclude from backup." + description: "dc reflects a list of datacenter glob patterns, e.g. 'dc1,!otherdc*' used to specify the DCs to include or exclude from backup." items: type: "string" type: "array" error: - description: "error holds the backup task error, if any." + description: "error holds the task error, if any." type: "string" id: - description: "id is the identification number of the backup task." + description: "id reflects identification number of the repair task." type: "string" interval: - description: "interval represents a task schedule interval e.g. 3d2h10m, valid units are d, h, m, s. Deprecated: please use cron instead." + description: "interval reflects a task schedule interval." type: "string" keyspace: - description: "keyspace is a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair." + description: "keyspace reflects a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair." items: type: "string" type: "array" location: - description: "location is a list of backup locations in the format [:]: ex. s3:my-bucket. The : part is optional and is only needed when different datacenters are being used to upload data to different locations. must be an alphanumeric string and may contain a dash and or a dot, but other characters are forbidden. The only supported storage at the moment are s3 and gcs." + description: "location reflects a list of backup locations in the format [:]: ex. s3:my-bucket." items: type: "string" type: "array" name: - description: "name is a unique name of a task." + description: "name reflects the name of a task." type: "string" numRetries: - default: 3 - description: "numRetries indicates how many times a scheduled task will be retried before failing." + description: "numRetries reflects how many times a scheduled task will be retried before failing." format: "int64" type: "integer" rateLimit: - description: "rateLimit is a list of megabytes (MiB) per second rate limits expressed in the format [:]. The : part is optional and only needed when different datacenters need different upload limits. Set to 0 for no limit (default 100)." + description: "rateLimit reflects a list of megabytes (MiB) per second rate limits expressed in the format [:]." items: type: "string" type: "array" retention: - default: 3 - description: "retention is the number of backups which are to be stored." + description: "retention reflects the number of backups which are to be stored." format: "int64" type: "integer" snapshotParallel: - description: "snapshotParallel is a list of snapshot parallelism limits in the format [:]. The : part is optional and allows for specifying different limits in selected datacenters. If The : part is not set, the limit is global (e.g. 'dc1:2,5') the runs are parallel in n nodes (2 in dc1) and n nodes in all the other datacenters." + description: "snapshotParallel reflects a list of snapshot parallelism limits in the format [:]." items: type: "string" type: "array" startDate: - description: "startDate specifies the task start date expressed in the RFC3339 format or now[+duration], e.g. now+3d2h10m, valid units are d, h, m, s." + description: "startDate reflects the task start date expressed in the RFC3339 format" type: "string" timezone: - description: "timezone specifies the timezone of cron field." + description: "timezone reflects the timezone of cron field." type: "string" uploadParallel: - description: "uploadParallel is a list of upload parallelism limits in the format [:]. The : part is optional and allows for specifying different limits in selected datacenters. If The : part is not set the limit is global (e.g. 'dc1:2,5') the runs are parallel in n nodes (2 in dc1) and n nodes in all the other datacenters." + description: "uploadParallel reflects a list of upload parallelism limits in the format [:]." items: type: "string" type: "array" @@ -2334,59 +2332,55 @@ spec: items: properties: cron: - description: "cron specifies the task schedule as a cron expression. It supports an extended syntax including @monthly, @weekly, @daily, @midnight, @hourly, @every X[h|m|s]." + description: "cron reflects the task schedule as a cron expression." type: "string" dc: - description: "dc is a list of datacenter glob patterns, e.g. 'dc1', '!otherdc*' used to specify the DCs to include or exclude from backup." + description: "dc reflects a list of datacenter glob patterns, e.g. 'dc1', '!otherdc*' used to specify the DCs to include or exclude from repair." items: type: "string" type: "array" error: - description: "error holds the repair task error, if any." + description: "error holds the task error, if any." type: "string" failFast: description: "failFast indicates if a repair should be stopped on first error." type: "boolean" host: - description: "host specifies a host to repair. If empty, all hosts are repaired." + description: "host reflects a host to repair." type: "string" id: - description: "id is the identification number of the repair task." + description: "id reflects identification number of the repair task." type: "string" intensity: - default: "1" - description: "intensity indicates how many token ranges (per shard) to repair in a single Scylla repair job. By default this is 1. If you set it to 0 the number of token ranges is adjusted to the maximum supported by node (see max_repair_ranges_in_parallel in Scylla logs). Valid values are 0 and integers >= 1. Higher values will result in increased cluster load and slightly faster repairs. Changing the intensity impacts repair granularity if you need to resume it, the higher the value the more work on resume. For Scylla clusters that *do not support row-level repair*, intensity can be a decimal between (0,1). In that case it specifies percent of shards that can be repaired in parallel on a repair master node. For Scylla clusters that are row-level repair enabled, setting intensity below 1 has the same effect as setting intensity 1." + description: "intensity indicates how many token ranges (per shard) to repair in a single Scylla repair job. By default this is 1." type: "string" interval: - description: "interval represents a task schedule interval e.g. 3d2h10m, valid units are d, h, m, s. Deprecated: please use cron instead." + description: "interval reflects a task schedule interval." type: "string" keyspace: - description: "keyspace is a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair." + description: "keyspace reflects a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair." items: type: "string" type: "array" name: - description: "name is a unique name of a task." + description: "name reflects the name of a task." type: "string" numRetries: - default: 3 - description: "numRetries indicates how many times a scheduled task will be retried before failing." + description: "numRetries reflects how many times a scheduled task will be retried before failing." format: "int64" type: "integer" parallel: - default: 0 - description: "parallel is the maximum number of Scylla repair jobs that can run at the same time (on different token ranges and replicas). Each node can take part in at most one repair at any given moment. By default the maximum possible parallelism is used. The effective parallelism depends on a keyspace replication factor (RF) and the number of nodes. The formula to calculate it is as follows: number of nodes / RF, ex. for 6 node cluster with RF=3 the maximum parallelism is 2." + description: "parallel reflects the maximum number of Scylla repair jobs that can run at the same time (on different token ranges and replicas)." format: "int64" type: "integer" smallTableThreshold: - default: "1GiB" - description: "smallTableThreshold enable small table optimization for tables of size lower than given threshold. Supported units [B, MiB, GiB, TiB]." + description: "smallTableThreshold reflects whether small table optimization for tables, of size lower than given threshold, are enabled." type: "string" startDate: - description: "startDate specifies the task start date expressed in the RFC3339 format or now[+duration], e.g. now+3d2h10m, valid units are d, h, m, s." + description: "startDate reflects the task start date expressed in the RFC3339 format" type: "string" timezone: - description: "timezone specifies the timezone of cron field." + description: "timezone reflects the timezone of cron field." type: "string" type: "object" type: "array" diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkatopics.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkatopics.yaml index f3d6fe5c9..f3f42bb8e 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkatopics.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkatopics.yaml @@ -97,6 +97,25 @@ spec: observedGeneration: description: "The generation of the CRD that was last reconciled by the operator." type: "integer" + replicasChange: + description: "Replication factor change status." + properties: + message: + description: "Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations." + type: "string" + sessionId: + description: "The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations." + type: "string" + state: + description: "Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control." + enum: + - "pending" + - "ongoing" + type: "string" + targetReplicas: + description: "The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing." + type: "integer" + type: "object" topicId: description: "The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name." type: "string" diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkausers.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkausers.yaml index 8611f301e..aa6d00711 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkausers.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1alpha1/kafkausers.yaml @@ -94,7 +94,7 @@ spec: items: properties: host: - description: "The host from which the action described in the ACL rule is allowed or denied." + description: "The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host." type: "string" operation: description: "Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All." diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkatopics.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkatopics.yaml index 01050a8ef..a789d5b52 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkatopics.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkatopics.yaml @@ -97,6 +97,25 @@ spec: observedGeneration: description: "The generation of the CRD that was last reconciled by the operator." type: "integer" + replicasChange: + description: "Replication factor change status." + properties: + message: + description: "Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations." + type: "string" + sessionId: + description: "The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations." + type: "string" + state: + description: "Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control." + enum: + - "pending" + - "ongoing" + type: "string" + targetReplicas: + description: "The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing." + type: "integer" + type: "object" topicId: description: "The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name." type: "string" diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkausers.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkausers.yaml index ec15ecfb1..370a2e9c1 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkausers.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta1/kafkausers.yaml @@ -94,7 +94,7 @@ spec: items: properties: host: - description: "The host from which the action described in the ACL rule is allowed or denied." + description: "The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host." type: "string" operation: description: "Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All." diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkabridges.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkabridges.yaml index 1f778987b..20579c914 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkabridges.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkabridges.yaml @@ -93,9 +93,9 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "key" - "secretName" + - "certificate" type: "object" clientId: description: "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI." @@ -144,8 +144,8 @@ spec: description: "The name of the Secret containing the password." type: "string" required: - - "password" - "secretName" + - "password" type: "object" readTimeoutSeconds: description: "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds." @@ -177,8 +177,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -388,11 +388,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" template: description: "Template for Kafka Bridge resources. The template allows users to specify how a `Deployment` and `Pod` is generated." @@ -1173,8 +1183,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" type: "object" diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkaconnects.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkaconnects.yaml index 565460ff2..b4ae7edeb 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkaconnects.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkaconnects.yaml @@ -80,9 +80,9 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "key" - "secretName" + - "certificate" type: "object" clientId: description: "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI." @@ -131,8 +131,8 @@ spec: description: "The name of the Secret containing the password." type: "string" required: - - "password" - "secretName" + - "password" type: "object" readTimeoutSeconds: description: "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds." @@ -164,8 +164,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -282,11 +282,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" required: - "output" @@ -571,11 +581,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" template: description: "Template for Kafka Connect and Kafka Mirror Maker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated." @@ -2036,8 +2056,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" type: "object" diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormaker2s.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormaker2s.yaml index 3a7e579c4..41a7ee39e 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormaker2s.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormaker2s.yaml @@ -91,9 +91,9 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "key" - "secretName" + - "certificate" type: "object" clientId: description: "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI." @@ -142,8 +142,8 @@ spec: description: "The name of the Secret containing the password." type: "string" required: - - "password" - "secretName" + - "password" type: "object" readTimeoutSeconds: description: "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds." @@ -175,8 +175,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -218,8 +218,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" type: "object" @@ -632,11 +632,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" template: description: "Template for Kafka Connect and Kafka Mirror Maker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated." diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormakers.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormakers.yaml index 73e16d226..76f622bec 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormakers.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkamirrormakers.yaml @@ -102,9 +102,9 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "key" - "secretName" + - "certificate" type: "object" clientId: description: "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI." @@ -153,8 +153,8 @@ spec: description: "The name of the Secret containing the password." type: "string" required: - - "password" - "secretName" + - "password" type: "object" readTimeoutSeconds: description: "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds." @@ -186,8 +186,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -239,8 +239,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" type: "object" @@ -408,9 +408,9 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "key" - "secretName" + - "certificate" type: "object" clientId: description: "OAuth Client ID which the Kafka client can use to authenticate against the OAuth server and use the token endpoint URI." @@ -459,8 +459,8 @@ spec: description: "The name of the Secret containing the password." type: "string" required: - - "password" - "secretName" + - "password" type: "object" readTimeoutSeconds: description: "The read timeout in seconds when connecting to authorization server. If not set, the effective read timeout is 60 seconds." @@ -492,8 +492,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -535,8 +535,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" type: "object" @@ -582,11 +582,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" template: description: "Template to specify how Kafka MirrorMaker resources, `Deployments` and `Pods`, are generated." diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkarebalances.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkarebalances.yaml index fe9c9e544..3d3182186 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkarebalances.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkarebalances.yaml @@ -46,6 +46,10 @@ spec: jsonPath: ".status.conditions[?(@.type==\"NotReady\")].status" name: "NotReady" type: "string" + - description: "Processing the proposal or running rebalancing was stopped" + jsonPath: ".status.conditions[?(@.type==\"Stopped\")].status" + name: "Stopped" + type: "string" name: "v1beta2" schema: openAPIV3Schema: diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkas.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkas.yaml index d3ccf0070..3c709db72 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkas.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkas.yaml @@ -313,11 +313,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" template: description: "Template to specify how Cruise Control resources, `Deployments` and `Pods`, are generated." @@ -1143,11 +1153,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" type: "object" type: "object" @@ -2051,11 +2071,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" type: "object" topicOperator: @@ -2190,11 +2220,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" startupProbe: description: "Pod startup checking." @@ -2364,11 +2404,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" secretPrefix: description: "The prefix that will be added to the KafkaUser name to be used as the Secret name." @@ -2454,11 +2504,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" template: description: "Template for JmxTrans resources." @@ -3168,8 +3228,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -3393,8 +3453,8 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "secretName" + - "certificate" type: "object" type: "array" tokenEndpointUri: @@ -3439,6 +3499,11 @@ spec: type: "string" description: "Annotations that will be added to the `Ingress`, `Route`, or `Service` resource. You can use this field to configure DNS providers such as External DNS. This field can be used only with `loadbalancer`, `nodeport`, `route`, or `ingress` type listeners." type: "object" + externalIPs: + description: "External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This field is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. This field can only be used with `nodeport` type listener." + items: + type: "string" + type: "array" host: description: "The bootstrap host. This field will be used in the Ingress resource or in the Route resource to specify the desired hostname. This field can be used only with `route` (optional) or `ingress` (required) type listeners." type: "string" @@ -3467,9 +3532,9 @@ spec: description: "The name of the Secret containing the certificate." type: "string" required: - - "certificate" - "key" - "secretName" + - "certificate" type: "object" brokers: description: "Per-broker configurations." @@ -3489,6 +3554,11 @@ spec: broker: description: "ID of the kafka broker (broker identifier). Broker IDs start from 0 and correspond to the number of broker replicas." type: "integer" + externalIPs: + description: "External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This field is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. This field can only be used with `nodeport` type listener." + items: + type: "string" + type: "array" host: description: "The broker host. This field will be used in the Ingress resource or in the Route resource to specify the desired hostname. This field can be used only with `route` (optional) or `ingress` (required) type listeners." type: "string" @@ -3780,11 +3850,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" storage: description: "Storage configuration (disk). Cannot be updated. This property is required when node pools are not used." @@ -3799,6 +3879,11 @@ spec: description: "Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'." minimum: 0.0 type: "integer" + kraftMetadata: + description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." + enum: + - "shared" + type: "string" overrides: description: "Overrides for individual brokers. The `overrides` field allows to specify a different configuration for different brokers." items: @@ -3841,9 +3926,14 @@ spec: description: "Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed." type: "boolean" id: - description: "Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'." + description: "Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration." minimum: 0.0 type: "integer" + kraftMetadata: + description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." + enum: + - "shared" + type: "string" overrides: description: "Overrides for individual brokers. The `overrides` field allows to specify a different configuration for different brokers." items: @@ -4968,11 +5058,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" showAllOffsets: description: "Whether show the offset/lag for all consumer group, otherwise, only show connected consumer groups." @@ -5802,11 +5902,21 @@ spec: type: "object" type: "array" 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 type: "object" - x-kubernetes-preserve-unknown-fields: true 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 type: "object" - x-kubernetes-preserve-unknown-fields: true type: "object" storage: description: "Storage configuration (disk). Cannot be updated." @@ -5818,9 +5928,14 @@ spec: description: "Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed." type: "boolean" id: - description: "Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'." + description: "Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration." minimum: 0.0 type: "integer" + kraftMetadata: + description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." + enum: + - "shared" + type: "string" overrides: description: "Overrides for individual brokers. The `overrides` field allows to specify a different configuration for different brokers." items: diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkatopics.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkatopics.yaml index 1d1a16b78..f7c9a119e 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkatopics.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkatopics.yaml @@ -97,6 +97,25 @@ spec: observedGeneration: description: "The generation of the CRD that was last reconciled by the operator." type: "integer" + replicasChange: + description: "Replication factor change status." + properties: + message: + description: "Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations." + type: "string" + sessionId: + description: "The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations." + type: "string" + state: + description: "Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control." + enum: + - "pending" + - "ongoing" + type: "string" + targetReplicas: + description: "The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing." + type: "integer" + type: "object" topicId: description: "The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name." type: "string" diff --git a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkausers.yaml b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkausers.yaml index c9bec42a5..c4468c4a4 100644 --- a/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkausers.yaml +++ b/crd-catalog/strimzi/strimzi-kafka-operator/kafka.strimzi.io/v1beta2/kafkausers.yaml @@ -94,7 +94,7 @@ spec: items: properties: host: - description: "The host from which the action described in the ACL rule is allowed or denied." + description: "The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host." type: "string" operation: description: "Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All." diff --git a/crd-catalog/volcano-sh/volcano/batch.volcano.sh/v1alpha1/jobs.yaml b/crd-catalog/volcano-sh/volcano/batch.volcano.sh/v1alpha1/jobs.yaml index c13adb258..42123c70b 100644 --- a/crd-catalog/volcano-sh/volcano/batch.volcano.sh/v1alpha1/jobs.yaml +++ b/crd-catalog/volcano-sh/volcano/batch.volcano.sh/v1alpha1/jobs.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "jobs.batch.volcano.sh" spec: group: "batch.volcano.sh" @@ -196,6 +196,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -242,10 +243,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -277,6 +280,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -310,6 +314,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -353,6 +358,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -386,6 +392,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -427,6 +434,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -460,6 +468,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -503,6 +512,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -536,6 +546,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -581,6 +592,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -590,6 +602,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -605,6 +618,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -616,6 +630,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -631,6 +646,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -640,6 +656,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -1235,6 +1252,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -1244,6 +1262,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -1259,6 +1278,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -1270,6 +1290,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1285,6 +1306,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -1294,6 +1316,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -1863,6 +1886,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -1895,6 +1919,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -1904,6 +1929,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -1919,6 +1945,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -1930,6 +1957,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1945,6 +1973,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -1954,6 +1983,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -2688,6 +2718,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -2781,6 +2812,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -2797,6 +2829,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -2827,6 +2860,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -2838,6 +2872,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -2864,6 +2899,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -2884,6 +2920,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -2941,6 +2978,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -2997,6 +3035,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3045,6 +3084,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -3129,6 +3169,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -3212,6 +3253,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -3245,6 +3287,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -3259,6 +3302,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -3279,6 +3323,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -3306,6 +3351,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -3360,6 +3406,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -3381,6 +3428,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -3432,6 +3480,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -3488,6 +3537,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -3544,6 +3594,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3635,9 +3686,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/volcano-sh/volcano/bus.volcano.sh/v1alpha1/commands.yaml b/crd-catalog/volcano-sh/volcano/bus.volcano.sh/v1alpha1/commands.yaml index 35dd5a6c4..4c8d8c0c8 100644 --- a/crd-catalog/volcano-sh/volcano/bus.volcano.sh/v1alpha1/commands.yaml +++ b/crd-catalog/volcano-sh/volcano/bus.volcano.sh/v1alpha1/commands.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "commands.bus.volcano.sh" spec: group: "bus.volcano.sh" @@ -22,10 +22,10 @@ spec: description: "Action defines the action that will be took to the target object." type: "string" 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" message: description: "Human-readable message indicating details of this command." @@ -42,19 +42,19 @@ spec: description: "API version of the referent." type: "string" blockOwnerDeletion: - description: "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." + description: "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\nthe owner cannot be deleted from the key-value store until this\nreference is removed.\nSee https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion\nfor how the garbage collector interacts with this field and enforces the foreground deletion.\nDefaults to false.\nTo set this field, a user needs \"delete\" permission of the owner,\notherwise 422 (Unprocessable Entity) will be returned." type: "boolean" controller: description: "If true, this reference points to the managing controller." type: "boolean" 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.\nMore 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names" 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.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids" type: "string" required: - "apiVersion" @@ -62,12 +62,7 @@ spec: - "name" - "uid" type: "object" + x-kubernetes-map-type: "atomic" type: "object" served: true storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobflows.yaml b/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobflows.yaml index 35c0d6da3..49ad99ea8 100644 --- a/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobflows.yaml +++ b/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobflows.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "jobflows.flow.volcano.sh" spec: group: "flow.volcano.sh" @@ -187,9 +187,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobtemplates.yaml b/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobtemplates.yaml index a419e9d24..8ea570f56 100644 --- a/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobtemplates.yaml +++ b/crd-catalog/volcano-sh/volcano/flow.volcano.sh/v1alpha1/jobtemplates.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "jobtemplates.flow.volcano.sh" spec: group: "flow.volcano.sh" @@ -178,6 +178,7 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" weight: format: "int32" type: "integer" @@ -224,10 +225,12 @@ spec: type: "object" type: "array" type: "object" + x-kubernetes-map-type: "atomic" type: "array" required: - "nodeSelectorTerms" type: "object" + x-kubernetes-map-type: "atomic" type: "object" podAffinity: properties: @@ -259,6 +262,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -292,6 +296,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -335,6 +340,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -368,6 +374,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -409,6 +416,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -442,6 +450,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -485,6 +494,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -518,6 +528,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" namespaces: items: type: "string" @@ -563,6 +574,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -572,6 +584,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -587,6 +600,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -598,6 +612,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -613,6 +628,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -622,6 +638,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -1217,6 +1234,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -1226,6 +1244,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -1241,6 +1260,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -1252,6 +1272,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1267,6 +1288,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -1276,6 +1298,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -1845,6 +1868,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" type: "array" initContainers: items: @@ -1877,6 +1901,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" fieldRef: properties: apiVersion: @@ -1886,6 +1911,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" resourceFieldRef: properties: containerName: @@ -1901,6 +1927,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" secretKeyRef: properties: key: @@ -1912,6 +1939,7 @@ spec: required: - "key" type: "object" + x-kubernetes-map-type: "atomic" type: "object" required: - "name" @@ -1927,6 +1955,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" prefix: type: "string" secretRef: @@ -1936,6 +1965,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" type: "object" type: "array" image: @@ -2670,6 +2700,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" matchLabelKeys: items: type: "string" @@ -2763,6 +2794,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -2779,6 +2811,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeID: type: "string" required: @@ -2809,6 +2842,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" csi: properties: driver: @@ -2820,6 +2854,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" readOnly: type: "boolean" volumeAttributes: @@ -2846,6 +2881,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -2866,6 +2902,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -2923,6 +2960,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -2979,6 +3017,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3027,6 +3066,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" required: - "driver" type: "object" @@ -3111,6 +3151,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" targetPortal: type: "string" required: @@ -3194,6 +3235,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" name: type: "string" optional: @@ -3227,6 +3269,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" downwardAPI: properties: items: @@ -3241,6 +3284,7 @@ spec: required: - "fieldPath" type: "object" + x-kubernetes-map-type: "atomic" mode: format: "int32" type: "integer" @@ -3261,6 +3305,7 @@ spec: required: - "resource" type: "object" + x-kubernetes-map-type: "atomic" required: - "path" type: "object" @@ -3288,6 +3333,7 @@ spec: optional: type: "boolean" type: "object" + x-kubernetes-map-type: "atomic" serviceAccountToken: properties: audience: @@ -3342,6 +3388,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" user: type: "string" required: @@ -3363,6 +3410,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" sslEnabled: type: "boolean" storageMode: @@ -3414,6 +3462,7 @@ spec: name: type: "string" type: "object" + x-kubernetes-map-type: "atomic" volumeName: type: "string" volumeNamespace: @@ -3470,6 +3519,7 @@ spec: - "kind" - "name" type: "object" + x-kubernetes-map-type: "atomic" dataSourceRef: properties: apiGroup: @@ -3526,6 +3576,7 @@ spec: type: "string" type: "object" type: "object" + x-kubernetes-map-type: "atomic" storageClassName: type: "string" volumeAttributesClassName: @@ -3554,9 +3605,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/volcano-sh/volcano/nodeinfo.volcano.sh/v1alpha1/numatopologies.yaml b/crd-catalog/volcano-sh/volcano/nodeinfo.volcano.sh/v1alpha1/numatopologies.yaml index e78552ead..1021f9d48 100644 --- a/crd-catalog/volcano-sh/volcano/nodeinfo.volcano.sh/v1alpha1/numatopologies.yaml +++ b/crd-catalog/volcano-sh/volcano/nodeinfo.volcano.sh/v1alpha1/numatopologies.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "numatopologies.nodeinfo.volcano.sh" spec: group: "nodeinfo.volcano.sh" @@ -21,10 +21,10 @@ spec: description: "Numatopology is the Schema for the Numatopologies 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" @@ -42,7 +42,7 @@ spec: socket: type: "integer" type: "object" - description: "Specifies the cpu topology info Key is cpu id" + description: "Specifies the cpu topology info\nKey is cpu id" type: "object" numares: additionalProperties: @@ -53,7 +53,7 @@ spec: capacity: type: "integer" type: "object" - description: "Specifies the numa info for the resource Key is resource name" + description: "Specifies the numa info for the resource\nKey is resource name" type: "object" policies: additionalProperties: @@ -63,15 +63,9 @@ spec: resReserved: additionalProperties: type: "string" - description: "Specifies the reserved resource of the node Key is resource name" + description: "Specifies the reserved resource of the node\nKey is resource name" type: "object" type: "object" type: "object" served: true storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/podgroups.yaml b/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/podgroups.yaml index 8485506c0..ccbe65630 100644 --- a/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/podgroups.yaml +++ b/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/podgroups.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "podgroups.scheduling.volcano.sh" spec: group: "scheduling.volcano.sh" @@ -39,18 +39,18 @@ spec: description: "PodGroup is a collection of Pod; used for batch workload." 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" spec: - description: "Specification of the desired behavior of the pod group. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + description: "Specification of the desired behavior of the pod group.\nMore info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" properties: minMember: - description: "MinMember defines the minimal number of members/tasks to run the pod group; if there's not enough resources to start all tasks, the scheduler will not start anyone." + description: "MinMember defines the minimal number of members/tasks to run the pod group;\nif there's not enough resources to start all tasks, the scheduler\nwill not start anyone." format: "int32" type: "integer" minResources: @@ -60,23 +60,23 @@ 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: "MinResources defines the minimal resource of members/tasks to run the pod group; if there's not enough resources to start all tasks, the scheduler will not start anyone." + description: "MinResources defines the minimal resource of members/tasks to run the pod group;\nif there's not enough resources to start all tasks, the scheduler\nwill not start anyone." type: "object" minTaskMember: additionalProperties: format: "int32" type: "integer" - description: "MinTaskMember defines the minimal number of pods to run each task in the pod group; if there's not enough resources to start each task, the scheduler will not start anyone." + description: "MinTaskMember defines the minimal number of pods to run each task in the pod group;\nif there's not enough resources to start each task, the scheduler\nwill not start anyone." type: "object" priorityClassName: - description: "If specified, indicates the PodGroup's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the PodGroup priority will be default or zero if there is no default." + description: "If specified, indicates the PodGroup's priority. \"system-node-critical\" and\n\"system-cluster-critical\" are two special keywords which indicate the\nhighest priorities with the former being the highest priority. Any other\nname must be defined by creating a PriorityClass object with that name.\nIf not specified, the PodGroup priority will be default or zero if there is no\ndefault." type: "string" queue: - description: "Queue defines the queue to allocate resource for PodGroup; if queue does not exist, the PodGroup will not be scheduled. Defaults to `default` Queue with the lowest weight." + description: "Queue defines the queue to allocate resource for PodGroup; if queue does not exist,\nthe PodGroup will not be scheduled. Defaults to `default` Queue with the lowest weight." type: "string" type: "object" status: - description: "Status represents the current information about a pod group. This data may not be up to date." + description: "Status represents the current information about a pod group.\nThis data may not be up to date." properties: conditions: description: "The conditions of PodGroup." @@ -124,9 +124,3 @@ spec: served: true storage: true subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/queues.yaml b/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/queues.yaml index 45296792b..0907e09fc 100644 --- a/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/queues.yaml +++ b/crd-catalog/volcano-sh/volcano/scheduling.volcano.sh/v1beta1/queues.yaml @@ -2,7 +2,7 @@ apiVersion: "apiextensions.k8s.io/v1" kind: "CustomResourceDefinition" metadata: annotations: - controller-gen.kubebuilder.io/version: "v0.6.0" + controller-gen.kubebuilder.io/version: "v0.14.0" name: "queues.scheduling.volcano.sh" spec: group: "scheduling.volcano.sh" @@ -22,15 +22,15 @@ spec: description: "Queue is a queue of PodGroup." 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.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: "string" metadata: type: "object" spec: - description: "Specification of the desired behavior of the queue. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + description: "Specification of the desired behavior of the queue.\nMore info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" properties: affinity: description: "If specified, the pod owned by the queue will be scheduled with constraint" @@ -69,6 +69,15 @@ spec: x-kubernetes-int-or-string: true description: "ResourceList is a set of (resource name, quantity) pairs." type: "object" + deserved: + 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: "The amount of resources configured by the user. This part of resource can be shared with other queues and reclaimed back." + type: "object" extendClusters: description: "extendCluster indicate the jobs in this Queue will be dispatched to these clusters." items: @@ -177,9 +186,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crd-catalog/zalando/postgres-operator/acid.zalan.do/v1/operatorconfigurations.yaml b/crd-catalog/zalando/postgres-operator/acid.zalan.do/v1/operatorconfigurations.yaml index 7e4cd4041..cfe3a6508 100644 --- a/crd-catalog/zalando/postgres-operator/acid.zalan.do/v1/operatorconfigurations.yaml +++ b/crd-catalog/zalando/postgres-operator/acid.zalan.do/v1/operatorconfigurations.yaml @@ -208,6 +208,9 @@ spec: enable_readiness_probe: default: false type: "boolean" + enable_secrets_deletion: + default: true + type: "boolean" enable_sidecars: default: true type: "boolean" diff --git a/kube-custom-resources-rs/Cargo.toml b/kube-custom-resources-rs/Cargo.toml index 5b90aee7d..ffd51d50e 100644 --- a/kube-custom-resources-rs/Cargo.toml +++ b/kube-custom-resources-rs/Cargo.toml @@ -70,6 +70,7 @@ autoscaling_karmada_io = [] awx_ansible_com = [] azure_microsoft_com = [] b3scale_infra_run = [] +b3scale_io = [] batch_volcano_sh = [] beat_k8s_elastic_co = [] beegfs_csi_netapp_com = [] 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 e74ba0594..db336a312 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 @@ -463,6 +463,9 @@ pub struct ChallengeSolverDns01Route53 { /// see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessKeyIDSecretRef")] pub access_key_id_secret_ref: Option, + /// Auth configures how cert-manager authenticates. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub auth: Option, /// If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostedZoneID")] pub hosted_zone_id: Option, @@ -498,6 +501,40 @@ pub struct ChallengeSolverDns01Route53AccessKeyIdSecretRef { pub name: String, } +/// Auth configures how cert-manager authenticates. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ChallengeSolverDns01Route53Auth { + /// Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity + /// by passing a bound ServiceAccount token. + pub kubernetes: ChallengeSolverDns01Route53AuthKubernetes, +} + +/// Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity +/// by passing a bound ServiceAccount token. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ChallengeSolverDns01Route53AuthKubernetes { + /// A reference to a service account that will be used to request a bound + /// token (also known as "projected token"). To use this field, you must + /// configure an RBAC rule to let cert-manager request a token. + #[serde(rename = "serviceAccountRef")] + pub service_account_ref: ChallengeSolverDns01Route53AuthKubernetesServiceAccountRef, +} + +/// A reference to a service account that will be used to request a bound +/// token (also known as "projected token"). To use this field, you must +/// configure an RBAC rule to let cert-manager request a token. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ChallengeSolverDns01Route53AuthKubernetesServiceAccountRef { + /// TokenAudiences is an optional list of audiences to include in the + /// token passed to AWS. The default token consisting of the issuer's namespace + /// and name is always included. + /// If unset the audience defaults to `sts.amazonaws.com`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub audiences: Option>, + /// Name of the ServiceAccount used to request a token. + pub name: String, +} + /// The SecretAccessKey is used for authentication. /// If neither the Access Key nor Key ID are set, we fall-back to using env /// vars, shared credentials file or AWS Instance metadata, diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs index 70c851ba9..6ea0457e4 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs @@ -41,9 +41,6 @@ pub struct ClusterDefinitionSpec { /// Deprecated: Use ComponentDefinition instead. This type is deprecated as of version 0.8. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterDefinitionComponentDefs { - /// Defines the built-in metrics exporter container. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "builtinMonitorContainer")] - pub builtin_monitor_container: Option, /// Defines well-known database component name, such as mongos(mongodb), proxy(redis), mariadb(mysql). #[serde(default, skip_serializing_if = "Option::is_none", rename = "characterType")] pub character_type: Option, @@ -62,12 +59,18 @@ pub struct ClusterDefinitionComponentDefs { /// Description of the component definition. #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, + /// Defines the metrics exporter. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exporter: Option, /// Defines the behavior of horizontal scale. #[serde(default, skip_serializing_if = "Option::is_none", rename = "horizontalScalePolicy")] pub horizontal_scale_policy: Option, /// Specify the logging files which can be observed and configured by cluster users. #[serde(default, skip_serializing_if = "Option::is_none", rename = "logConfigs")] pub log_configs: Option>, + /// Deprecated since v0.9 monitor is monitoring config which provided by provider. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub monitor: Option, /// This name could be used as default name of `cluster.spec.componentSpecs.name`, and needs to conform with same validation rules as `cluster.spec.componentSpecs.name`, currently complying with IANA Service Naming rule. This name will apply to cluster objects as the value of label "apps.kubeblocks.io/component-name". pub name: String, /// Defines the pod spec template of component. @@ -94,9 +97,6 @@ pub struct ClusterDefinitionComponentDefs { /// Used to declare the service reference of the current component. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceRefDeclarations")] pub service_ref_declarations: Option>, - /// Defines the sidecar containers that will be attached to the component's main container. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "sidecarContainerSpecs")] - pub sidecar_container_specs: Option>, /// Defines spec for `Stateful` workloads. #[serde(default, skip_serializing_if = "Option::is_none", rename = "statefulSpec")] pub stateful_spec: Option, @@ -124,31 +124,6 @@ pub struct ClusterDefinitionComponentDefs { pub workload_type: ClusterDefinitionComponentDefsWorkloadType, } -/// Defines the built-in metrics exporter container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsBuiltinMonitorContainer { - /// Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPath")] - pub metrics_path: Option, - /// Specifies the port name to scrape for metrics. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPort")] - pub metrics_port: Option, - /// Specifies the name of the built-in metrics exporter container. - pub name: String, - /// Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub protocol: Option, -} - -/// Defines the built-in metrics exporter container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ClusterDefinitionComponentDefsBuiltinMonitorContainerProtocol { - #[serde(rename = "http")] - Http, - #[serde(rename = "https")] - Https, -} - /// ComponentDefRef is used to select the component and its fields to be referenced. /// Deprecated since v0.8. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -417,6 +392,32 @@ pub struct ClusterDefinitionComponentDefsCustomLabelSpecsResources { pub selector: Option>, } +/// Defines the metrics exporter. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsExporter { + /// Specifies the name of the built-in metrics exporter container. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + /// Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapePath")] + pub scrape_path: Option, + /// Specifies the port name to scrape for metrics. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapePort")] + pub scrape_port: Option, + /// Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapeScheme")] + pub scrape_scheme: Option, +} + +/// Defines the metrics exporter. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum ClusterDefinitionComponentDefsExporterScrapeScheme { + #[serde(rename = "http")] + Http, + #[serde(rename = "https")] + Https, +} + /// Defines the behavior of horizontal scale. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterDefinitionComponentDefsHorizontalScalePolicy { @@ -451,6 +452,28 @@ pub struct ClusterDefinitionComponentDefsLogConfigs { pub name: String, } +/// Deprecated since v0.9 monitor is monitoring config which provided by provider. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsMonitor { + /// builtIn is a switch to enable KubeBlocks builtIn monitoring. If BuiltIn is set to true, monitor metrics will be scraped automatically. If BuiltIn is set to false, the provider should set ExporterConfig and Sidecar container own. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "builtIn")] + pub built_in: Option, + /// exporterConfig provided by provider, which specify necessary information to Time Series Database. exporterConfig is valid when builtIn is false. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "exporterConfig")] + pub exporter_config: Option, +} + +/// exporterConfig provided by provider, which specify necessary information to Time Series Database. exporterConfig is valid when builtIn is false. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsMonitorExporterConfig { + /// scrapePath is exporter url path for Time Series Database to scrape metrics. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapePath")] + pub scrape_path: Option, + /// scrapePort is exporter port for Time Series Database to scrape metrics. + #[serde(rename = "scrapePort")] + pub scrape_port: IntOrString, +} + /// Defines the pod spec template of component. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterDefinitionComponentDefsPodSpec { @@ -5101,832 +5124,6 @@ pub struct ClusterDefinitionComponentDefsServiceRefDeclarationsServiceRefDeclara pub service_version: String, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecs { - /// 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, - /// Defines the function or purpose of the container, such as the monitor type sidecar. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub monitor: 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, - /// Resources resize policy for the container. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "resizePolicy")] - pub resize_policy: 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, - /// RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "restartPolicy")] - pub restart_policy: 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnv { - /// Name of the environment variable. Must be a C_IDENTIFIER. - pub name: String, - /// Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". - #[serde(default, skip_serializing_if = "Option::is_none")] - pub value: Option, - /// Source for the environment variable's value. Cannot be used if value is not empty. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] - pub value_from: Option, -} - -/// Source for the environment variable's value. Cannot be used if value is not empty. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvValueFrom { - /// Selects a key of a ConfigMap. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] - pub config_map_key_ref: Option, - /// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] - pub field_ref: Option, - /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] - pub resource_field_ref: Option, - /// Selects a key of a secret in the pod's namespace - #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] - pub secret_key_ref: Option, -} - -/// Selects a key of a ConfigMap. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvValueFromConfigMapKeyRef { - /// The key to select. - pub key: String, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? - #[serde(default, skip_serializing_if = "Option::is_none")] - pub name: Option, - /// Specify whether the ConfigMap or its key must be defined - #[serde(default, skip_serializing_if = "Option::is_none")] - pub optional: Option, -} - -/// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvValueFromFieldRef { - /// Version of the schema the FieldPath is written in terms of, defaults to "v1". - #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] - pub api_version: Option, - /// Path of the field to select in the specified API version. - #[serde(rename = "fieldPath")] - pub field_path: String, -} - -/// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvValueFromResourceFieldRef { - /// Container name: required for volumes, optional for env vars - #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] - pub container_name: Option, - /// Specifies the output format of the exposed resources, defaults to "1" - #[serde(default, skip_serializing_if = "Option::is_none")] - pub divisor: Option, - /// Required: resource to select - pub resource: String, -} - -/// Selects a key of a secret in the pod's namespace -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvValueFromSecretKeyRef { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvFrom { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvFromConfigMapRef { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsEnvFromSecretRef { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecycle { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePostStart { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePostStartExec { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePostStartHttpGet { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePostStartHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePostStartTcpSocket { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePreStop { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePreStopExec { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePreStopHttpGet { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePreStopHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLifecyclePreStopTcpSocket { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLivenessProbe { - /// 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. - #[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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLivenessProbeExec { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLivenessProbeGrpc { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLivenessProbeHttpGet { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLivenessProbeHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - pub name: String, - /// The header field value - pub value: String, -} - -/// TCPSocket specifies an action involving a TCP port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsLivenessProbeTcpSocket { - /// 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, -} - -/// Defines the function or purpose of the container, such as the monitor type sidecar. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsMonitor { - /// Defines the kind of monitor, such as metrics or logs. - pub kind: ClusterDefinitionComponentDefsSidecarContainerSpecsMonitorKind, - /// Defines the scrape configuration for the prometheus. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapeConfig")] - pub scrape_config: Option, -} - -/// Defines the function or purpose of the container, such as the monitor type sidecar. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ClusterDefinitionComponentDefsSidecarContainerSpecsMonitorKind { - #[serde(rename = "metrics")] - Metrics, - #[serde(rename = "logs")] - Logs, - #[serde(rename = "traces")] - Traces, -} - -/// Defines the scrape configuration for the prometheus. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsMonitorScrapeConfig { - /// Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPath")] - pub metrics_path: Option, - /// Specifies the port name to scrape for metrics. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPort")] - pub metrics_port: Option, - /// Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub protocol: Option, -} - -/// Defines the scrape configuration for the prometheus. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ClusterDefinitionComponentDefsSidecarContainerSpecsMonitorScrapeConfigProtocol { - #[serde(rename = "http")] - Http, - #[serde(rename = "https")] - Https, -} - -/// ContainerPort represents a network port in a single container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsPorts { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsReadinessProbe { - /// 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. - #[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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsReadinessProbeExec { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsReadinessProbeGrpc { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsReadinessProbeHttpGet { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsReadinessProbeHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - pub name: String, - /// The header field value - pub value: String, -} - -/// TCPSocket specifies an action involving a TCP port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsReadinessProbeTcpSocket { - /// 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, -} - -/// ContainerResizePolicy represents resource resize policy for the container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsResizePolicy { - /// Name of the resource to which this resource resize policy applies. Supported values: cpu, memory. - #[serde(rename = "resourceName")] - pub resource_name: String, - /// Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired. - #[serde(rename = "restartPolicy")] - pub restart_policy: String, -} - -/// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsResources { - /// 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. 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>, -} - -/// ResourceClaim references one entry in PodSpec.ResourceClaims. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsResourcesClaims { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsSecurityContext { - /// 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 ClusterDefinitionComponentDefsSidecarContainerSpecsSecurityContextCapabilities { - /// 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 ClusterDefinitionComponentDefsSidecarContainerSpecsSecurityContextSeLinuxOptions { - /// 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 ClusterDefinitionComponentDefsSidecarContainerSpecsSecurityContextSeccompProfile { - /// 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 ClusterDefinitionComponentDefsSidecarContainerSpecsSecurityContextWindowsOptions { - /// 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, -} - -/// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsStartupProbe { - /// 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. - #[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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsStartupProbeExec { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsStartupProbeGrpc { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsStartupProbeHttpGet { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsStartupProbeHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - pub name: String, - /// The header field value - pub value: String, -} - -/// TCPSocket specifies an action involving a TCP port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsStartupProbeTcpSocket { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsVolumeDevices { - /// 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, PartialEq)] -pub struct ClusterDefinitionComponentDefsSidecarContainerSpecsVolumeMounts { - /// 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, -} - /// Defines spec for `Stateful` workloads. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterDefinitionComponentDefsStatefulSpec { 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 2de124653..6fbee0363 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 @@ -200,6 +200,12 @@ pub struct ClusterComponentSpecs { pub component_def_ref: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub configs: Option>, + /// Determines whether metrics exporter information is annotated on the Component's headless Service. + /// If set to true, the following annotations will not be patched into the Service: + /// - "monitor.kubeblocks.io/path" - "monitor.kubeblocks.io/port" - "monitor.kubeblocks.io/scheme" + /// These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableExporter")] + pub disable_exporter: Option, /// Specifies which types of logs should be collected for the Component. The log types are defined in the `componentDefinition.spec.logConfigs` field with the LogConfig entries. /// The elements in the `enabledLogs` array correspond to the names of the LogConfig entries. For example, if the `componentDefinition.spec.logConfigs` defines LogConfig entries with names "slow_query_log" and "error_log", you can enable the collection of these logs by including their names in the `enabledLogs` array: ```yaml enabledLogs: - slow_query_log - error_log ``` #[serde(default, skip_serializing_if = "Option::is_none", rename = "enabledLogs")] @@ -213,12 +219,12 @@ pub struct ClusterComponentSpecs { /// Specifies the configuration for the TLS certificates issuer. It allows defining the issuer name and the reference to the secret containing the TLS certificates and key. The secret should contain the CA certificate, TLS certificate, and private key in the specified keys. Required when TLS is enabled. #[serde(default, skip_serializing_if = "Option::is_none")] pub issuer: Option, - /// Determines whether metrics exporter information is annotated on the Component's headless Service. + /// Deprecated since v0.9 Determines whether metrics exporter information is annotated on the Component's headless Service. /// If set to true, the following annotations will be patched into the Service: /// - "monitor.kubeblocks.io/path" - "monitor.kubeblocks.io/port" - "monitor.kubeblocks.io/scheme" /// These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "monitorEnabled")] - pub monitor_enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub monitor: Option, /// Specifies the Component's name. It's part of the Service DNS name and must comply with the IANA service naming rule. The name is optional when ClusterComponentSpec is used as a template (e.g., in `shardingSpec`), but required otherwise. /// TODO +kubebuilder:validation:XValidation:rule="self == oldSelf",message="name is immutable" #[serde(default, skip_serializing_if = "Option::is_none")] @@ -256,9 +262,6 @@ pub struct ClusterComponentSpecs { /// Overrides services defined in referenced ComponentDefinition and expose endpoints that can be accessed by clients. #[serde(default, skip_serializing_if = "Option::is_none")] pub services: Option>, - /// Defines the sidecar containers that will be attached to the Component's main container. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub sidecars: Option>, /// Defines the strategy for switchover and failover when workloadType is Replication. /// Deprecated since v0.9. This field is maintained for backward compatibility and its use is discouraged. Existing usage should be updated to the current preferred approach to avoid compatibility issues in future releases. #[serde(default, skip_serializing_if = "Option::is_none", rename = "switchPolicy")] @@ -3146,6 +3149,12 @@ pub struct ClusterShardingSpecsTemplate { pub component_def_ref: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub configs: Option>, + /// Determines whether metrics exporter information is annotated on the Component's headless Service. + /// If set to true, the following annotations will not be patched into the Service: + /// - "monitor.kubeblocks.io/path" - "monitor.kubeblocks.io/port" - "monitor.kubeblocks.io/scheme" + /// These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableExporter")] + pub disable_exporter: Option, /// Specifies which types of logs should be collected for the Component. The log types are defined in the `componentDefinition.spec.logConfigs` field with the LogConfig entries. /// The elements in the `enabledLogs` array correspond to the names of the LogConfig entries. For example, if the `componentDefinition.spec.logConfigs` defines LogConfig entries with names "slow_query_log" and "error_log", you can enable the collection of these logs by including their names in the `enabledLogs` array: ```yaml enabledLogs: - slow_query_log - error_log ``` #[serde(default, skip_serializing_if = "Option::is_none", rename = "enabledLogs")] @@ -3159,12 +3168,12 @@ pub struct ClusterShardingSpecsTemplate { /// Specifies the configuration for the TLS certificates issuer. It allows defining the issuer name and the reference to the secret containing the TLS certificates and key. The secret should contain the CA certificate, TLS certificate, and private key in the specified keys. Required when TLS is enabled. #[serde(default, skip_serializing_if = "Option::is_none")] pub issuer: Option, - /// Determines whether metrics exporter information is annotated on the Component's headless Service. + /// Deprecated since v0.9 Determines whether metrics exporter information is annotated on the Component's headless Service. /// If set to true, the following annotations will be patched into the Service: /// - "monitor.kubeblocks.io/path" - "monitor.kubeblocks.io/port" - "monitor.kubeblocks.io/scheme" /// These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "monitorEnabled")] - pub monitor_enabled: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub monitor: Option, /// Specifies the Component's name. It's part of the Service DNS name and must comply with the IANA service naming rule. The name is optional when ClusterComponentSpec is used as a template (e.g., in `shardingSpec`), but required otherwise. /// TODO +kubebuilder:validation:XValidation:rule="self == oldSelf",message="name is immutable" #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3202,9 +3211,6 @@ pub struct ClusterShardingSpecsTemplate { /// Overrides services defined in referenced ComponentDefinition and expose endpoints that can be accessed by clients. #[serde(default, skip_serializing_if = "Option::is_none")] pub services: Option>, - /// Defines the sidecar containers that will be attached to the Component's main container. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub sidecars: Option>, /// Defines the strategy for switchover and failover when workloadType is Replication. /// Deprecated since v0.9. This field is maintained for backward compatibility and its use is discouraged. Existing usage should be updated to the current preferred approach to avoid compatibility issues in future releases. #[serde(default, skip_serializing_if = "Option::is_none", rename = "switchPolicy")] diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/componentdefinitions.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/componentdefinitions.rs index c0759912d..7a793ff4a 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/componentdefinitions.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/componentdefinitions.rs @@ -22,9 +22,6 @@ pub struct ComponentDefinitionSpec { /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Defines the built-in metrics exporter container. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "builtinMonitorContainer")] - pub builtin_monitor_container: Option, /// Specifies the configuration file templates and volume mount parameters used by the Component. It also includes descriptions of the parameters in the ConfigMaps, such as value range limitations. /// This field specifies a list of templates that will be rendered into Component containers' configuration files. Each template is represented as a ConfigMap and may contain multiple configuration files, with each file being a key in the ConfigMap. /// The rendered configuration files will be mounted into the Component's containers according to the specified volume mount parameters. @@ -34,6 +31,9 @@ pub struct ComponentDefinitionSpec { /// Provides a brief and concise explanation of the Component's purpose, functionality, and any relevant details. It serves as a quick reference for users to understand the Component's role and characteristics. #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, + /// Defines the built-in metrics exporter container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exporter: Option, /// Specifies the host network configuration for the Component. /// When `hostNetwork` option is enabled, the Pods share the host's network namespace and can directly access the host's network interfaces. This means that if multiple Pods need to use the same port, they cannot run on the same host simultaneously due to port conflicts. /// The DNSPolicy field in the Pod spec determines how containers within the Pod perform DNS resolution. When using hostNetwork, the operator will set the DNSPolicy to 'ClusterFirstWithHostNet'. With this policy, DNS queries will first go through the K8s cluster's DNS service. If the query fails, it will fall back to the host's DNS settings. @@ -61,6 +61,9 @@ pub struct ComponentDefinitionSpec { /// A default value of 0 seconds means the Pod is considered available as soon as it enters the ready state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, + /// Deprecated since v0.9 monitor is monitoring config which provided by provider. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub monitor: Option, /// Defines the namespaced policy rules required by the Component. /// The `policyRules` field is an array of `rbacv1.PolicyRule` objects that define the policy rules needed by the Component to operate within a namespace. These policy rules determine the permissions and verbs the Component is allowed to perform on Kubernetes resources within the namespace. /// The purpose of this field is to automatically generate the necessary RBAC roles for the Component based on the specified policy rules. This ensures that the Pods in the Component has appropriate permissions to function. @@ -78,10 +81,6 @@ pub struct ComponentDefinitionSpec { /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "replicasLimit")] pub replicas_limit: Option, - /// This field has been deprecated since v0.9. This field is maintained for backward compatibility and its use is discouraged. Existing usage should be updated to the current preferred approach to avoid compatibility issues in future releases. - /// This field is immutable. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleArbitrator")] - pub role_arbitrator: Option, /// Enumerate all possible roles assigned to each replica of the Component, influencing its behavior. /// A replica can have zero to multiple roles. KubeBlocks operator determines the roles of each replica by invoking the `lifecycleActions.roleProbe` method. This action returns a list of roles for each replica, and the returned roles must be predefined in the `roles` field. /// The roles assigned to a replica can influence various aspects of the Component's behavior, such as: @@ -133,9 +132,6 @@ pub struct ComponentDefinitionSpec { /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none")] pub services: Option>, - /// Defines the sidecar containers that will be attached to the component's main container. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "sidecarContainerSpecs")] - pub sidecar_container_specs: Option>, /// An array of `SystemAccount` objects that define the system accounts needed for the management operations of the Component. /// Each `SystemAccount` includes: /// - Account name. - The SQL statement template: Used to create the system account. - Password Source: Either generated based on certain rules or retrieved from a Secret. @@ -153,7 +149,7 @@ pub struct ComponentDefinitionSpec { /// Defines variables which are determined after Cluster instantiation and reflect dynamic or runtime attributes of instantiated Clusters. These variables serve as placeholders for setting environment variables in Pods and Actions, or for rendering configuration and script templates before actual values are finalized. /// These variables are placed in front of the environment variables declared in the Pod if used as environment variables. /// Variable values can be sourced from: - /// - ConfigMap: Select and extract a value from a specific key within a ConfigMap. - Secret: Select and extract a value from a specific key within a Secret. - Pod: Retrieves values (including ports) from a selected Pod. - Service: Retrieves values (including address, port, NodePort) from a selected Service. Intended to obtain the address of a ComponentService within the same Cluster. - Credential: Retrieves account name and password from a SystemAccount variable. - ServiceRef: Retrieves address, port, account name and password from a selected ServiceRefDeclaration. Designed to obtain the address bound to a ServiceRef, such as a ClusterService or ComponentService of another cluster or an external service. - Component: Retrieves values from a selected Component, including replicas and instance name list. + /// - ConfigMap: Select and extract a value from a specific key within a ConfigMap. - Secret: Select and extract a value from a specific key within a Secret. - HostNetwork: Retrieves values (including ports) from host-network resources. - Service: Retrieves values (including address, port, NodePort) from a selected Service. Intended to obtain the address of a ComponentService within the same Cluster. - Credential: Retrieves account name and password from a SystemAccount variable. - ServiceRef: Retrieves address, port, account name and password from a selected ServiceRefDeclaration. Designed to obtain the address bound to a ServiceRef, such as a ClusterService or ComponentService of another cluster or an external service. - Component: Retrieves values from a selected Component, including replicas and instance name list. /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none")] pub vars: Option>, @@ -166,31 +162,6 @@ pub struct ComponentDefinitionSpec { pub volumes: Option>, } -/// Defines the built-in metrics exporter container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionBuiltinMonitorContainer { - /// Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPath")] - pub metrics_path: Option, - /// Specifies the port name to scrape for metrics. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPort")] - pub metrics_port: Option, - /// Specifies the name of the built-in metrics exporter container. - pub name: String, - /// Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub protocol: Option, -} - -/// Defines the built-in metrics exporter container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ComponentDefinitionBuiltinMonitorContainerProtocol { - #[serde(rename = "http")] - Http, - #[serde(rename = "https")] - Https, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ComponentDefinitionConfigs { /// Specifies the containers to inject the ConfigMap parameters as environment variables. @@ -272,6 +243,32 @@ pub enum ComponentDefinitionConfigsLegacyRenderedConfigSpecPolicy { None, } +/// Defines the built-in metrics exporter container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ComponentDefinitionExporter { + /// Specifies the name of the built-in metrics exporter container. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + /// Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapePath")] + pub scrape_path: Option, + /// Specifies the port name to scrape for metrics. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapePort")] + pub scrape_port: Option, + /// Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapeScheme")] + pub scrape_scheme: Option, +} + +/// Defines the built-in metrics exporter container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum ComponentDefinitionExporterScrapeScheme { + #[serde(rename = "http")] + Http, + #[serde(rename = "https")] + Https, +} + /// Specifies the host network configuration for the Component. /// When `hostNetwork` option is enabled, the Pods share the host's network namespace and can directly access the host's network interfaces. This means that if multiple Pods need to use the same port, they cannot run on the same host simultaneously due to port conflicts. /// The DNSPolicy field in the Pod spec determines how containers within the Pod perform DNS resolution. When using hostNetwork, the operator will set the DNSPolicy to 'ClusterFirstWithHostNet'. With this policy, DNS queries will first go through the K8s cluster's DNS service. If the query fails, it will fall back to the host's DNS settings. @@ -3408,6 +3405,28 @@ pub struct ComponentDefinitionLogConfigs { pub name: String, } +/// Deprecated since v0.9 monitor is monitoring config which provided by provider. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ComponentDefinitionMonitor { + /// builtIn is a switch to enable KubeBlocks builtIn monitoring. If BuiltIn is set to true, monitor metrics will be scraped automatically. If BuiltIn is set to false, the provider should set ExporterConfig and Sidecar container own. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "builtIn")] + pub built_in: Option, + /// exporterConfig provided by provider, which specify necessary information to Time Series Database. exporterConfig is valid when builtIn is false. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "exporterConfig")] + pub exporter_config: Option, +} + +/// exporterConfig provided by provider, which specify necessary information to Time Series Database. exporterConfig is valid when builtIn is false. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ComponentDefinitionMonitorExporterConfig { + /// scrapePath is exporter url path for Time Series Database to scrape metrics. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapePath")] + pub scrape_path: Option, + /// scrapePort is exporter port for Time Series Database to scrape metrics. + #[serde(rename = "scrapePort")] + pub scrape_port: IntOrString, +} + /// PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ComponentDefinitionPolicyRules { @@ -3440,12 +3459,6 @@ pub struct ComponentDefinitionReplicasLimit { pub min_replicas: i32, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ComponentDefinitionRoleArbitrator { - External, - Lorry, -} - /// ReplicaRole represents a role that can be assumed by a component instance. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ComponentDefinitionRoles { @@ -7777,832 +7790,6 @@ pub struct ComponentDefinitionServicesSpecSessionAffinityConfigClientIp { pub timeout_seconds: Option, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecs { - /// 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, - /// Defines the function or purpose of the container, such as the monitor type sidecar. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub monitor: 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, - /// Resources resize policy for the container. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "resizePolicy")] - pub resize_policy: 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, - /// RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "restartPolicy")] - pub restart_policy: 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnv { - /// Name of the environment variable. Must be a C_IDENTIFIER. - pub name: String, - /// Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". - #[serde(default, skip_serializing_if = "Option::is_none")] - pub value: Option, - /// Source for the environment variable's value. Cannot be used if value is not empty. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] - pub value_from: Option, -} - -/// Source for the environment variable's value. Cannot be used if value is not empty. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvValueFrom { - /// Selects a key of a ConfigMap. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] - pub config_map_key_ref: Option, - /// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] - pub field_ref: Option, - /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] - pub resource_field_ref: Option, - /// Selects a key of a secret in the pod's namespace - #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] - pub secret_key_ref: Option, -} - -/// Selects a key of a ConfigMap. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvValueFromConfigMapKeyRef { - /// The key to select. - pub key: String, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? - #[serde(default, skip_serializing_if = "Option::is_none")] - pub name: Option, - /// Specify whether the ConfigMap or its key must be defined - #[serde(default, skip_serializing_if = "Option::is_none")] - pub optional: Option, -} - -/// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvValueFromFieldRef { - /// Version of the schema the FieldPath is written in terms of, defaults to "v1". - #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] - pub api_version: Option, - /// Path of the field to select in the specified API version. - #[serde(rename = "fieldPath")] - pub field_path: String, -} - -/// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvValueFromResourceFieldRef { - /// Container name: required for volumes, optional for env vars - #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] - pub container_name: Option, - /// Specifies the output format of the exposed resources, defaults to "1" - #[serde(default, skip_serializing_if = "Option::is_none")] - pub divisor: Option, - /// Required: resource to select - pub resource: String, -} - -/// Selects a key of a secret in the pod's namespace -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvValueFromSecretKeyRef { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvFrom { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvFromConfigMapRef { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsEnvFromSecretRef { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecycle { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePostStart { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePostStartExec { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePostStartHttpGet { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePostStartHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePostStartTcpSocket { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePreStop { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePreStopExec { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePreStopHttpGet { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePreStopHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLifecyclePreStopTcpSocket { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLivenessProbe { - /// 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. - #[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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLivenessProbeExec { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLivenessProbeGrpc { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLivenessProbeHttpGet { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLivenessProbeHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - pub name: String, - /// The header field value - pub value: String, -} - -/// TCPSocket specifies an action involving a TCP port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsLivenessProbeTcpSocket { - /// 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, -} - -/// Defines the function or purpose of the container, such as the monitor type sidecar. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsMonitor { - /// Defines the kind of monitor, such as metrics or logs. - pub kind: ComponentDefinitionSidecarContainerSpecsMonitorKind, - /// Defines the scrape configuration for the prometheus. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapeConfig")] - pub scrape_config: Option, -} - -/// Defines the function or purpose of the container, such as the monitor type sidecar. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ComponentDefinitionSidecarContainerSpecsMonitorKind { - #[serde(rename = "metrics")] - Metrics, - #[serde(rename = "logs")] - Logs, - #[serde(rename = "traces")] - Traces, -} - -/// Defines the scrape configuration for the prometheus. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsMonitorScrapeConfig { - /// Specifies the http/https url path to scrape for metrics. If empty, Prometheus uses the default value (e.g. `/metrics`). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPath")] - pub metrics_path: Option, - /// Specifies the port name to scrape for metrics. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "metricsPort")] - pub metrics_port: Option, - /// Specifies the schema to use for scraping. `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling. If empty, Prometheus uses the default value `http`. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub protocol: Option, -} - -/// Defines the scrape configuration for the prometheus. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ComponentDefinitionSidecarContainerSpecsMonitorScrapeConfigProtocol { - #[serde(rename = "http")] - Http, - #[serde(rename = "https")] - Https, -} - -/// ContainerPort represents a network port in a single container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsPorts { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsReadinessProbe { - /// 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. - #[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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsReadinessProbeExec { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsReadinessProbeGrpc { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsReadinessProbeHttpGet { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsReadinessProbeHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - pub name: String, - /// The header field value - pub value: String, -} - -/// TCPSocket specifies an action involving a TCP port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsReadinessProbeTcpSocket { - /// 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, -} - -/// ContainerResizePolicy represents resource resize policy for the container. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsResizePolicy { - /// Name of the resource to which this resource resize policy applies. Supported values: cpu, memory. - #[serde(rename = "resourceName")] - pub resource_name: String, - /// Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired. - #[serde(rename = "restartPolicy")] - pub restart_policy: String, -} - -/// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsResources { - /// 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. 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>, -} - -/// ResourceClaim references one entry in PodSpec.ResourceClaims. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsResourcesClaims { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsSecurityContext { - /// 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 ComponentDefinitionSidecarContainerSpecsSecurityContextCapabilities { - /// 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 ComponentDefinitionSidecarContainerSpecsSecurityContextSeLinuxOptions { - /// 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 ComponentDefinitionSidecarContainerSpecsSecurityContextSeccompProfile { - /// 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 ComponentDefinitionSidecarContainerSpecsSecurityContextWindowsOptions { - /// 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, -} - -/// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsStartupProbe { - /// 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. - #[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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsStartupProbeExec { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsStartupProbeGrpc { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsStartupProbeHttpGet { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsStartupProbeHttpGetHttpHeaders { - /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. - pub name: String, - /// The header field value - pub value: String, -} - -/// TCPSocket specifies an action involving a TCP port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsStartupProbeTcpSocket { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsVolumeDevices { - /// 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, PartialEq)] -pub struct ComponentDefinitionSidecarContainerSpecsVolumeMounts { - /// 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, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ComponentDefinitionSystemAccounts { /// Indicates if this account is the unique system initialization account (e.g., MySQL root). Only one system initialization account is permitted. @@ -8701,9 +7888,9 @@ pub struct ComponentDefinitionVarsValueFrom { /// Selects a defined var of a Credential (SystemAccount). #[serde(default, skip_serializing_if = "Option::is_none", rename = "credentialVarRef")] pub credential_var_ref: Option, - /// Selects a defined var of a Pod. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "podVarRef")] - pub pod_var_ref: Option, + /// Selects a defined var of host-network resources. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostNetworkVarRef")] + pub host_network_var_ref: Option, /// Selects a key of a Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] pub secret_key_ref: Option, @@ -8898,18 +8085,18 @@ pub enum ComponentDefinitionVarsValueFromCredentialVarRefUsername { Optional, } -/// Selects a defined var of a Pod. +/// Selects a defined var of host-network resources. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionVarsValueFromPodVarRef { +pub struct ComponentDefinitionVarsValueFromHostNetworkVarRef { /// CompDef specifies the definition used by the component that the referent object resident in. If not specified, the component itself will be used. #[serde(default, skip_serializing_if = "Option::is_none", rename = "compDef")] pub comp_def: Option, /// ContainerVars defines the vars that can be referenced from a Container. #[serde(default, skip_serializing_if = "Option::is_none")] - pub container: Option, + pub container: Option, /// This option defines the behavior when multiple component objects match the specified @CompDef. If not provided, an error will be raised when handling multiple matches. #[serde(default, skip_serializing_if = "Option::is_none", rename = "multipleClusterObjectOption")] - pub multiple_cluster_object_option: Option, + pub multiple_cluster_object_option: Option, /// Name of the referent object. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, @@ -8920,47 +8107,47 @@ pub struct ComponentDefinitionVarsValueFromPodVarRef { /// ContainerVars defines the vars that can be referenced from a Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionVarsValueFromPodVarRefContainer { +pub struct ComponentDefinitionVarsValueFromHostNetworkVarRefContainer { /// The name of the container. pub name: String, /// Container port to reference. #[serde(default, skip_serializing_if = "Option::is_none")] - pub port: Option, + pub port: Option, } /// Container port to reference. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionVarsValueFromPodVarRefContainerPort { +pub struct ComponentDefinitionVarsValueFromHostNetworkVarRefContainerPort { #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// VarOption defines whether a variable is required or optional. #[serde(default, skip_serializing_if = "Option::is_none")] - pub option: Option, + pub option: Option, } /// Container port to reference. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ComponentDefinitionVarsValueFromPodVarRefContainerPortOption { +pub enum ComponentDefinitionVarsValueFromHostNetworkVarRefContainerPortOption { Required, Optional, } /// This option defines the behavior when multiple component objects match the specified @CompDef. If not provided, an error will be raised when handling multiple matches. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOption { +pub struct ComponentDefinitionVarsValueFromHostNetworkVarRefMultipleClusterObjectOption { /// Define the options for handling combined variables. Valid only when the strategy is set to "combined". #[serde(default, skip_serializing_if = "Option::is_none", rename = "combinedOption")] - pub combined_option: Option, + pub combined_option: Option, /// Define the strategy for handling multiple cluster objects. - pub strategy: ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOptionStrategy, + pub strategy: ComponentDefinitionVarsValueFromHostNetworkVarRefMultipleClusterObjectOptionStrategy, } /// Define the options for handling combined variables. Valid only when the strategy is set to "combined". #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOptionCombinedOption { +pub struct ComponentDefinitionVarsValueFromHostNetworkVarRefMultipleClusterObjectOptionCombinedOption { /// The flatten format, default is: $(comp-name-1):value,$(comp-name-2):value. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flattenFormat")] - pub flatten_format: Option, + pub flatten_format: Option, /// If set, the existing variable will be kept, and a new variable will be defined with the specified suffix in pattern: $(var.name)_$(suffix). The new variable will be auto-created and placed behind the existing one. If not set, the existing variable will be reused with the value format defined below. #[serde(default, skip_serializing_if = "Option::is_none", rename = "newVarSuffix")] pub new_var_suffix: Option, @@ -8971,7 +8158,7 @@ pub struct ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOptionC /// The flatten format, default is: $(comp-name-1):value,$(comp-name-2):value. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOptionCombinedOptionFlattenFormat { +pub struct ComponentDefinitionVarsValueFromHostNetworkVarRefMultipleClusterObjectOptionCombinedOptionFlattenFormat { /// Pair delimiter. pub delimiter: String, /// Key-value delimiter. @@ -8981,7 +8168,7 @@ pub struct ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOptionC /// This option defines the behavior when multiple component objects match the specified @CompDef. If not provided, an error will be raised when handling multiple matches. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum ComponentDefinitionVarsValueFromPodVarRefMultipleClusterObjectOptionStrategy { +pub enum ComponentDefinitionVarsValueFromHostNetworkVarRefMultipleClusterObjectOptionStrategy { #[serde(rename = "individual")] Individual, #[serde(rename = "combined")] diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/components.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/components.rs index 779c9d7a0..38b8f9a57 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/components.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/components.rs @@ -30,6 +30,12 @@ pub struct ComponentSpec { pub comp_def: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub configs: Option>, + /// Determines whether metrics exporter information is annotated on the Component's headless Service. + /// If set to true, the following annotations will not be patched into the Service: + /// - "monitor.kubeblocks.io/path" - "monitor.kubeblocks.io/port" - "monitor.kubeblocks.io/scheme" + /// These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableExporter")] + pub disable_exporter: Option, /// Specifies which types of logs should be collected for the Cluster. The log types are defined in the `componentDefinition.spec.logConfigs` field with the LogConfig entries. /// The elements in the `enabledLogs` array correspond to the names of the LogConfig entries. For example, if the `componentDefinition.spec.logConfigs` defines LogConfig entries with names "slow_query_log" and "error_log", you can enable the collection of these logs by including their names in the `enabledLogs` array: ```yaml enabledLogs: - slow_query_log - error_log ``` #[serde(default, skip_serializing_if = "Option::is_none", rename = "enabledLogs")] @@ -40,12 +46,6 @@ pub struct ComponentSpec { /// The sum of replicas across all InstanceTemplates should not exceed the total number of Replicas specified for the Component. Any remaining replicas will be generated using the default template and will follow the default naming rules. #[serde(default, skip_serializing_if = "Option::is_none")] pub instances: Option>, - /// Determines whether metrics exporter information is annotated on the Component's headless Service. - /// If set to true, the following annotations will be patched into the Service: - /// - "monitor.kubeblocks.io/path" - "monitor.kubeblocks.io/port" - "monitor.kubeblocks.io/scheme" - /// These annotations allow the Prometheus installed by KubeBlocks to discover and scrape metrics from the exporter. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "monitorEnabled")] - pub monitor_enabled: Option, /// Specifies the names of instances to be transitioned to offline status. /// Marking an instance as offline results in the following: /// 1. The associated Pod is stopped, and its PersistentVolumeClaim (PVC) is retained for potential future reuse or data recovery, but it is no longer actively used. 2. The ordinal number assigned to this instance is preserved, ensuring it remains unique and avoiding conflicts with new instances. @@ -82,9 +82,6 @@ pub struct ComponentSpec { /// Overrides Services defined in referenced ComponentDefinition and exposes endpoints that can be accessed by clients. #[serde(default, skip_serializing_if = "Option::is_none")] pub services: Option>, - /// Defines the sidecar containers that will be attached to the Component's main container. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub sidecars: Option>, /// Specifies the TLS configuration for the Component, including: /// - A boolean flag that indicates whether the Component should use Transport Layer Security (TLS) for secure communication. - An optional field that specifies the configuration for the TLS certificates issuer when TLS is enabled. It allows defining the issuer name and the reference to the secret containing the TLS certificates and key. The secret should contain the CA certificate, TLS certificate, and private key in the specified keys. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tlsConfig")] diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/configconstraints.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/configconstraints.rs index e19bf7ad1..203defe91 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/configconstraints.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/configconstraints.rs @@ -88,7 +88,7 @@ pub struct ConfigConstraintConfigurationSchema { pub schema: Option, } -/// DownwardAPITriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated. +/// DownwardAPIChangeTriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConfigConstraintDownwardApiOptions { /// Specifies the command to be triggered when changes are detected in Downward API volume files. It relies on the inotify mechanism in the config-manager sidecar to monitor file changes. diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/opsrequests.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/opsrequests.rs index 4c8c5d820..cfa24d0aa 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/opsrequests.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/opsrequests.rs @@ -241,7 +241,7 @@ pub struct OpsRequestExposeServices { /// Note: This field cannot be updated. pub name: String, /// Routes service traffic to pods with matching label keys and values. If specified, the service will only be exposed to pods matching the selector. - /// Note: At least one of 'roleSelector' or 'selector' must be specified. If both are specified, a pod must match both conditions to be selected. + /// Note: At least one of 'roleSelector' or 'podSelector' must be specified. If both are specified, a pod must match both conditions to be selected. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSelector")] pub pod_selector: Option>, /// Specifies Port definitions that are to be exposed by a ClusterService. @@ -250,7 +250,7 @@ pub struct OpsRequestExposeServices { #[serde(default, skip_serializing_if = "Option::is_none")] pub ports: Option>, /// Specifies a role to target with the service. If specified, the service will only be exposed to pods with the matching role. - /// Note: At least one of 'roleSelector' or 'selector' must be specified. If both are specified, a pod must match both conditions to be selected. + /// Note: At least one of 'roleSelector' or 'podSelector' must be specified. If both are specified, a pod must match both conditions to be selected. #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleSelector")] pub role_selector: Option, /// Determines how the Service is exposed. Defaults to 'ClusterIP'. Valid options are `ClusterIP`, `NodePort`, and `LoadBalancer`. @@ -1979,13 +1979,28 @@ pub enum OpsRequestType { /// Note: This field is immutable once set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct OpsRequestUpgrade { - /// Specifies the name of the target ClusterVersion for the upgrade. - /// This field is deprecated since v0.9 because ClusterVersion is deprecated. - #[serde(rename = "clusterVersionRef")] - pub cluster_version_ref: String, + /// Deprecated: since v0.9 because ClusterVersion is deprecated. Specifies the name of the target ClusterVersion for the upgrade. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterVersionRef")] + pub cluster_version_ref: Option, + /// Lists components to be upgrade based on desired ComponentDefinition and ServiceVersion. From the perspective of cluster API, the reasonable combinations should be: 1. (comp-def, service-ver) - upgrade to the specified service version and component definition, the user takes the responsibility to ensure that they are compatible. 2. ("", service-ver) - upgrade to the specified service version, let the operator choose the latest compatible component definition. 3. (comp-def, "") - upgrade to the specified component definition, let the operator choose the latest compatible service version. 4. ("", "") - upgrade to the latest service version and component definition, the operator will ensure the compatibility between the selected versions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub components: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct OpsRequestUpgradeComponents { + /// Specifies the name of the ComponentDefinition. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "componentDefinitionName")] + pub component_definition_name: Option, + /// Specifies the name of the Component. + #[serde(rename = "componentName")] + pub component_name: String, + /// Specifies the version of the Service expected to be provisioned by this Component. Referring to the ServiceVersion defined by the ComponentDefinition and ComponentVersion. And ServiceVersion in ClusterComponentSpec is optional, when no version is specified, use the latest available version in ComponentVersion. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceVersion")] + pub service_version: Option, } -/// VerticalScaling refers to the process of adjusting the compute resources (e.g., CPU, memory) allocated to a Component. It defines the parameters required for the operation. +/// VerticalScaling refers to the process of adjusting compute resources (e.g., CPU, memory) allocated to a Component. It defines the parameters required for the operation. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct OpsRequestVerticalScaling { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -2253,6 +2268,9 @@ pub struct OpsRequestStatusLastConfigurationComponents { /// This field is immutable. It can only be set for containers. #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, + /// Records the name of the ComponentDefinition prior to any changes. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "componentDefinitionName")] + pub component_definition_name: Option, /// Records the InstanceTemplate list of the Component prior to any changes. #[serde(default, skip_serializing_if = "Option::is_none")] pub instances: Option>, @@ -2268,6 +2286,9 @@ pub struct OpsRequestStatusLastConfigurationComponents { /// 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>, + /// Records the version of the Service expected to be provisioned by this Component prior to any changes. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceVersion")] + pub service_version: Option, /// Records the ClusterComponentService list of the Component prior to any changes. #[serde(default, skip_serializing_if = "Option::is_none")] pub services: Option>, diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1beta1/configconstraints.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1beta1/configconstraints.rs index e547fcc35..5c35afc00 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1beta1/configconstraints.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1beta1/configconstraints.rs @@ -18,15 +18,12 @@ use self::prelude::*; #[kube(schema = "disabled")] #[kube(derive="PartialEq")] pub struct ConfigConstraintSpec { - /// Defines a list of parameters including their names, default values, descriptions, types, and constraints (permissible values or the range of valid values). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "configSchema")] - pub config_schema: Option, /// TODO: migrate DownwardAPITriggeredActions to ComponentDefinition.spec.lifecycleActions Specifies a list of actions to execute specified commands based on Pod labels. /// It utilizes the K8s Downward API to mount label information as a volume into the pod. The 'config-manager' sidecar container watches for changes in the role label and dynamically invoke registered commands (usually execute some SQL statements) when a change is detected. /// It is designed for scenarios where: /// - Replicas with different roles have different configurations, such as Redis primary & secondary replicas. - After a role switch (e.g., from secondary to primary), some changes in configuration are needed to reflect the new role. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPITriggeredActions")] - pub downward_api_triggered_actions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPIChangeTriggeredActions")] + pub downward_api_change_triggered_actions: Option>, /// List dynamic parameters. Modifications to these parameters trigger a configuration reload without requiring a process restart. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dynamicParameters")] pub dynamic_parameters: Option>, @@ -43,6 +40,9 @@ pub struct ConfigConstraintSpec { /// This flag allows for more efficient handling of configuration changes by potentially eliminating an unnecessary reload step. #[serde(default, skip_serializing_if = "Option::is_none", rename = "mergeReloadAndRestart")] pub merge_reload_and_restart: Option, + /// Defines a list of parameters including their names, default values, descriptions, types, and constraints (permissible values or the range of valid values). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "parametersSchema")] + pub parameters_schema: Option, /// Specifies the dynamic reload (dynamic reconfiguration) actions supported by the engine. When set, the controller executes the scripts defined in these actions to handle dynamic parameter updates. /// Dynamic reloading is triggered only if both of the following conditions are met: /// 1. The modified parameters are listed in the `dynamicParameters` field. If `dynamicParameterSelectedPolicy` is set to "all", modifications to `staticParameters` can also trigger a reload. 2. `reloadAction` is set. @@ -54,40 +54,19 @@ pub struct ConfigConstraintSpec { /// - false (default): Only modifications to the dynamic parameters listed in `dynamicParameters` will trigger a dynamic reload. - true: Modifications to both dynamic parameters listed in `dynamicParameters` and static parameters listed in `staticParameters` will trigger a dynamic reload. The "all" option is for certain engines that require static parameters to be set via SQL statements before they can take effect on restart. #[serde(default, skip_serializing_if = "Option::is_none", rename = "reloadStaticParamsBeforeRestart")] pub reload_static_params_before_restart: Option, - /// Used to match labels on the pod to determine whether a dynamic reload should be performed. - /// In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload. The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process. - /// If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic reload. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "reloadedPodSelector")] - pub reloaded_pod_selector: Option, /// List static parameters. Modifications to any of these parameters require a restart of the process to take effect. #[serde(default, skip_serializing_if = "Option::is_none", rename = "staticParameters")] pub static_parameters: Option>, } -/// Defines a list of parameters including their names, default values, descriptions, types, and constraints (permissible values or the range of valid values). +/// DownwardAPIChangeTriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintConfigSchema { - /// Hold a string that contains a script written in CUE language that defines a list of configuration items. Each item is detailed with its name, default value, description, type (e.g. string, integer, float), and constraints (permissible values or the valid range of values). - /// CUE (Configure, Unify, Execute) is a declarative language designed for defining and validating complex data configurations. It is particularly useful in environments like K8s where complex configurations and validation rules are common. - /// This script functions as a validator for user-provided configurations, ensuring compliance with the established specifications and constraints. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub cue: Option, - /// Generated from the 'cue' field and transformed into a JSON format. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "schemaInJSON")] - pub schema_in_json: Option, - /// Specifies the top-level key in the 'configSchema.cue' that organizes the validation rules for parameters. This key must exist within the CUE script defined in 'configSchema.cue'. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "topLevelKey")] - pub top_level_key: Option, -} - -/// DownwardAPITriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintDownwardApiTriggeredActions { +pub struct ConfigConstraintDownwardApiChangeTriggeredActions { /// Specifies the command to be triggered when changes are detected in Downward API volume files. It relies on the inotify mechanism in the config-manager sidecar to monitor file changes. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, /// Represents a list of files under the Downward API volume. - pub items: Vec, + pub items: Vec, /// Specifies the mount point of the Downward API volume. #[serde(rename = "mountPoint")] pub mount_point: String, @@ -95,15 +74,15 @@ pub struct ConfigConstraintDownwardApiTriggeredActions { pub name: String, /// ScriptConfig object specifies a ConfigMap that contains script files that should be mounted inside the pod. The scripts are mounted as volumes and can be referenced and executed by the DownwardAction to perform specific tasks or configurations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scriptConfig")] - pub script_config: Option, + pub script_config: Option, } /// DownwardAPIVolumeFile represents information to create the file containing the pod field #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintDownwardApiTriggeredActionsItems { +pub struct ConfigConstraintDownwardApiChangeTriggeredActionsItems { /// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] - pub field_ref: Option, + pub field_ref: Option, /// Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, @@ -111,12 +90,12 @@ pub struct ConfigConstraintDownwardApiTriggeredActionsItems { pub path: String, /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] - pub resource_field_ref: Option, + pub resource_field_ref: Option, } /// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintDownwardApiTriggeredActionsItemsFieldRef { +pub struct ConfigConstraintDownwardApiChangeTriggeredActionsItemsFieldRef { /// 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, @@ -127,7 +106,7 @@ pub struct ConfigConstraintDownwardApiTriggeredActionsItemsFieldRef { /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintDownwardApiTriggeredActionsItemsResourceFieldRef { +pub struct ConfigConstraintDownwardApiChangeTriggeredActionsItemsResourceFieldRef { /// Container name: required for volumes, optional for env vars #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] pub container_name: Option, @@ -140,7 +119,7 @@ pub struct ConfigConstraintDownwardApiTriggeredActionsItemsResourceFieldRef { /// ScriptConfig object specifies a ConfigMap that contains script files that should be mounted inside the pod. The scripts are mounted as volumes and can be referenced and executed by the DownwardAction to perform specific tasks or configurations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintDownwardApiTriggeredActionsScriptConfig { +pub struct ConfigConstraintDownwardApiChangeTriggeredActionsScriptConfig { /// Specifies the namespace for the ConfigMap. If not specified, it defaults to the "default" namespace. #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, @@ -197,6 +176,22 @@ pub struct ConfigConstraintFileFormatConfigIniConfig { pub section_name: Option, } +/// Defines a list of parameters including their names, default values, descriptions, types, and constraints (permissible values or the range of valid values). +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ConfigConstraintParametersSchema { + /// Hold a string that contains a script written in CUE language that defines a list of configuration items. Each item is detailed with its name, default value, description, type (e.g. string, integer, float), and constraints (permissible values or the valid range of values). + /// CUE (Configure, Unify, Execute) is a declarative language designed for defining and validating complex data configurations. It is particularly useful in environments like K8s where complex configurations and validation rules are common. + /// This script functions as a validator for user-provided configurations, ensuring compliance with the established specifications and constraints. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cue: Option, + /// Generated from the 'cue' field and transformed into a JSON format. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "schemaInJSON")] + pub schema_in_json: Option, + /// Specifies the top-level key in the 'configSchema.cue' that organizes the validation rules for parameters. This key must exist within the CUE script defined in 'configSchema.cue'. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "topLevelKey")] + pub top_level_key: Option, +} + /// Specifies the dynamic reload (dynamic reconfiguration) actions supported by the engine. When set, the controller executes the scripts defined in these actions to handle dynamic parameter updates. /// Dynamic reloading is triggered only if both of the following conditions are met: /// 1. The modified parameters are listed in the `dynamicParameters` field. If `dynamicParameterSelectedPolicy` is set to "all", modifications to `staticParameters` can also trigger a reload. 2. `reloadAction` is set. @@ -210,6 +205,11 @@ pub struct ConfigConstraintReloadAction { /// Allows to execute a custom shell script to reload the process. #[serde(default, skip_serializing_if = "Option::is_none", rename = "shellTrigger")] pub shell_trigger: Option, + /// Used to match labels on the pod to determine whether a dynamic reload should be performed. + /// In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload. The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process. + /// If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic reload. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetPodSelector")] + pub target_pod_selector: Option, /// Enables reloading process using a Go template script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tplScriptTrigger")] pub tpl_script_trigger: Option, @@ -300,6 +300,31 @@ pub struct ConfigConstraintReloadActionShellTriggerToolsSetupToolConfigs { pub name: Option, } +/// Used to match labels on the pod to determine whether a dynamic reload should be performed. +/// In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload. The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process. +/// If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic reload. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ConfigConstraintReloadActionTargetPodSelector { + /// 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 ConfigConstraintReloadActionTargetPodSelectorMatchExpressions { + /// 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>, +} + /// Enables reloading process using a Go template script. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConfigConstraintReloadActionTplScriptTrigger { @@ -392,31 +417,6 @@ pub enum ConfigConstraintReloadActionUnixSignalTriggerSignal { Sigsys, } -/// Used to match labels on the pod to determine whether a dynamic reload should be performed. -/// In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload. The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process. -/// If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic reload. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct ConfigConstraintReloadedPodSelector { - /// 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 ConfigConstraintReloadedPodSelectorMatchExpressions { - /// 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>, -} - /// ConfigConstraintStatus represents the observed state of a ConfigConstraint. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConfigConstraintStatus { diff --git a/kube-custom-resources-rs/src/b3scale_io/mod.rs b/kube-custom-resources-rs/src/b3scale_io/mod.rs new file mode 100644 index 000000000..a3a6d96c3 --- /dev/null +++ b/kube-custom-resources-rs/src/b3scale_io/mod.rs @@ -0,0 +1 @@ +pub mod v1; diff --git a/kube-custom-resources-rs/src/b3scale_io/v1/bbbfrontends.rs b/kube-custom-resources-rs/src/b3scale_io/v1/bbbfrontends.rs new file mode 100644 index 000000000..bcc089c84 --- /dev/null +++ b/kube-custom-resources-rs/src/b3scale_io/v1/bbbfrontends.rs @@ -0,0 +1,89 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/b3scale/b3scale-operator/b3scale.io/v1/bbbfrontends.yaml --derive=Default --derive=PartialEq +// kopium version: 0.19.0 + +#[allow(unused_imports)] +mod prelude { + pub use kube::CustomResource; + pub use serde::{Serialize, Deserialize}; + pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; +} +use self::prelude::*; + +/// Desired state of the BBBFrontend resource. +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "b3scale.io", version = "v1", kind = "BBBFrontend", plural = "bbbfrontends")] +#[kube(namespaced)] +#[kube(status = "BBBFrontendStatus")] +#[kube(schema = "disabled")] +#[kube(derive="Default")] +#[kube(derive="PartialEq")] +pub struct BBBFrontendSpec { + /// Predefined credentials for the B3scale instance + #[serde(default, skip_serializing_if = "Option::is_none")] + pub credentials: Option, + /// Protect BBB frontend resource from deletion in b3scale API + #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletionProtection")] + pub deletion_protection: Option, + /// Unique BBB frontend ID generated by the b3scale API during creation + #[serde(default, skip_serializing_if = "Option::is_none", rename = "frontendID")] + pub frontend_id: Option, + /// Settings defines the B3Scale instance settings + #[serde(default, skip_serializing_if = "Option::is_none")] + pub settings: Option, +} + +/// Predefined credentials for the B3scale instance +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct BBBFrontendCredentials { + /// Predefined key for B3scale instance + pub frontend: String, + /// SecretRef is a reference to a key in a Secret resource containing the key to connect to the BBB instance. + #[serde(rename = "secretRef")] + pub secret_ref: BBBFrontendCredentialsSecretRef, +} + +/// SecretRef is a reference to a key in a Secret resource containing the key to connect to the BBB instance. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct BBBFrontendCredentialsSecretRef { + /// The key of the entry in the Secret resource's `data` field to be used. + pub key: String, + /// Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + pub name: String, +} + +/// Settings defines the B3Scale instance settings +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct BBBFrontendSettings { + /// See https://github.com/b3scale/b3scale#configure-create-parameter-defaults-and-overrides + #[serde(default, skip_serializing_if = "Option::is_none", rename = "createDefaultParams")] + pub create_default_params: Option>, + /// See https://github.com/b3scale/b3scale#configure-create-parameter-defaults-and-overrides + #[serde(default, skip_serializing_if = "Option::is_none", rename = "createOverrideParams")] + pub create_override_params: Option>, + /// See https://github.com/b3scale/b3scale#middleware-configuration + #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultPresentation")] + pub default_presentation: Option, + /// See https://github.com/b3scale/b3scale#middleware-configuration + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredTags")] + pub required_tags: Option>, +} + +/// See https://github.com/b3scale/b3scale#middleware-configuration +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct BBBFrontendSettingsDefaultPresentation { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub force: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub url: Option, +} + +/// Status of the BBBFrontend. This is set and managed automatically. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct BBBFrontendStatus { + /// List of status conditions to indicate the status of the BBB frontend. Known condition types are `Ready`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, +} + diff --git a/kube-custom-resources-rs/src/b3scale_io/v1/mod.rs b/kube-custom-resources-rs/src/b3scale_io/v1/mod.rs new file mode 100644 index 000000000..54091104f --- /dev/null +++ b/kube-custom-resources-rs/src/b3scale_io/v1/mod.rs @@ -0,0 +1 @@ +pub mod bbbfrontends; diff --git a/kube-custom-resources-rs/src/bus_volcano_sh/v1alpha1/commands.rs b/kube-custom-resources-rs/src/bus_volcano_sh/v1alpha1/commands.rs index d1b7c7987..fc849b6ab 100644 --- a/kube-custom-resources-rs/src/bus_volcano_sh/v1alpha1/commands.rs +++ b/kube-custom-resources-rs/src/bus_volcano_sh/v1alpha1/commands.rs @@ -15,17 +15,27 @@ pub struct CommandTarget { /// API version of the referent. #[serde(rename = "apiVersion")] pub api_version: String, - /// If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. + /// If true, AND if the owner has the "foregroundDeletion" finalizer, then + /// the owner cannot be deleted from the key-value store until this + /// reference is removed. + /// See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + /// for how the garbage collector interacts with this field and enforces the foreground deletion. + /// Defaults to false. + /// To set this field, a user needs "delete" permission of the owner, + /// otherwise 422 (Unprocessable Entity) will be returned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "blockOwnerDeletion")] pub block_owner_deletion: Option, /// If true, this reference points to the managing controller. #[serde(default, skip_serializing_if = "Option::is_none")] pub controller: 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 pub kind: String, - /// 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 pub name: String, - /// 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 pub uid: String, } diff --git a/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs b/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs index 7f07fbc19..2d1c3a0a9 100644 --- a/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs +++ b/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs @@ -98,9 +98,6 @@ pub struct CertificateSpec { /// /// /// Cannot be set if the `subject` or `commonName` field is set. - /// This is an Alpha Feature and is only enabled with the - /// `--feature-gates=LiteralCertificateSubject=true` option set on both - /// the controller and webhook components. #[serde(default, skip_serializing_if = "Option::is_none", rename = "literalSubject")] pub literal_subject: Option, /// x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate. 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 e1a11293b..ca9e08977 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 @@ -585,6 +585,9 @@ pub struct ClusterIssuerAcmeSolversDns01Route53 { /// see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessKeyIDSecretRef")] pub access_key_id_secret_ref: Option, + /// Auth configures how cert-manager authenticates. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub auth: Option, /// If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostedZoneID")] pub hosted_zone_id: Option, @@ -620,6 +623,40 @@ pub struct ClusterIssuerAcmeSolversDns01Route53AccessKeyIdSecretRef { pub name: String, } +/// Auth configures how cert-manager authenticates. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterIssuerAcmeSolversDns01Route53Auth { + /// Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity + /// by passing a bound ServiceAccount token. + pub kubernetes: ClusterIssuerAcmeSolversDns01Route53AuthKubernetes, +} + +/// Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity +/// by passing a bound ServiceAccount token. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterIssuerAcmeSolversDns01Route53AuthKubernetes { + /// A reference to a service account that will be used to request a bound + /// token (also known as "projected token"). To use this field, you must + /// configure an RBAC rule to let cert-manager request a token. + #[serde(rename = "serviceAccountRef")] + pub service_account_ref: ClusterIssuerAcmeSolversDns01Route53AuthKubernetesServiceAccountRef, +} + +/// A reference to a service account that will be used to request a bound +/// token (also known as "projected token"). To use this field, you must +/// configure an RBAC rule to let cert-manager request a token. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterIssuerAcmeSolversDns01Route53AuthKubernetesServiceAccountRef { + /// TokenAudiences is an optional list of audiences to include in the + /// token passed to AWS. The default token consisting of the issuer's namespace + /// and name is always included. + /// If unset the audience defaults to `sts.amazonaws.com`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub audiences: Option>, + /// Name of the ServiceAccount used to request a token. + pub name: String, +} + /// The SecretAccessKey is used for authentication. /// If neither the Access Key nor Key ID are set, we fall-back to using env /// vars, shared credentials file or AWS Instance metadata, 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 9c2058e3b..b46e6989a 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 @@ -586,6 +586,9 @@ pub struct IssuerAcmeSolversDns01Route53 { /// see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessKeyIDSecretRef")] pub access_key_id_secret_ref: Option, + /// Auth configures how cert-manager authenticates. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub auth: Option, /// If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostedZoneID")] pub hosted_zone_id: Option, @@ -621,6 +624,40 @@ pub struct IssuerAcmeSolversDns01Route53AccessKeyIdSecretRef { pub name: String, } +/// Auth configures how cert-manager authenticates. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct IssuerAcmeSolversDns01Route53Auth { + /// Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity + /// by passing a bound ServiceAccount token. + pub kubernetes: IssuerAcmeSolversDns01Route53AuthKubernetes, +} + +/// Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity +/// by passing a bound ServiceAccount token. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct IssuerAcmeSolversDns01Route53AuthKubernetes { + /// A reference to a service account that will be used to request a bound + /// token (also known as "projected token"). To use this field, you must + /// configure an RBAC rule to let cert-manager request a token. + #[serde(rename = "serviceAccountRef")] + pub service_account_ref: IssuerAcmeSolversDns01Route53AuthKubernetesServiceAccountRef, +} + +/// A reference to a service account that will be used to request a bound +/// token (also known as "projected token"). To use this field, you must +/// configure an RBAC rule to let cert-manager request a token. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct IssuerAcmeSolversDns01Route53AuthKubernetesServiceAccountRef { + /// TokenAudiences is an optional list of audiences to include in the + /// token passed to AWS. The default token consisting of the issuer's namespace + /// and name is always included. + /// If unset the audience defaults to `sts.amazonaws.com`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub audiences: Option>, + /// Name of the ServiceAccount used to request a token. + pub name: String, +} + /// The SecretAccessKey is used for authentication. /// If neither the Access Key nor Key ID are set, we fall-back to using env /// vars, shared credentials file or AWS Instance metadata, diff --git a/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/configurations.rs b/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/configurations.rs index c10420e02..438cdafaf 100644 --- a/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/configurations.rs +++ b/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/configurations.rs @@ -131,6 +131,9 @@ pub struct ConfigurationCatchCommand { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Entrypoint is the command entry point to run. pub entrypoint: String, /// Env defines additional environment variables. @@ -156,6 +159,17 @@ pub struct ConfigurationCatchCommandBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchCommandClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchCommandEnv { @@ -186,6 +200,9 @@ pub struct ConfigurationCatchDelete { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Expect defines a list of matched checks to validate the operation outcome. #[serde(default, skip_serializing_if = "Option::is_none")] pub expect: Option>, @@ -209,6 +226,17 @@ pub struct ConfigurationCatchDeleteBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchDeleteClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -251,6 +279,9 @@ pub struct ConfigurationCatchDescribe { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// 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")] @@ -277,12 +308,26 @@ pub struct ConfigurationCatchDescribe { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchDescribeClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Events determines the events collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchEvents { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -302,6 +347,17 @@ pub struct ConfigurationCatchEvents { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchEventsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Get determines the resource get collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchGet { @@ -311,6 +367,9 @@ pub struct ConfigurationCatchGet { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -337,12 +396,26 @@ pub struct ConfigurationCatchGet { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchGetClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// PodLogs determines the pod logs collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchPodLogs { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Container in pod to get logs from else --all-containers is used. #[serde(default, skip_serializing_if = "Option::is_none")] pub container: Option, @@ -367,6 +440,17 @@ pub struct ConfigurationCatchPodLogs { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchPodLogsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Script defines a script to run. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchScript { @@ -379,6 +463,9 @@ pub struct ConfigurationCatchScript { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Content defines a shell script (run with "sh -c ..."). #[serde(default, skip_serializing_if = "Option::is_none")] pub content: Option, @@ -405,6 +492,17 @@ pub struct ConfigurationCatchScriptBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchScriptClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchScriptEnv { @@ -442,6 +540,9 @@ pub struct ConfigurationCatchWait { /// Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// For specifies the condition to wait for. #[serde(rename = "for")] pub r#for: ConfigurationCatchWaitFor, @@ -471,6 +572,17 @@ pub struct ConfigurationCatchWait { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchWaitClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// For specifies the condition to wait for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchWaitFor { diff --git a/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/tests.rs b/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/tests.rs index a18e193a8..d16da6f0a 100644 --- a/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/tests.rs +++ b/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha1/tests.rs @@ -27,6 +27,9 @@ pub struct TestSpec { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Concurrent determines whether the test should run concurrently with other tests. #[serde(default, skip_serializing_if = "Option::is_none")] pub concurrent: Option, @@ -120,6 +123,9 @@ pub struct TestCatchCommand { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Entrypoint is the command entry point to run. pub entrypoint: String, /// Env defines additional environment variables. @@ -145,6 +151,17 @@ pub struct TestCatchCommandBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchCommandClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchCommandEnv { @@ -175,6 +192,9 @@ pub struct TestCatchDelete { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Expect defines a list of matched checks to validate the operation outcome. #[serde(default, skip_serializing_if = "Option::is_none")] pub expect: Option>, @@ -198,6 +218,17 @@ pub struct TestCatchDeleteBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchDeleteClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -240,6 +271,9 @@ pub struct TestCatchDescribe { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// 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")] @@ -266,12 +300,26 @@ pub struct TestCatchDescribe { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchDescribeClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Events determines the events collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchEvents { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -291,6 +339,17 @@ pub struct TestCatchEvents { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchEventsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Get determines the resource get collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchGet { @@ -300,6 +359,9 @@ pub struct TestCatchGet { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -326,12 +388,26 @@ pub struct TestCatchGet { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchGetClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// PodLogs determines the pod logs collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchPodLogs { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Container in pod to get logs from else --all-containers is used. #[serde(default, skip_serializing_if = "Option::is_none")] pub container: Option, @@ -356,6 +432,17 @@ pub struct TestCatchPodLogs { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchPodLogsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Script defines a script to run. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchScript { @@ -368,6 +455,9 @@ pub struct TestCatchScript { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Content defines a shell script (run with "sh -c ..."). #[serde(default, skip_serializing_if = "Option::is_none")] pub content: Option, @@ -394,6 +484,17 @@ pub struct TestCatchScriptBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchScriptClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchScriptEnv { @@ -431,6 +532,9 @@ pub struct TestCatchWait { /// Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// For specifies the condition to wait for. #[serde(rename = "for")] pub r#for: TestCatchWaitFor, @@ -460,6 +564,17 @@ pub struct TestCatchWait { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestCatchWaitClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// For specifies the condition to wait for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestCatchWaitFor { @@ -498,6 +613,17 @@ pub struct TestCatchWaitForJsonPath { pub value: String, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// TestStep contains the test step definition used in a test spec. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestSteps { @@ -510,6 +636,9 @@ pub struct TestSteps { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Description contains a description of the test step. #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -592,6 +721,9 @@ pub struct TestStepsCatchCommand { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Entrypoint is the command entry point to run. pub entrypoint: String, /// Env defines additional environment variables. @@ -617,6 +749,17 @@ pub struct TestStepsCatchCommandBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchCommandClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchCommandEnv { @@ -647,6 +790,9 @@ pub struct TestStepsCatchDelete { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Expect defines a list of matched checks to validate the operation outcome. #[serde(default, skip_serializing_if = "Option::is_none")] pub expect: Option>, @@ -670,6 +816,17 @@ pub struct TestStepsCatchDeleteBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchDeleteClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -712,6 +869,9 @@ pub struct TestStepsCatchDescribe { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// 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")] @@ -738,12 +898,26 @@ pub struct TestStepsCatchDescribe { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchDescribeClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Events determines the events collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchEvents { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -763,6 +937,17 @@ pub struct TestStepsCatchEvents { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchEventsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Get determines the resource get collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchGet { @@ -772,6 +957,9 @@ pub struct TestStepsCatchGet { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -798,12 +986,26 @@ pub struct TestStepsCatchGet { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchGetClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// PodLogs determines the pod logs collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchPodLogs { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Container in pod to get logs from else --all-containers is used. #[serde(default, skip_serializing_if = "Option::is_none")] pub container: Option, @@ -828,6 +1030,17 @@ pub struct TestStepsCatchPodLogs { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchPodLogsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Script defines a script to run. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchScript { @@ -840,6 +1053,9 @@ pub struct TestStepsCatchScript { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Content defines a shell script (run with "sh -c ..."). #[serde(default, skip_serializing_if = "Option::is_none")] pub content: Option, @@ -866,6 +1082,17 @@ pub struct TestStepsCatchScriptBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchScriptClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchScriptEnv { @@ -903,6 +1130,9 @@ pub struct TestStepsCatchWait { /// Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// For specifies the condition to wait for. #[serde(rename = "for")] pub r#for: TestStepsCatchWaitFor, @@ -932,6 +1162,17 @@ pub struct TestStepsCatchWait { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsCatchWaitClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// For specifies the condition to wait for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsCatchWaitFor { @@ -970,6 +1211,17 @@ pub struct TestStepsCatchWaitForJsonPath { pub value: String, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Finally defines actions to be executed at the end of a test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinally { @@ -1020,6 +1272,9 @@ pub struct TestStepsFinallyCommand { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Entrypoint is the command entry point to run. pub entrypoint: String, /// Env defines additional environment variables. @@ -1045,6 +1300,17 @@ pub struct TestStepsFinallyCommandBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyCommandClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyCommandEnv { @@ -1075,6 +1341,9 @@ pub struct TestStepsFinallyDelete { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Expect defines a list of matched checks to validate the operation outcome. #[serde(default, skip_serializing_if = "Option::is_none")] pub expect: Option>, @@ -1098,6 +1367,17 @@ pub struct TestStepsFinallyDeleteBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyDeleteClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -1140,6 +1420,9 @@ pub struct TestStepsFinallyDescribe { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// 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")] @@ -1166,12 +1449,26 @@ pub struct TestStepsFinallyDescribe { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyDescribeClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Events determines the events collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyEvents { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -1191,6 +1488,17 @@ pub struct TestStepsFinallyEvents { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyEventsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Get determines the resource get collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyGet { @@ -1200,6 +1508,9 @@ pub struct TestStepsFinallyGet { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -1226,12 +1537,26 @@ pub struct TestStepsFinallyGet { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyGetClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// PodLogs determines the pod logs collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyPodLogs { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Container in pod to get logs from else --all-containers is used. #[serde(default, skip_serializing_if = "Option::is_none")] pub container: Option, @@ -1256,6 +1581,17 @@ pub struct TestStepsFinallyPodLogs { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyPodLogsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Script defines a script to run. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyScript { @@ -1268,6 +1604,9 @@ pub struct TestStepsFinallyScript { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Content defines a shell script (run with "sh -c ..."). #[serde(default, skip_serializing_if = "Option::is_none")] pub content: Option, @@ -1294,6 +1633,17 @@ pub struct TestStepsFinallyScriptBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyScriptClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyScriptEnv { @@ -1331,6 +1681,9 @@ pub struct TestStepsFinallyWait { /// Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// For specifies the condition to wait for. #[serde(rename = "for")] pub r#for: TestStepsFinallyWaitFor, @@ -1360,6 +1713,17 @@ pub struct TestStepsFinallyWait { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsFinallyWaitClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// For specifies the condition to wait for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsFinallyWaitFor { @@ -1478,6 +1842,9 @@ pub struct TestStepsTryApply { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// DryRun determines whether the file should be applied in dry run mode. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dryRun")] pub dry_run: Option, @@ -1512,6 +1879,17 @@ pub struct TestStepsTryApplyBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryApplyClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -1544,6 +1922,9 @@ pub struct TestStepsTryAssert { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// File is the path to the referenced file. This can be a direct path to a file /// or an expression that matches multiple files, such as "manifest/*.yaml" for all YAML /// files within the "manifest" directory. @@ -1569,6 +1950,17 @@ pub struct TestStepsTryAssertBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryAssertClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Command defines a command to run. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsTryCommand { @@ -1584,6 +1976,9 @@ pub struct TestStepsTryCommand { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Entrypoint is the command entry point to run. pub entrypoint: String, /// Env defines additional environment variables. @@ -1609,6 +2004,17 @@ pub struct TestStepsTryCommandBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryCommandClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsTryCommandEnv { @@ -1639,6 +2045,9 @@ pub struct TestStepsTryCreate { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// DryRun determines whether the file should be applied in dry run mode. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dryRun")] pub dry_run: Option, @@ -1673,6 +2082,17 @@ pub struct TestStepsTryCreateBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryCreateClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -1705,6 +2125,9 @@ pub struct TestStepsTryDelete { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Expect defines a list of matched checks to validate the operation outcome. #[serde(default, skip_serializing_if = "Option::is_none")] pub expect: Option>, @@ -1728,6 +2151,17 @@ pub struct TestStepsTryDeleteBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryDeleteClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -1771,6 +2205,9 @@ pub struct TestStepsTryError { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// File is the path to the referenced file. This can be a direct path to a file /// or an expression that matches multiple files, such as "manifest/*.yaml" for all YAML /// files within the "manifest" directory. @@ -1796,6 +2233,17 @@ pub struct TestStepsTryErrorBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryErrorClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Patch represents a patch operation. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsTryPatch { @@ -1805,6 +2253,9 @@ pub struct TestStepsTryPatch { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// DryRun determines whether the file should be applied in dry run mode. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dryRun")] pub dry_run: Option, @@ -1839,6 +2290,17 @@ pub struct TestStepsTryPatchBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryPatchClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -1874,6 +2336,9 @@ pub struct TestStepsTryScript { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Content defines a shell script (run with "sh -c ..."). #[serde(default, skip_serializing_if = "Option::is_none")] pub content: Option, @@ -1900,6 +2365,17 @@ pub struct TestStepsTryScriptBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryScriptClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsTryScriptEnv { @@ -1937,6 +2413,9 @@ pub struct TestStepsTryUpdate { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// DryRun determines whether the file should be applied in dry run mode. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dryRun")] pub dry_run: Option, @@ -1971,6 +2450,17 @@ pub struct TestStepsTryUpdateBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryUpdateClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -2003,6 +2493,9 @@ pub struct TestStepsTryWait { /// Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// For specifies the condition to wait for. #[serde(rename = "for")] pub r#for: TestStepsTryWaitFor, @@ -2032,6 +2525,17 @@ pub struct TestStepsTryWait { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TestStepsTryWaitClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// For specifies the condition to wait for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TestStepsTryWaitFor { diff --git a/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha2/configurations.rs b/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha2/configurations.rs index f1e21ab85..dae19a2f7 100644 --- a/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha2/configurations.rs +++ b/kube-custom-resources-rs/src/chainsaw_kyverno_io/v1alpha2/configurations.rs @@ -97,6 +97,9 @@ pub struct ConfigurationCatchCommand { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Entrypoint is the command entry point to run. pub entrypoint: String, /// Env defines additional environment variables. @@ -122,6 +125,17 @@ pub struct ConfigurationCatchCommandBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchCommandClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchCommandEnv { @@ -152,6 +166,9 @@ pub struct ConfigurationCatchDelete { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Expect defines a list of matched checks to validate the operation outcome. #[serde(default, skip_serializing_if = "Option::is_none")] pub expect: Option>, @@ -175,6 +192,17 @@ pub struct ConfigurationCatchDeleteBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchDeleteClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Expectation represents a check to be applied on the result of an operation /// with a match filter to determine if the verification should be considered. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -217,6 +245,9 @@ pub struct ConfigurationCatchDescribe { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// 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")] @@ -243,12 +274,26 @@ pub struct ConfigurationCatchDescribe { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchDescribeClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Events determines the events collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchEvents { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -268,6 +313,17 @@ pub struct ConfigurationCatchEvents { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchEventsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Get determines the resource get collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchGet { @@ -277,6 +333,9 @@ pub struct ConfigurationCatchGet { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Format determines the output format (json or yaml). #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, @@ -303,12 +362,26 @@ pub struct ConfigurationCatchGet { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchGetClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// PodLogs determines the pod logs collector to execute. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchPodLogs { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Container in pod to get logs from else --all-containers is used. #[serde(default, skip_serializing_if = "Option::is_none")] pub container: Option, @@ -333,6 +406,17 @@ pub struct ConfigurationCatchPodLogs { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchPodLogsClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Script defines a script to run. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchScript { @@ -345,6 +429,9 @@ pub struct ConfigurationCatchScript { /// Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// Content defines a shell script (run with "sh -c ..."). #[serde(default, skip_serializing_if = "Option::is_none")] pub content: Option, @@ -371,6 +458,17 @@ pub struct ConfigurationCatchScriptBindings { pub value: serde_json::Value, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchScriptClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// Binding represents a key/value set as a binding in an executing test. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchScriptEnv { @@ -408,6 +506,9 @@ pub struct ConfigurationCatchWait { /// Cluster defines the target cluster where the wait operation will be performed (default cluster will be used if not specified). #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, + /// Clusters holds a registry to clusters to support multi-cluster tests. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub clusters: Option>, /// For specifies the condition to wait for. #[serde(rename = "for")] pub r#for: ConfigurationCatchWaitFor, @@ -437,6 +538,17 @@ pub struct ConfigurationCatchWait { pub timeout: Option, } +/// Clusters holds a registry to clusters to support multi-cluster tests. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ConfigurationCatchWaitClusters { + /// Context is the name of the context to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Kubeconfig is the path to the referenced file. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kubeconfig: Option, +} + /// For specifies the condition to wait for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ConfigurationCatchWaitFor { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/alluxioruntimes.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/alluxioruntimes.rs index e79adcdcc..6fa27ab4d 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/alluxioruntimes.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/alluxioruntimes.rs @@ -154,6 +154,11 @@ pub struct AlluxioRuntimeApiGatewayPodMetadata { /// Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeApiGatewayResources { + /// 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>, @@ -162,6 +167,13 @@ pub struct AlluxioRuntimeApiGatewayResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeApiGatewayResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeApiGatewayVolumeMounts { @@ -207,9 +219,6 @@ pub struct AlluxioRuntimeFuse { /// Environment variables that will be used by Alluxio Fuse #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, - /// If the fuse client should be deployed in global mode, otherwise the affinity should be considered - #[serde(default, skip_serializing_if = "Option::is_none")] - pub global: Option, /// Image for Alluxio Fuse(e.g. alluxio/alluxio-fuse) #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, @@ -265,6 +274,11 @@ pub struct AlluxioRuntimeFusePodMetadata { /// Resources that will be requested by Alluxio Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeFuseResources { + /// 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>, @@ -273,6 +287,13 @@ pub struct AlluxioRuntimeFuseResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeFuseResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeFuseVolumeMounts { @@ -318,6 +339,11 @@ pub struct AlluxioRuntimeInitUsers { /// Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeInitUsersResources { + /// 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>, @@ -326,6 +352,13 @@ pub struct AlluxioRuntimeInitUsersResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeInitUsersResourcesClaims { + /// 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, +} + /// The component spec of Alluxio job master #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeJobMaster { @@ -387,6 +420,11 @@ pub struct AlluxioRuntimeJobMasterPodMetadata { /// Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeJobMasterResources { + /// 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>, @@ -395,6 +433,13 @@ pub struct AlluxioRuntimeJobMasterResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeJobMasterResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeJobMasterVolumeMounts { @@ -478,6 +523,11 @@ pub struct AlluxioRuntimeJobWorkerPodMetadata { /// Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeJobWorkerResources { + /// 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>, @@ -486,6 +536,13 @@ pub struct AlluxioRuntimeJobWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeJobWorkerResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeJobWorkerVolumeMounts { @@ -599,6 +656,11 @@ pub struct AlluxioRuntimeMasterPodMetadata { /// Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeMasterResources { + /// 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>, @@ -607,6 +669,13 @@ pub struct AlluxioRuntimeMasterResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeMasterResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeMasterVolumeMounts { @@ -703,176 +772,176 @@ pub enum AlluxioRuntimeTieredstoreLevelsMediumtype { /// VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSource { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { /// 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? @@ -880,24 +949,24 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { /// 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? @@ -905,19 +974,19 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -925,35 +994,35 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { /// 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? @@ -961,7 +1030,7 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -1012,18 +1081,18 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceDownwardApiItemsResourceFi pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -1059,33 +1128,33 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -1097,7 +1166,7 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -1107,11 +1176,19 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -1120,7 +1197,14 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -1143,46 +1227,46 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { /// 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? @@ -1190,106 +1274,106 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { /// 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? @@ -1297,61 +1381,61 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourcePersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourcePhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourcePortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1359,30 +1443,30 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1390,16 +1474,16 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -1447,16 +1531,16 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardAp pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1464,77 +1548,77 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { /// 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? @@ -1542,40 +1626,40 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: AlluxioRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { /// 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? @@ -1583,19 +1667,19 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -1603,36 +1687,36 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { /// 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? @@ -1640,19 +1724,19 @@ pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeTieredstoreLevelsVolumeSourceVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -1669,178 +1753,178 @@ pub enum AlluxioRuntimeTieredstoreLevelsVolumeType { /// Volume represents a named volume in a pod that may be accessed by any container in the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumes { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names pub name: String, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesCephfsSecretRef { /// 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? @@ -1848,24 +1932,24 @@ pub struct AlluxioRuntimeVolumesCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesCinderSecretRef { /// 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? @@ -1873,19 +1957,19 @@ pub struct AlluxioRuntimeVolumesCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1893,35 +1977,35 @@ pub struct AlluxioRuntimeVolumesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesCsiNodePublishSecretRef { /// 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? @@ -1929,7 +2013,7 @@ pub struct AlluxioRuntimeVolumesCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -1980,18 +2064,18 @@ pub struct AlluxioRuntimeVolumesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -2027,33 +2111,33 @@ pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateMetadata { /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -2065,7 +2149,7 @@ pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -2075,11 +2159,19 @@ pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -2088,7 +2180,14 @@ pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -2111,46 +2210,46 @@ pub struct AlluxioRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExp pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesFlexVolumeSecretRef { /// 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? @@ -2158,106 +2257,106 @@ pub struct AlluxioRuntimeVolumesFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesIscsiSecretRef { /// 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? @@ -2265,61 +2364,61 @@ pub struct AlluxioRuntimeVolumesIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesPersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesPhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesPortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -2327,30 +2426,30 @@ pub struct AlluxioRuntimeVolumesProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2358,16 +2457,16 @@ pub struct AlluxioRuntimeVolumesProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -2415,16 +2514,16 @@ pub struct AlluxioRuntimeVolumesProjectedSourcesDownwardApiItemsResourceFieldRef pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2432,77 +2531,77 @@ pub struct AlluxioRuntimeVolumesProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesRbdSecretRef { /// 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? @@ -2510,40 +2609,40 @@ pub struct AlluxioRuntimeVolumesRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: AlluxioRuntimeVolumesScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesScaleIoSecretRef { /// 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? @@ -2551,19 +2650,19 @@ pub struct AlluxioRuntimeVolumesScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -2571,36 +2670,36 @@ pub struct AlluxioRuntimeVolumesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesStorageosSecretRef { /// 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? @@ -2608,19 +2707,19 @@ pub struct AlluxioRuntimeVolumesStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeVolumesVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -2686,6 +2785,11 @@ pub struct AlluxioRuntimeWorkerPodMetadata { /// Resources that will be requested by the Alluxio component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeWorkerResources { + /// 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>, @@ -2694,6 +2798,13 @@ pub struct AlluxioRuntimeWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct AlluxioRuntimeWorkerResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct AlluxioRuntimeWorkerVolumeMounts { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/databackups.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/databackups.rs index 6ad090b41..c359b6057 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/databackups.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/databackups.rs @@ -39,6 +39,9 @@ pub struct DataBackupSpec { /// Specifies that the preceding operation in a workflow #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataBackupRunAfter { + /// AffinityStrategy specifies the pod affinity strategy with the referent operation. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "affinityStrategy")] + pub affinity_strategy: Option, /// API version of the referent operation #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, @@ -51,6 +54,31 @@ pub struct DataBackupRunAfter { pub namespace: Option, } +/// AffinityStrategy specifies the pod affinity strategy with the referent operation. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupRunAfterAffinityStrategy { + /// Policy one of: "", "Require", "Prefer" + #[serde(default, skip_serializing_if = "Option::is_none")] + pub policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requires: Option>, +} + +/// Prefer defines the label key and weight for generating a PreferredSchedulingTerm. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupRunAfterAffinityStrategyPrefers { + pub name: String, + pub weight: i32, +} + +/// Require defines the label key for generating a NodeSelectorTerm. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupRunAfterAffinityStrategyRequires { + pub name: String, +} + /// Specifies that the preceding operation in a workflow #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum DataBackupRunAfterKind { @@ -89,6 +117,9 @@ pub struct DataBackupStatus { /// LastSuccessfulTime is the last time the cron operation successfully completed #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastSuccessfulTime")] pub last_successful_time: Option, + /// NodeAffinity records the node affinity for operation pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, /// Phase describes current phase of operation pub phase: String, /// WaitingStatus stores information about waiting operation. @@ -96,6 +127,104 @@ pub struct DataBackupStatus { pub waiting_for: Option, } +/// NodeAffinity records the node affinity for operation pods +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupStatusNodeAffinity { + /// The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + /// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +/// An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + /// A node selector term, associated with the corresponding weight. + pub preference: DataBackupStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + /// Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. + pub weight: i32, +} + +/// A node selector term, associated with the corresponding weight. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + /// A list of node selector requirements by node's labels. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + /// A list of node selector requirements by node's fields. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +/// A node 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 DataBackupStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +/// A node 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 DataBackupStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +/// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + /// Required. A list of node selector terms. The terms are ORed. + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +/// A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataBackupStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + /// A list of node selector requirements by node's labels. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + /// A list of node selector requirements by node's fields. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +/// A node 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 DataBackupStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +/// A node 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 DataBackupStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + /// WaitingStatus stores information about waiting operation. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataBackupStatusWaitingFor { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/dataloads.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/dataloads.rs index 0829ff39a..55cf9631d 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/dataloads.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/dataloads.rs @@ -203,10 +203,10 @@ pub struct DataLoadAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExec /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. @@ -237,7 +237,7 @@ pub struct DataLoadAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExec pub values: Option>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -266,10 +266,10 @@ pub struct DataLoadAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecu /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. @@ -300,7 +300,7 @@ pub struct DataLoadAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecu pub values: Option>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -350,10 +350,10 @@ pub struct DataLoadAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuring /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. @@ -384,7 +384,7 @@ pub struct DataLoadAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuring pub values: Option>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -413,10 +413,10 @@ pub struct DataLoadAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringE /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. @@ -447,7 +447,7 @@ pub struct DataLoadAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringE pub values: Option>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -502,6 +502,11 @@ pub enum DataLoadPolicy { /// Resources that will be requested by the DataLoad job.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadResources { + /// 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>, @@ -510,9 +515,19 @@ pub struct DataLoadResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadResourcesClaims { + /// 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, +} + /// Specifies that the preceding operation in a workflow #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadRunAfter { + /// AffinityStrategy specifies the pod affinity strategy with the referent operation. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "affinityStrategy")] + pub affinity_strategy: Option, /// API version of the referent operation #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, @@ -525,6 +540,31 @@ pub struct DataLoadRunAfter { pub namespace: Option, } +/// AffinityStrategy specifies the pod affinity strategy with the referent operation. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadRunAfterAffinityStrategy { + /// Policy one of: "", "Require", "Prefer" + #[serde(default, skip_serializing_if = "Option::is_none")] + pub policy: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefers: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requires: Option>, +} + +/// Prefer defines the label key and weight for generating a PreferredSchedulingTerm. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadRunAfterAffinityStrategyPrefers { + pub name: String, + pub weight: i32, +} + +/// Require defines the label key for generating a NodeSelectorTerm. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadRunAfterAffinityStrategyRequires { + pub name: String, +} + /// Specifies that the preceding operation in a workflow #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum DataLoadRunAfterKind { @@ -580,6 +620,9 @@ pub struct DataLoadStatus { /// LastSuccessfulTime is the last time the cron operation successfully completed #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastSuccessfulTime")] pub last_successful_time: Option, + /// NodeAffinity records the node affinity for operation pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")] + pub node_affinity: Option, /// Phase describes current phase of operation pub phase: String, /// WaitingStatus stores information about waiting operation. @@ -587,6 +630,104 @@ pub struct DataLoadStatus { pub waiting_for: Option, } +/// NodeAffinity records the node affinity for operation pods +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadStatusNodeAffinity { + /// The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] + pub preferred_during_scheduling_ignored_during_execution: Option>, + /// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] + pub required_during_scheduling_ignored_during_execution: Option, +} + +/// An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { + /// A node selector term, associated with the corresponding weight. + pub preference: DataLoadStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference, + /// Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. + pub weight: i32, +} + +/// A node selector term, associated with the corresponding weight. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference { + /// A list of node selector requirements by node's labels. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + /// A list of node selector requirements by node's fields. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +/// A node 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 DataLoadStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +/// A node 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 DataLoadStatusNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +/// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { + /// Required. A list of node selector terms. The terms are ORed. + #[serde(rename = "nodeSelectorTerms")] + pub node_selector_terms: Vec, +} + +/// A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct DataLoadStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { + /// A list of node selector requirements by node's labels. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + /// A list of node selector requirements by node's fields. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")] + pub match_fields: Option>, +} + +/// A node 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 DataLoadStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + +/// A node 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 DataLoadStatusNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { + /// The label key that the selector applies to. + pub key: String, + /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + pub operator: String, + /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + /// WaitingStatus stores information about waiting operation. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DataLoadStatusWaitingFor { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/goosefsruntimes.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/goosefsruntimes.rs index 06b7c8725..cbc26bb9e 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/goosefsruntimes.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/goosefsruntimes.rs @@ -108,6 +108,11 @@ pub struct GooseFSRuntimeApiGateway { /// Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeApiGatewayResources { + /// 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>, @@ -116,6 +121,13 @@ pub struct GooseFSRuntimeApiGatewayResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeApiGatewayResourcesClaims { + /// 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, +} + /// CleanCachePolicy defines cleanCache Policy #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeCleanCachePolicy { @@ -153,9 +165,6 @@ pub struct GooseFSRuntimeFuse { /// Environment variables that will be used by GooseFS Fuse #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, - /// If the fuse client should be deployed in global mode, otherwise the affinity should be considered - #[serde(default, skip_serializing_if = "Option::is_none")] - pub global: Option, /// Image for GooseFS Fuse(e.g. goosefs/goosefs-fuse) #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, @@ -182,6 +191,11 @@ pub struct GooseFSRuntimeFuse { /// Resources that will be requested by GooseFS Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeFuseResources { + /// 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>, @@ -190,6 +204,13 @@ pub struct GooseFSRuntimeFuseResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeFuseResourcesClaims { + /// 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, +} + /// The version information that instructs fluid to orchestrate a particular version of GooseFS. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeGoosefsVersion { @@ -227,6 +248,11 @@ pub struct GooseFSRuntimeInitUsers { /// Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeInitUsersResources { + /// 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>, @@ -235,6 +261,13 @@ pub struct GooseFSRuntimeInitUsersResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeInitUsersResourcesClaims { + /// 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, +} + /// The component spec of GooseFS job master #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeJobMaster { @@ -270,6 +303,11 @@ pub struct GooseFSRuntimeJobMaster { /// Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeJobMasterResources { + /// 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>, @@ -278,6 +316,13 @@ pub struct GooseFSRuntimeJobMasterResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeJobMasterResourcesClaims { + /// 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, +} + /// The component spec of GooseFS job Worker #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeJobWorker { @@ -313,6 +358,11 @@ pub struct GooseFSRuntimeJobWorker { /// Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeJobWorkerResources { + /// 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>, @@ -321,6 +371,13 @@ pub struct GooseFSRuntimeJobWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeJobWorkerResourcesClaims { + /// 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, +} + /// The component spec of GooseFS master #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeMaster { @@ -356,6 +413,11 @@ pub struct GooseFSRuntimeMaster { /// Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeMasterResources { + /// 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>, @@ -364,6 +426,13 @@ pub struct GooseFSRuntimeMasterResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeMasterResourcesClaims { + /// 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, +} + /// Manage the user to run GooseFS Runtime GooseFS support POSIX-ACL and Apache Ranger to manager authorization TODO(chrisydxie@tencent.com) Support Apache Ranger. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeRunAs { @@ -427,176 +496,176 @@ pub enum GooseFSRuntimeTieredstoreLevelsMediumtype { /// VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSource { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { /// 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? @@ -604,24 +673,24 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { /// 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? @@ -629,19 +698,19 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -649,35 +718,35 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { /// 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? @@ -685,7 +754,7 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -736,18 +805,18 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceDownwardApiItemsResourceFi pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -783,33 +852,33 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -821,7 +890,7 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -831,11 +900,19 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -844,7 +921,14 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -867,46 +951,46 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { /// 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? @@ -914,106 +998,106 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { /// 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? @@ -1021,61 +1105,61 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourcePersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourcePhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourcePortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1083,30 +1167,30 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1114,16 +1198,16 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -1171,16 +1255,16 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardAp pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1188,77 +1272,77 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { /// 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? @@ -1266,40 +1350,40 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: GooseFSRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { /// 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? @@ -1307,19 +1391,19 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -1327,36 +1411,36 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { /// 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? @@ -1364,19 +1448,19 @@ pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeTieredstoreLevelsVolumeSourceVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -1425,6 +1509,11 @@ pub struct GooseFSRuntimeWorker { /// Resources that will be requested by the GooseFS component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeWorkerResources { + /// 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>, @@ -1433,6 +1522,13 @@ pub struct GooseFSRuntimeWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct GooseFSRuntimeWorkerResourcesClaims { + /// 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, +} + /// RuntimeStatus defines the observed state of Runtime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GooseFSRuntimeStatus { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/jindoruntimes.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/jindoruntimes.rs index e343402b5..22b0f448b 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/jindoruntimes.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/jindoruntimes.rs @@ -96,9 +96,6 @@ pub struct JindoRuntimeFuse { /// Environment variables that will be used by Jindo Fuse #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, - /// If the fuse client should be deployed in global mode, otherwise the affinity should be considered - #[serde(default, skip_serializing_if = "Option::is_none")] - pub global: Option, /// Image for Jindo Fuse(e.g. jindo/jindo-fuse) #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, @@ -144,6 +141,11 @@ pub struct JindoRuntimeFusePodMetadata { /// Resources that will be requested by Jindo Fuse.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeFuseResources { + /// 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>, @@ -152,6 +154,13 @@ pub struct JindoRuntimeFuseResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JindoRuntimeFuseResourcesClaims { + /// 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, +} + /// 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 JindoRuntimeFuseTolerations { @@ -237,6 +246,11 @@ pub struct JindoRuntimeMasterPodMetadata { /// Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeMasterResources { + /// 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>, @@ -245,6 +259,13 @@ pub struct JindoRuntimeMasterResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JindoRuntimeMasterResourcesClaims { + /// 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, +} + /// 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 JindoRuntimeMasterTolerations { @@ -370,176 +391,176 @@ pub enum JindoRuntimeTieredstoreLevelsMediumtype { /// VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSource { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { /// 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? @@ -547,24 +568,24 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { /// 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? @@ -572,19 +593,19 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -592,35 +613,35 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { /// 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? @@ -628,7 +649,7 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -679,18 +700,18 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceDownwardApiItemsResourceFiel pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -726,33 +747,33 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplate /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -764,7 +785,7 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplate pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -774,11 +795,19 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplate pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -787,7 +816,14 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplate pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -810,46 +846,46 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplate pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { /// 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? @@ -857,106 +893,106 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { /// 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? @@ -964,61 +1000,61 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourcePersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourcePhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourcePortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1026,30 +1062,30 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1057,16 +1093,16 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -1114,16 +1150,16 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApiI pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1131,77 +1167,77 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { /// 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? @@ -1209,40 +1245,40 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: JindoRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { /// 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? @@ -1250,19 +1286,19 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -1270,36 +1306,36 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { /// 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? @@ -1307,19 +1343,19 @@ pub struct JindoRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeTieredstoreLevelsVolumeSourceVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -1336,178 +1372,178 @@ pub enum JindoRuntimeTieredstoreLevelsVolumeType { /// Volume represents a named volume in a pod that may be accessed by any container in the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumes { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names pub name: String, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesCephfsSecretRef { /// 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? @@ -1515,24 +1551,24 @@ pub struct JindoRuntimeVolumesCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesCinderSecretRef { /// 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? @@ -1540,19 +1576,19 @@ pub struct JindoRuntimeVolumesCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1560,35 +1596,35 @@ pub struct JindoRuntimeVolumesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesCsiNodePublishSecretRef { /// 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? @@ -1596,7 +1632,7 @@ pub struct JindoRuntimeVolumesCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -1647,18 +1683,18 @@ pub struct JindoRuntimeVolumesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -1694,33 +1730,33 @@ pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateMetadata { /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -1732,7 +1768,7 @@ pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -1742,11 +1778,19 @@ pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -1755,7 +1799,14 @@ pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -1778,46 +1829,46 @@ pub struct JindoRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpre pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesFlexVolumeSecretRef { /// 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? @@ -1825,106 +1876,106 @@ pub struct JindoRuntimeVolumesFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesIscsiSecretRef { /// 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? @@ -1932,61 +1983,61 @@ pub struct JindoRuntimeVolumesIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesPersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesPhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesPortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1994,30 +2045,30 @@ pub struct JindoRuntimeVolumesProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2025,16 +2076,16 @@ pub struct JindoRuntimeVolumesProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -2082,16 +2133,16 @@ pub struct JindoRuntimeVolumesProjectedSourcesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2099,77 +2150,77 @@ pub struct JindoRuntimeVolumesProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesRbdSecretRef { /// 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? @@ -2177,40 +2228,40 @@ pub struct JindoRuntimeVolumesRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: JindoRuntimeVolumesScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesScaleIoSecretRef { /// 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? @@ -2218,19 +2269,19 @@ pub struct JindoRuntimeVolumesScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -2238,36 +2289,36 @@ pub struct JindoRuntimeVolumesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesStorageosSecretRef { /// 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? @@ -2275,19 +2326,19 @@ pub struct JindoRuntimeVolumesStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeVolumesVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -2343,6 +2394,11 @@ pub struct JindoRuntimeWorkerPodMetadata { /// Resources that will be requested by the Jindo component.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JindoRuntimeWorkerResources { + /// 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>, @@ -2351,6 +2407,13 @@ pub struct JindoRuntimeWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JindoRuntimeWorkerResourcesClaims { + /// 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, +} + /// 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 JindoRuntimeWorkerTolerations { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/juicefsruntimes.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/juicefsruntimes.rs index 1d4b240be..a80b370ba 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/juicefsruntimes.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/juicefsruntimes.rs @@ -84,9 +84,6 @@ pub struct JuiceFSRuntimeFuse { /// Environment variables that will be used by JuiceFS Fuse #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, - /// If the fuse client should be deployed in global mode, otherwise the affinity should be considered - #[serde(default, skip_serializing_if = "Option::is_none")] - pub global: Option, /// Image for JuiceFS fuse #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, @@ -219,6 +216,11 @@ pub struct JuiceFSRuntimeFusePodMetadata { /// Resources that will be requested by JuiceFS Fuse. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeFuseResources { + /// 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>, @@ -227,6 +229,13 @@ pub struct JuiceFSRuntimeFuseResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeFuseResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeFuseVolumeMounts { @@ -272,6 +281,11 @@ pub struct JuiceFSRuntimeInitUsers { /// Resources that will be requested by initialize the users for runtime.

Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeInitUsersResources { + /// 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>, @@ -280,6 +294,13 @@ pub struct JuiceFSRuntimeInitUsersResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeInitUsersResourcesClaims { + /// 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, +} + /// The component spec of JuiceFS job Worker #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeJobWorker { @@ -438,6 +459,11 @@ pub struct JuiceFSRuntimeJobWorkerPorts { /// Resources that will be requested by the JuiceFS component. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeJobWorkerResources { + /// 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>, @@ -446,6 +472,13 @@ pub struct JuiceFSRuntimeJobWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeJobWorkerResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeJobWorkerVolumeMounts { @@ -640,6 +673,11 @@ pub struct JuiceFSRuntimeMasterPorts { /// Resources that will be requested by the JuiceFS component. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeMasterResources { + /// 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>, @@ -648,6 +686,13 @@ pub struct JuiceFSRuntimeMasterResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeMasterResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeMasterVolumeMounts { @@ -744,176 +789,176 @@ pub enum JuiceFSRuntimeTieredstoreLevelsMediumtype { /// VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSource { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { /// 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? @@ -921,24 +966,24 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { /// 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? @@ -946,19 +991,19 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -966,35 +1011,35 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { /// 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? @@ -1002,7 +1047,7 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -1053,18 +1098,18 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceDownwardApiItemsResourceFi pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -1100,33 +1145,33 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -1138,7 +1183,7 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -1148,11 +1193,19 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -1161,7 +1214,14 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -1184,46 +1244,46 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTempla pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { /// 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? @@ -1231,106 +1291,106 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { /// 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? @@ -1338,61 +1398,61 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourcePersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourcePhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourcePortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1400,30 +1460,30 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1431,16 +1491,16 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -1488,16 +1548,16 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardAp pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1505,77 +1565,77 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { /// 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? @@ -1583,40 +1643,40 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: JuiceFSRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { /// 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? @@ -1624,19 +1684,19 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -1644,36 +1704,36 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { /// 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? @@ -1681,19 +1741,19 @@ pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeTieredstoreLevelsVolumeSourceVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -1710,178 +1770,178 @@ pub enum JuiceFSRuntimeTieredstoreLevelsVolumeType { /// Volume represents a named volume in a pod that may be accessed by any container in the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumes { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names pub name: String, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesCephfsSecretRef { /// 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? @@ -1889,24 +1949,24 @@ pub struct JuiceFSRuntimeVolumesCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesCinderSecretRef { /// 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? @@ -1914,19 +1974,19 @@ pub struct JuiceFSRuntimeVolumesCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1934,35 +1994,35 @@ pub struct JuiceFSRuntimeVolumesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesCsiNodePublishSecretRef { /// 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? @@ -1970,7 +2030,7 @@ pub struct JuiceFSRuntimeVolumesCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -2021,18 +2081,18 @@ pub struct JuiceFSRuntimeVolumesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -2068,33 +2128,33 @@ pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateMetadata { /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -2106,7 +2166,7 @@ pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -2116,11 +2176,19 @@ pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -2129,7 +2197,14 @@ pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -2152,46 +2227,46 @@ pub struct JuiceFSRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExp pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesFlexVolumeSecretRef { /// 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? @@ -2199,106 +2274,106 @@ pub struct JuiceFSRuntimeVolumesFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesIscsiSecretRef { /// 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? @@ -2306,61 +2381,61 @@ pub struct JuiceFSRuntimeVolumesIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesPersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesPhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesPortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -2368,30 +2443,30 @@ pub struct JuiceFSRuntimeVolumesProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2399,16 +2474,16 @@ pub struct JuiceFSRuntimeVolumesProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -2456,16 +2531,16 @@ pub struct JuiceFSRuntimeVolumesProjectedSourcesDownwardApiItemsResourceFieldRef pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2473,77 +2548,77 @@ pub struct JuiceFSRuntimeVolumesProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesRbdSecretRef { /// 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? @@ -2551,40 +2626,40 @@ pub struct JuiceFSRuntimeVolumesRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: JuiceFSRuntimeVolumesScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesScaleIoSecretRef { /// 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? @@ -2592,19 +2667,19 @@ pub struct JuiceFSRuntimeVolumesScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -2612,36 +2687,36 @@ pub struct JuiceFSRuntimeVolumesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesStorageosSecretRef { /// 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? @@ -2649,19 +2724,19 @@ pub struct JuiceFSRuntimeVolumesStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeVolumesVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -2824,6 +2899,11 @@ pub struct JuiceFSRuntimeWorkerPorts { /// Resources that will be requested by the JuiceFS component. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeWorkerResources { + /// 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>, @@ -2832,6 +2912,13 @@ pub struct JuiceFSRuntimeWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct JuiceFSRuntimeWorkerResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct JuiceFSRuntimeWorkerVolumeMounts { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimeprofiles.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimeprofiles.rs index ee4172f4a..772bf9782 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimeprofiles.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimeprofiles.rs @@ -174,7 +174,7 @@ pub struct ThinRuntimeProfileFuseLivenessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -208,7 +208,7 @@ pub struct ThinRuntimeProfileFuseLivenessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// 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 ThinRuntimeProfileFuseLivenessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -241,7 +241,7 @@ pub struct ThinRuntimeProfileFuseLivenessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileFuseLivenessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -295,7 +295,7 @@ pub struct ThinRuntimeProfileFuseReadinessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -329,7 +329,7 @@ pub struct ThinRuntimeProfileFuseReadinessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// 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 ThinRuntimeProfileFuseReadinessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -362,7 +362,7 @@ pub struct ThinRuntimeProfileFuseReadinessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileFuseReadinessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -381,6 +381,11 @@ pub struct ThinRuntimeProfileFuseReadinessProbeTcpSocket { /// Resources that will be requested by thinRuntime Fuse. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileFuseResources { + /// 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>, @@ -389,6 +394,13 @@ pub struct ThinRuntimeProfileFuseResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ThinRuntimeProfileFuseResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileFuseVolumeMounts { @@ -422,178 +434,178 @@ pub enum ThinRuntimeProfileNodePublishSecretPolicy { /// Volume represents a named volume in a pod that may be accessed by any container in the pod. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumes { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names pub name: String, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesCephfsSecretRef { /// 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? @@ -601,24 +613,24 @@ pub struct ThinRuntimeProfileVolumesCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesCinderSecretRef { /// 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? @@ -626,19 +638,19 @@ pub struct ThinRuntimeProfileVolumesCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -646,35 +658,35 @@ pub struct ThinRuntimeProfileVolumesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesCsiNodePublishSecretRef { /// 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? @@ -682,7 +694,7 @@ pub struct ThinRuntimeProfileVolumesCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -733,18 +745,18 @@ pub struct ThinRuntimeProfileVolumesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -780,33 +792,33 @@ pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateMetadata { /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -818,7 +830,7 @@ pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecDataSource { pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -828,11 +840,19 @@ pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecDataSourceRe pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -841,7 +861,14 @@ pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecResources { pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -864,46 +891,46 @@ pub struct ThinRuntimeProfileVolumesEphemeralVolumeClaimTemplateSpecSelectorMatc pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesFlexVolumeSecretRef { /// 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? @@ -911,106 +938,106 @@ pub struct ThinRuntimeProfileVolumesFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesIscsiSecretRef { /// 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? @@ -1018,61 +1045,61 @@ pub struct ThinRuntimeProfileVolumesIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesPersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesPhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesPortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1080,30 +1107,30 @@ pub struct ThinRuntimeProfileVolumesProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1111,16 +1138,16 @@ pub struct ThinRuntimeProfileVolumesProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -1168,16 +1195,16 @@ pub struct ThinRuntimeProfileVolumesProjectedSourcesDownwardApiItemsResourceFiel pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1185,77 +1212,77 @@ pub struct ThinRuntimeProfileVolumesProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesRbdSecretRef { /// 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? @@ -1263,40 +1290,40 @@ pub struct ThinRuntimeProfileVolumesRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: ThinRuntimeProfileVolumesScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesScaleIoSecretRef { /// 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? @@ -1304,19 +1331,19 @@ pub struct ThinRuntimeProfileVolumesScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -1324,36 +1351,36 @@ pub struct ThinRuntimeProfileVolumesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesStorageosSecretRef { /// 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? @@ -1361,19 +1388,19 @@ pub struct ThinRuntimeProfileVolumesStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileVolumesVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -1511,7 +1538,7 @@ pub struct ThinRuntimeProfileWorkerLivenessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -1545,7 +1572,7 @@ pub struct ThinRuntimeProfileWorkerLivenessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// 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 ThinRuntimeProfileWorkerLivenessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -1578,7 +1605,7 @@ pub struct ThinRuntimeProfileWorkerLivenessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileWorkerLivenessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -1632,7 +1659,7 @@ pub struct ThinRuntimeProfileWorkerReadinessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -1666,7 +1693,7 @@ pub struct ThinRuntimeProfileWorkerReadinessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// 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 ThinRuntimeProfileWorkerReadinessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -1699,7 +1726,7 @@ pub struct ThinRuntimeProfileWorkerReadinessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileWorkerReadinessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -1718,6 +1745,11 @@ pub struct ThinRuntimeProfileWorkerReadinessProbeTcpSocket { /// Resources that will be requested by thinRuntime component. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileWorkerResources { + /// 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>, @@ -1726,6 +1758,13 @@ pub struct ThinRuntimeProfileWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ThinRuntimeProfileWorkerResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ThinRuntimeProfileWorkerVolumeMounts { diff --git a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimes.rs b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimes.rs index c8ea7d672..00eaf94ce 100644 --- a/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimes.rs +++ b/kube-custom-resources-rs/src/data_fluid_io/v1alpha1/thinruntimes.rs @@ -26,6 +26,9 @@ pub struct ThinRuntimeSpec { /// The component spec of thinRuntime #[serde(default, skip_serializing_if = "Option::is_none")] pub fuse: Option, + /// RuntimeManagement defines policies when managing the runtime + #[serde(default, skip_serializing_if = "Option::is_none")] + pub management: Option, /// The specific runtime profile name, empty value is used for handling datasets which mount another dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "profileName")] pub profile_name: Option, @@ -185,7 +188,7 @@ pub struct ThinRuntimeFuseLivenessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -219,7 +222,7 @@ pub struct ThinRuntimeFuseLivenessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeFuseLivenessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -252,7 +255,7 @@ pub struct ThinRuntimeFuseLivenessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeFuseLivenessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -306,7 +309,7 @@ pub struct ThinRuntimeFuseReadinessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -340,7 +343,7 @@ pub struct ThinRuntimeFuseReadinessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeFuseReadinessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -373,7 +376,7 @@ pub struct ThinRuntimeFuseReadinessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeFuseReadinessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -392,6 +395,11 @@ pub struct ThinRuntimeFuseReadinessProbeTcpSocket { /// Resources that will be requested by thinRuntime Fuse. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeFuseResources { + /// 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>, @@ -400,6 +408,13 @@ pub struct ThinRuntimeFuseResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeFuseResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeFuseVolumeMounts { @@ -422,6 +437,36 @@ pub struct ThinRuntimeFuseVolumeMounts { pub sub_path_expr: Option, } +/// RuntimeManagement defines policies when managing the runtime +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeManagement { + /// CleanCachePolicy defines the policy of cleaning cache when shutting down the runtime + #[serde(default, skip_serializing_if = "Option::is_none", rename = "cleanCachePolicy")] + pub clean_cache_policy: Option, + /// MetadataSyncPolicy defines the policy of syncing metadata when setting up the runtime. If not set, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "metadataSyncPolicy")] + pub metadata_sync_policy: Option, +} + +/// CleanCachePolicy defines the policy of cleaning cache when shutting down the runtime +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeManagementCleanCachePolicy { + /// Optional duration in seconds the cache needs to clean gracefully. May be decreased in delete runtime request. Value must be non-negative integer. The value zero indicates clean immediately via the timeout command (no opportunity to shut down). If this value is nil, the default grace period will be used instead. 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 timeout command. Set this value longer than the expected cleanup time for your process. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracePeriodSeconds")] + pub grace_period_seconds: Option, + /// Optional max retry Attempts when cleanCache function returns an error after execution, runtime attempts to run it three more times by default. With Maximum Retry Attempts, you can customize the maximum number of retries. This gives you the option to continue processing retries. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRetryAttempts")] + pub max_retry_attempts: Option, +} + +/// MetadataSyncPolicy defines the policy of syncing metadata when setting up the runtime. If not set, +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeManagementMetadataSyncPolicy { + /// AutoSync enables automatic metadata sync when setting up a runtime. If not set, it defaults to true. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "autoSync")] + pub auto_sync: Option, +} + /// Manage the user to run Runtime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeRunAs { @@ -485,176 +530,176 @@ pub enum ThinRuntimeTieredstoreLevelsMediumtype { /// VolumeSource is the volume source of the tier. It follows the form of corev1.VolumeSource. For now, users should only specify VolumeSource when VolumeType is set to emptyDir. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSource { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { /// 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? @@ -662,24 +707,24 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { /// 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? @@ -687,19 +732,19 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -707,35 +752,35 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { /// 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? @@ -743,7 +788,7 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -794,18 +839,18 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceDownwardApiItemsResourceField pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -841,33 +886,33 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateM /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -879,7 +924,7 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateS pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -889,11 +934,19 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateS pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -902,7 +955,14 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateS pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -925,46 +985,46 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceEphemeralVolumeClaimTemplateS pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { /// 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? @@ -972,106 +1032,106 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { /// 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? @@ -1079,61 +1139,61 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourcePersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourcePhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourcePortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -1141,30 +1201,30 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1172,16 +1232,16 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -1229,16 +1289,16 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesDownwardApiIt pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1246,77 +1306,77 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { /// 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? @@ -1324,40 +1384,40 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: ThinRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { /// 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? @@ -1365,19 +1425,19 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -1385,36 +1445,36 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { /// 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? @@ -1422,19 +1482,19 @@ pub struct ThinRuntimeTieredstoreLevelsVolumeSourceStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeTieredstoreLevelsVolumeSourceVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -1451,178 +1511,178 @@ pub enum ThinRuntimeTieredstoreLevelsVolumeType { /// Volume represents a named volume in a pod that may be accessed by any container in the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumes { - /// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")] pub aws_elastic_block_store: Option, - /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")] pub azure_disk: Option, - /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")] pub azure_file: Option, - /// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime + /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub cephfs: Option, - /// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub cinder: Option, - /// ConfigMap represents a configMap that should populate this volume + /// configMap represents a configMap that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). + /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[serde(default, skip_serializing_if = "Option::is_none")] pub csi: Option, - /// DownwardAPI represents downward API about the pod that should populate this volume + /// downwardAPI represents downward API about the pod that should populate this volume #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")] pub empty_dir: Option, - /// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. + /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. #[serde(default, skip_serializing_if = "Option::is_none")] pub ephemeral: Option, - /// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. + /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub fc: Option, - /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")] pub flex_volume: Option, - /// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running + /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[serde(default, skip_serializing_if = "Option::is_none")] pub flocker: Option, - /// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")] pub gce_persistent_disk: Option, - /// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")] pub git_repo: Option, - /// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md + /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub glusterfs: Option, - /// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. + /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")] pub host_path: Option, - /// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub iscsi: Option, - /// Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names pub name: String, - /// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none")] pub nfs: Option, - /// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine + /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")] pub photon_persistent_disk: Option, - /// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine + /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")] pub portworx_volume: Option, - /// Items for all in one resources secrets, configmaps, and downward API + /// projected items for all in one resources secrets, configmaps, and downward API #[serde(default, skip_serializing_if = "Option::is_none")] pub projected: Option, - /// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime + /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[serde(default, skip_serializing_if = "Option::is_none")] pub quobyte: Option, - /// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md + /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[serde(default, skip_serializing_if = "Option::is_none")] pub rbd: Option, - /// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. + /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")] pub scale_io: Option, - /// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. + /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[serde(default, skip_serializing_if = "Option::is_none")] pub storageos: Option, - /// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine + /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")] pub vsphere_volume: Option, } -/// AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore +/// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesAwsElasticBlockStore { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore #[serde(rename = "volumeID")] pub volume_id: String, } -/// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +/// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesAzureDisk { - /// Host Caching mode: None, Read Only, Read Write. + /// cachingMode is the Host Caching mode: None, Read Only, Read Write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "cachingMode")] pub caching_mode: Option, - /// The Name of the data disk in the blob storage + /// diskName is the Name of the data disk in the blob storage #[serde(rename = "diskName")] pub disk_name: String, - /// The URI the data disk in the blob storage + /// diskURI is the URI of data disk in the blob storage #[serde(rename = "diskURI")] pub disk_uri: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +/// azureFile represents an Azure File Service mount on the host and bind mount to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesAzureFile { - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// the name of secret that contains Azure Storage Account Name and Key + /// secretName is the name of secret that contains Azure Storage Account Name and Key #[serde(rename = "secretName")] pub secret_name: String, - /// Share Name + /// shareName is the azure share Name #[serde(rename = "shareName")] pub share_name: String, } -/// CephFS represents a Ceph FS mount on the host that shares a pod's lifetime +/// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesCephfs { - /// Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it pub monitors: Vec, - /// Optional: Used as the mounted root, rather than the full Ceph tree, default is / + /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretFile")] pub secret_file: Option, - /// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it +/// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesCephfsSecretRef { /// 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? @@ -1630,24 +1690,24 @@ pub struct ThinRuntimeVolumesCephfsSecretRef { pub name: Option, } -/// Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md +/// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesCinder { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: points to a secret object containing parameters used to connect to OpenStack. + /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md #[serde(rename = "volumeID")] pub volume_id: String, } -/// Optional: points to a secret object containing parameters used to connect to OpenStack. +/// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesCinderSecretRef { /// 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? @@ -1655,19 +1715,19 @@ pub struct ThinRuntimeVolumesCinderSecretRef { pub name: Option, } -/// ConfigMap represents a configMap that should populate this volume +/// configMap represents a configMap that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesConfigMap { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -1675,35 +1735,35 @@ pub struct ThinRuntimeVolumesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). +/// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesCsi { - /// Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. pub driver: String, - /// Filesystem type to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. + /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePublishSecretRef")] pub node_publish_secret_ref: Option, - /// Specifies a read-only configuration for the volume. Defaults to false (read/write). + /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributes")] pub volume_attributes: Option>, } -/// NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. +/// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesCsiNodePublishSecretRef { /// 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? @@ -1711,7 +1771,7 @@ pub struct ThinRuntimeVolumesCsiNodePublishSecretRef { pub name: Option, } -/// DownwardAPI represents downward API about the pod that should populate this volume +/// downwardAPI represents downward API about the pod that should populate this volume #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesDownwardApi { /// Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. @@ -1762,18 +1822,18 @@ pub struct ThinRuntimeVolumesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir +/// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesEmptyDir { - /// What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none")] pub medium: Option, - /// Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir + /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir #[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")] pub size_limit: Option, } -/// Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. +/// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. @@ -1809,33 +1869,33 @@ pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateMetadata { /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpec { - /// AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, - /// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] pub data_source: Option, - /// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, - /// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// A label query over volumes to consider for binding. + /// selector is a label query over volumes to consider for binding. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] pub storage_class_name: Option, /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] pub volume_mode: Option, - /// VolumeName is the binding reference to the PersistentVolume backing this claim. + /// volumeName is the binding reference to the PersistentVolume backing this claim. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field. +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { /// 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. @@ -1847,7 +1907,7 @@ pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSource { pub name: String, } -/// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled. +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { /// 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. @@ -1857,11 +1917,19 @@ pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef { pub kind: String, /// Name is the name of resource being referenced pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, } -/// Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { + /// 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>, @@ -1870,7 +1938,14 @@ pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecResources { pub requests: Option>, } -/// A label query over volumes to consider for binding. +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -1893,46 +1968,46 @@ pub struct ThinRuntimeVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpres pub values: Option>, } -/// FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. +/// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesFc { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: FC target lun number + /// lun is Optional: FC target lun number #[serde(default, skip_serializing_if = "Option::is_none")] pub lun: Option, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: FC target worldwide names (WWNs) + /// targetWWNs is Optional: FC target worldwide names (WWNs) #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetWWNs")] pub target_ww_ns: Option>, - /// Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. #[serde(default, skip_serializing_if = "Option::is_none")] pub wwids: Option>, } -/// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +/// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesFlexVolume { - /// Driver is the name of the driver to use for this volume. + /// driver is the name of the driver to use for this volume. pub driver: String, - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Optional: Extra command options if any. + /// options is Optional: this field holds extra command options if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub options: Option>, - /// Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. + /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, } -/// Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. +/// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesFlexVolumeSecretRef { /// 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? @@ -1940,106 +2015,106 @@ pub struct ThinRuntimeVolumesFlexVolumeSecretRef { pub name: Option, } -/// Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running +/// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesFlocker { - /// Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetName")] pub dataset_name: Option, - /// UUID of the dataset. This is unique identifier of a Flocker dataset + /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset #[serde(default, skip_serializing_if = "Option::is_none", rename = "datasetUUID")] pub dataset_uuid: Option, } -/// GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk +/// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesGcePersistentDisk { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none")] pub partition: Option, - /// Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(rename = "pdName")] pub pd_name: String, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +/// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesGitRepo { - /// Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. #[serde(default, skip_serializing_if = "Option::is_none")] pub directory: Option, - /// Repository URL + /// repository is the URL pub repository: String, - /// Commit hash for the specified revision. + /// revision is the commit hash for the specified revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub revision: Option, } -/// Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md +/// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesGlusterfs { - /// EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub endpoints: String, - /// Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod pub path: String, - /// ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. +/// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesHostPath { - /// Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath pub path: String, - /// Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +/// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesIscsi { - /// whether support iSCSI Discovery CHAP authentication + /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthDiscovery")] pub chap_auth_discovery: Option, - /// whether support iSCSI Session CHAP authentication + /// chapAuthSession defines whether support iSCSI Session CHAP authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "chapAuthSession")] pub chap_auth_session: Option, - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initiatorName")] pub initiator_name: Option, - /// Target iSCSI Qualified Name. + /// iqn is the target iSCSI Qualified Name. pub iqn: String, - /// iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). #[serde(default, skip_serializing_if = "Option::is_none", rename = "iscsiInterface")] pub iscsi_interface: Option, - /// iSCSI Target Lun number. + /// lun represents iSCSI Target Lun number. pub lun: i32, - /// iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(default, skip_serializing_if = "Option::is_none")] pub portals: Option>, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// CHAP Secret for iSCSI target and initiator authentication + /// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). #[serde(rename = "targetPortal")] pub target_portal: String, } -/// CHAP Secret for iSCSI target and initiator authentication +/// secretRef is the CHAP Secret for iSCSI target and initiator authentication #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesIscsiSecretRef { /// 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? @@ -2047,61 +2122,61 @@ pub struct ThinRuntimeVolumesIscsiSecretRef { pub name: Option, } -/// NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs +/// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesNfs { - /// Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub path: String, - /// ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs pub server: String, } -/// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims +/// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesPersistentVolumeClaim { - /// ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(rename = "claimName")] pub claim_name: String, - /// Will force the ReadOnly setting in VolumeMounts. Default false. + /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, } -/// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine +/// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesPhotonPersistentDisk { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// ID that identifies Photon Controller persistent disk + /// pdID is the ID that identifies Photon Controller persistent disk #[serde(rename = "pdID")] pub pd_id: String, } -/// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine +/// portworxVolume represents a portworx volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesPortworxVolume { - /// FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// VolumeID uniquely identifies a Portworx volume + /// volumeID uniquely identifies a Portworx volume #[serde(rename = "volumeID")] pub volume_id: String, } -/// Items for all in one resources secrets, configmaps, and downward API +/// projected items for all in one resources secrets, configmaps, and downward API #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjected { - /// Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// list of volume projections + /// sources is the list of volume projections #[serde(default, skip_serializing_if = "Option::is_none")] pub sources: Option>, } @@ -2109,30 +2184,30 @@ pub struct ThinRuntimeVolumesProjected { /// Projection that may be projected along with other supported volume types #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSources { - /// information about the configMap data to project + /// configMap information about the configMap data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")] pub config_map: Option, - /// information about the downwardAPI data to project + /// downwardAPI information about the downwardAPI data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")] pub downward_api: Option, - /// information about the secret data to project + /// secret information about the secret data to project #[serde(default, skip_serializing_if = "Option::is_none")] pub secret: Option, - /// information about the serviceAccountToken data to project + /// serviceAccountToken is information about the serviceAccountToken data to project #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")] pub service_account_token: Option, } -/// information about the configMap data to project +/// configMap information about the configMap data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSourcesConfigMap { - /// If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 keys must be defined + /// optional specify whether the ConfigMap or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2140,16 +2215,16 @@ pub struct ThinRuntimeVolumesProjectedSourcesConfigMap { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSourcesConfigMapItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the downwardAPI data to project +/// downwardAPI information about the downwardAPI data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSourcesDownwardApi { /// Items is a list of DownwardAPIVolume file @@ -2197,16 +2272,16 @@ pub struct ThinRuntimeVolumesProjectedSourcesDownwardApiItemsResourceFieldRef { pub resource: String, } -/// information about the secret data to project +/// secret information about the secret data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSourcesSecret { - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// 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 + /// optional field specify whether the Secret or its key must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, } @@ -2214,77 +2289,77 @@ pub struct ThinRuntimeVolumesProjectedSourcesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSourcesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// information about the serviceAccountToken data to project +/// serviceAccountToken is information about the serviceAccountToken data to project #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesProjectedSourcesServiceAccountToken { - /// Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. #[serde(default, skip_serializing_if = "Option::is_none")] pub audience: Option, - /// ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")] pub expiration_seconds: Option, - /// Path is the path relative to the mount point of the file to project the token into. + /// path is the path relative to the mount point of the file to project the token into. pub path: String, } -/// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime +/// quobyte represents a Quobyte mount on the host that shares a pod's lifetime #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesQuobyte { - /// Group to map volume access to Default is no group + /// group to map volume access to Default is no group #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, - /// ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes pub registry: String, - /// Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin #[serde(default, skip_serializing_if = "Option::is_none")] pub tenant: Option, - /// User to map volume access to Defaults to serivceaccount user + /// user to map volume access to Defaults to serivceaccount user #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, - /// Volume is a string that references an already created Quobyte volume by name. + /// volume is a string that references an already created Quobyte volume by name. pub volume: String, } -/// RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md +/// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesRbd { - /// Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine + /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub image: String, - /// Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub keyring: Option, - /// A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it pub monitors: Vec, - /// The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub pool: Option, - /// ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[serde(default, skip_serializing_if = "Option::is_none")] pub user: Option, } -/// SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it +/// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesRbdSecretRef { /// 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? @@ -2292,40 +2367,40 @@ pub struct ThinRuntimeVolumesRbdSecretRef { pub name: Option, } -/// ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. +/// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesScaleIo { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// The host address of the ScaleIO API Gateway. + /// gateway is the host address of the ScaleIO API Gateway. pub gateway: String, - /// The name of the ScaleIO Protection Domain for the configured storage. + /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. #[serde(default, skip_serializing_if = "Option::is_none", rename = "protectionDomain")] pub protection_domain: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. + /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[serde(rename = "secretRef")] pub secret_ref: ThinRuntimeVolumesScaleIoSecretRef, - /// Flag to enable/disable SSL communication with Gateway, default false + /// sslEnabled Flag enable/disable SSL communication with Gateway, default false #[serde(default, skip_serializing_if = "Option::is_none", rename = "sslEnabled")] pub ssl_enabled: Option, - /// Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageMode")] pub storage_mode: Option, - /// The ScaleIO Storage Pool associated with the protection domain. + /// storagePool is the ScaleIO Storage Pool associated with the protection domain. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePool")] pub storage_pool: Option, - /// The name of the storage system as configured in ScaleIO. + /// system is the name of the storage system as configured in ScaleIO. pub system: String, - /// The name of a volume already created in the ScaleIO system that is associated with this volume source. + /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, } -/// SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. +/// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesScaleIoSecretRef { /// 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? @@ -2333,19 +2408,19 @@ pub struct ThinRuntimeVolumesScaleIoSecretRef { pub name: Option, } -/// Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret +/// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesSecret { - /// Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")] pub default_mode: Option, - /// If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + /// items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// Specify whether the Secret or its keys must be defined + /// optional field specify whether the Secret or its keys must be defined #[serde(default, skip_serializing_if = "Option::is_none")] pub optional: Option, - /// Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, } @@ -2353,36 +2428,36 @@ pub struct ThinRuntimeVolumesSecret { /// Maps a string key to a path within a volume. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesSecretItems { - /// The key to project. + /// key is the key to project. pub key: String, - /// Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + /// mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, - /// The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. pub path: String, } -/// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. +/// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesStorageos { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, - /// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. + /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] pub secret_ref: Option, - /// VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] pub volume_name: Option, - /// VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeNamespace")] pub volume_namespace: Option, } -/// SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. +/// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesStorageosSecretRef { /// 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? @@ -2390,19 +2465,19 @@ pub struct ThinRuntimeVolumesStorageosSecretRef { pub name: Option, } -/// VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine +/// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeVolumesVsphereVolume { - /// Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")] pub fs_type: Option, - /// Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyID")] pub storage_policy_id: Option, - /// Storage Policy Based Management (SPBM) profile name. + /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "storagePolicyName")] pub storage_policy_name: Option, - /// Path that identifies vSphere volume vmdk + /// volumePath is the path that identifies vSphere volume vmdk #[serde(rename = "volumePath")] pub volume_path: String, } @@ -2540,7 +2615,7 @@ pub struct ThinRuntimeWorkerLivenessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -2574,7 +2649,7 @@ pub struct ThinRuntimeWorkerLivenessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeWorkerLivenessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -2607,7 +2682,7 @@ pub struct ThinRuntimeWorkerLivenessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeWorkerLivenessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -2661,7 +2736,7 @@ pub struct ThinRuntimeWorkerReadinessProbe { /// 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 an alpha field and requires enabling GRPCContainerProbe feature gate. + /// 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. @@ -2695,7 +2770,7 @@ pub struct ThinRuntimeWorkerReadinessProbeExec { pub command: Option>, } -/// GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate. +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeWorkerReadinessProbeGrpc { /// Port number of the gRPC service. Number must be in the range 1 to 65535. @@ -2728,7 +2803,7 @@ pub struct ThinRuntimeWorkerReadinessProbeHttpGet { /// HTTPHeader describes a custom header to be used in HTTP probes #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeWorkerReadinessProbeHttpGetHttpHeaders { - /// The header field name + /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. pub name: String, /// The header field value pub value: String, @@ -2747,6 +2822,11 @@ pub struct ThinRuntimeWorkerReadinessProbeTcpSocket { /// Resources that will be requested by thinRuntime component. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeWorkerResources { + /// 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>, @@ -2755,6 +2835,13 @@ pub struct ThinRuntimeWorkerResources { pub requests: Option>, } +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ThinRuntimeWorkerResourcesClaims { + /// 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, +} + /// VolumeMount describes a mounting of a Volume within a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThinRuntimeWorkerVolumeMounts { diff --git a/kube-custom-resources-rs/src/elbv2_k8s_aws/v1beta1/ingressclassparams.rs b/kube-custom-resources-rs/src/elbv2_k8s_aws/v1beta1/ingressclassparams.rs index f945cc32b..0b67732e1 100644 --- a/kube-custom-resources-rs/src/elbv2_k8s_aws/v1beta1/ingressclassparams.rs +++ b/kube-custom-resources-rs/src/elbv2_k8s_aws/v1beta1/ingressclassparams.rs @@ -17,9 +17,9 @@ use self::prelude::*; #[kube(derive="Default")] #[kube(derive="PartialEq")] pub struct IngressClassParamsSpec { - /// CertificateARN specifies the ARN of the certificates for all Ingresses that belong to IngressClass with this IngressClassParams. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "certficateArn")] - pub certficate_arn: Option>, + /// CertificateArn specifies the ARN of the certificates for all Ingresses that belong to IngressClass with this IngressClassParams. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "certificateArn")] + pub certificate_arn: Option>, /// Group defines the IngressGroup for all Ingresses that belong to IngressClass with this IngressClassParams. #[serde(default, skip_serializing_if = "Option::is_none")] pub group: Option, @@ -64,6 +64,8 @@ pub enum IngressClassParamsIpAddressType { Ipv4, #[serde(rename = "dualstack")] Dualstack, + #[serde(rename = "dualstack-without-public-ipv4")] + DualstackWithoutPublicIpv4, } /// Attributes defines custom attributes on resources. 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 0ab4d9369..2390582ae 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 @@ -630,6 +630,9 @@ pub struct ClusterSecretStoreProviderAzurekv { /// Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. Optional for WorkloadIdentity. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterSecretStoreProviderAzurekvAuthSecretRef { + /// The Azure ClientCertificate of the service principle used for authentication. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCertificate")] + pub client_certificate: Option, /// The Azure clientId of the service principle or managed identity used for authentication. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientId")] pub client_id: Option, @@ -641,6 +644,22 @@ pub struct ClusterSecretStoreProviderAzurekvAuthSecretRef { pub tenant_id: Option, } +/// The Azure ClientCertificate of the service principle used for authentication. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterSecretStoreProviderAzurekvAuthSecretRefClientCertificate { + /// 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, +} + /// The Azure clientId of the service principle or managed identity used for authentication. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterSecretStoreProviderAzurekvAuthSecretRefClientId { 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 9b3a3075c..e4959903b 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 @@ -631,6 +631,9 @@ pub struct SecretStoreProviderAzurekv { /// Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. Optional for WorkloadIdentity. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecretStoreProviderAzurekvAuthSecretRef { + /// The Azure ClientCertificate of the service principle used for authentication. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCertificate")] + pub client_certificate: Option, /// The Azure clientId of the service principle or managed identity used for authentication. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientId")] pub client_id: Option, @@ -642,6 +645,22 @@ pub struct SecretStoreProviderAzurekvAuthSecretRef { pub tenant_id: Option, } +/// The Azure ClientCertificate of the service principle used for authentication. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SecretStoreProviderAzurekvAuthSecretRefClientCertificate { + /// 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, +} + /// The Azure clientId of the service principle or managed identity used for authentication. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecretStoreProviderAzurekvAuthSecretRefClientId { diff --git a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs index 42ea4f8c2..1eb182d6e 100644 --- a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs +++ b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs @@ -102,7 +102,7 @@ pub struct FlowCollectorAgentEbpf { /// the kernel debug filesystem, so the eBPF pod has to run as privileged. /// If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
/// - `DNSTracking`: enable the DNS tracking feature.
- /// - `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
+ /// - `FlowRTT`: enable flow latency (sRTT) extraction in the eBPF agent from TCP traffic.
#[serde(default, skip_serializing_if = "Option::is_none")] pub features: Option>, /// `flowFilter` defines the eBPF agent configuration regarding flow filtering @@ -264,7 +264,7 @@ pub enum FlowCollectorAgentEbpfLogLevel { pub struct FlowCollectorAgentEbpfMetrics { /// `disableAlerts` is a list of alerts that should be disabled. /// Possible values are:
- /// `NetObservDroppedFlows`, which is triggered when eBPF agent hashmap table is full.
+ /// `NetObservDroppedFlows`, which is triggered when the eBPF agent is dropping flows, such as when the BPF hashmap is full or the capacity limiter being triggered.
#[serde(default, skip_serializing_if = "Option::is_none", rename = "disableAlerts")] pub disable_alerts: Option>, /// Set `enable` to `true` to enable eBPF agent metrics collection. diff --git a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs index aff74342c..213ed3080 100644 --- a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs +++ b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs @@ -102,7 +102,7 @@ pub struct FlowCollectorAgentEbpf { /// the kernel debug filesystem, so the eBPF pod has to run as privileged. /// If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
/// - `DNSTracking`: enable the DNS tracking feature.
- /// - `FlowRTT`: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
+ /// - `FlowRTT`: enable flow latency (sRTT) extraction in the eBPF agent from TCP traffic.
#[serde(default, skip_serializing_if = "Option::is_none")] pub features: Option>, /// `flowFilter` defines the eBPF agent configuration regarding flow filtering @@ -1022,7 +1022,7 @@ pub enum FlowCollectorAgentEbpfLogLevel { pub struct FlowCollectorAgentEbpfMetrics { /// `disableAlerts` is a list of alerts that should be disabled. /// Possible values are:
- /// `NetObservDroppedFlows`, which is triggered when eBPF agent hashmap table is full.
+ /// `NetObservDroppedFlows`, which is triggered when the eBPF agent is dropping flows, such as when the BPF hashmap is full or the capacity limiter being triggered.
#[serde(default, skip_serializing_if = "Option::is_none", rename = "disableAlerts")] pub disable_alerts: Option>, /// Set `enable` to `true` to enable eBPF agent metrics collection. diff --git a/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/clusteroutputs.rs b/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/clusteroutputs.rs index 0858ff604..d2d1e6e3b 100644 --- a/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/clusteroutputs.rs +++ b/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/clusteroutputs.rs @@ -872,6 +872,9 @@ pub struct ClusterOutputForward { /// A key string known by the remote Fluentd used for authorization. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedKey")] pub shared_key: Option, + /// Overwrite the tag as we transmit. This allows the receiving pipeline start fresh, or to attribute source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tag: Option, /// Set timestamps in integer format, it enable compatibility mode for Fluentd v0.12 series. #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeAsInteger")] pub time_as_integer: Option, diff --git a/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/outputs.rs b/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/outputs.rs index 40858fe0c..2ba7c1bd3 100644 --- a/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/outputs.rs +++ b/kube-custom-resources-rs/src/fluentbit_fluent_io/v1alpha2/outputs.rs @@ -873,6 +873,9 @@ pub struct OutputForward { /// A key string known by the remote Fluentd used for authorization. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedKey")] pub shared_key: Option, + /// Overwrite the tag as we transmit. This allows the receiving pipeline start fresh, or to attribute source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tag: Option, /// Set timestamps in integer format, it enable compatibility mode for Fluentd v0.12 series. #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeAsInteger")] pub time_as_integer: Option, diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs index ef2322333..2bac917f5 100644 --- a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs @@ -31,6 +31,9 @@ pub struct PlanSpec { /// Preserve the CPU model and flags the VM runs with in its oVirt cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "preserveClusterCpuModel")] pub preserve_cluster_cpu_model: Option, + /// Preserve static IPs of VMs in vSphere (Windows only) + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preserveStaticIPs")] + pub preserve_static_i_ps: Option, /// Providers. pub provider: PlanProvider, /// Target namespace. diff --git a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/clientsettingspolicies.rs b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/clientsettingspolicies.rs index b21f1c77c..e75d4d504 100644 --- a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/clientsettingspolicies.rs +++ b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/clientsettingspolicies.rs @@ -98,12 +98,6 @@ pub struct ClientSettingsPolicyTargetRef { pub kind: String, /// Name is the name of the target resource. pub name: String, - /// Namespace is the namespace of the referent. When unspecified, the local - /// namespace is inferred. Even when policy targets a resource in a different - /// namespace, it MUST only apply to traffic originating from the same - /// namespace as the policy. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub namespace: Option, } /// Status defines the state of the ClientSettingsPolicy. @@ -231,7 +225,7 @@ pub struct ClientSettingsPolicyStatusAncestorsAncestorRef { /// /// /// * Gateway (Gateway conformance profile) - /// * Service (Mesh conformance profile, experimental, ClusterIP Services only) + /// * Service (Mesh conformance profile, ClusterIP Services only) /// /// /// Support for other resources is Implementation-Specific. @@ -305,23 +299,18 @@ pub struct ClientSettingsPolicyStatusAncestorsAncestorRef { /// /// /// Support: Extended - /// - /// - /// #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, /// SectionName is the name of a section within the target resource. In the /// following resources, SectionName is interpreted as the following: /// /// - /// * Gateway: Listener Name. When both Port (experimental) and SectionName + /// * Gateway: Listener name. When both Port (experimental) and SectionName /// are specified, the name and port of the selected listener must match /// both specified values. - /// * Service: Port Name. When both Port (experimental) and SectionName + /// * Service: Port name. When both Port (experimental) and SectionName /// are specified, the name and port of the selected listener must match - /// both specified values. Note that attaching Routes to Services as Parents - /// is part of experimental Mesh support and is not supported for any other - /// purpose. + /// both specified values. /// /// /// Implementations MAY choose to support attaching Routes to other resources. diff --git a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxproxies.rs b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxproxies.rs index e46e9f412..8956abe75 100644 --- a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxproxies.rs +++ b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxproxies.rs @@ -16,6 +16,10 @@ use self::prelude::*; #[kube(derive="Default")] #[kube(derive="PartialEq")] pub struct NginxProxySpec { + /// DisableHTTP2 defines if http2 should be disabled for all servers. + /// Default is false, meaning http2 will be enabled for all servers. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableHTTP2")] + pub disable_http2: Option, /// Telemetry specifies the OpenTelemetry configuration. #[serde(default, skip_serializing_if = "Option::is_none")] pub telemetry: Option, diff --git a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/observabilitypolicies.rs b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/observabilitypolicies.rs index 9be709f3f..3e0a0220a 100644 --- a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/observabilitypolicies.rs +++ b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/observabilitypolicies.rs @@ -43,12 +43,6 @@ pub struct ObservabilityPolicyTargetRef { pub kind: String, /// Name is the name of the target resource. pub name: String, - /// Namespace is the namespace of the referent. When unspecified, the local - /// namespace is inferred. Even when policy targets a resource in a different - /// namespace, it MUST only apply to traffic originating from the same - /// namespace as the policy. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub namespace: Option, } /// Tracing allows for enabling and configuring tracing. @@ -233,7 +227,7 @@ pub struct ObservabilityPolicyStatusAncestorsAncestorRef { /// /// /// * Gateway (Gateway conformance profile) - /// * Service (Mesh conformance profile, experimental, ClusterIP Services only) + /// * Service (Mesh conformance profile, ClusterIP Services only) /// /// /// Support for other resources is Implementation-Specific. @@ -307,23 +301,18 @@ pub struct ObservabilityPolicyStatusAncestorsAncestorRef { /// /// /// Support: Extended - /// - /// - /// #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, /// SectionName is the name of a section within the target resource. In the /// following resources, SectionName is interpreted as the following: /// /// - /// * Gateway: Listener Name. When both Port (experimental) and SectionName + /// * Gateway: Listener name. When both Port (experimental) and SectionName /// are specified, the name and port of the selected listener must match /// both specified values. - /// * Service: Port Name. When both Port (experimental) and SectionName + /// * Service: Port name. When both Port (experimental) and SectionName /// are specified, the name and port of the selected listener must match - /// both specified values. Note that attaching Routes to Services as Parents - /// is part of experimental Mesh support and is not supported for any other - /// purpose. + /// both specified values. /// /// /// Implementations MAY choose to support attaching Routes to other resources. diff --git a/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshotcontents.rs b/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshotcontents.rs index bd8dbed4f..9ee7a8211 100644 --- a/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshotcontents.rs +++ b/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshotcontents.rs @@ -9,79 +9,154 @@ mod prelude { } use self::prelude::*; -/// Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system. Required. +/// Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system. +/// Required. #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)] #[kube(group = "groupsnapshot.storage.k8s.io", version = "v1alpha1", kind = "VolumeGroupSnapshotContent", plural = "volumegroupsnapshotcontents")] #[kube(status = "VolumeGroupSnapshotContentStatus")] #[kube(schema = "disabled")] #[kube(derive="PartialEq")] pub struct VolumeGroupSnapshotContentSpec { - /// DeletionPolicy determines whether this VolumeGroupSnapshotContent and the physical group snapshot on the underlying storage system should be deleted when the bound VolumeGroupSnapshot is deleted. Supported values are "Retain" and "Delete". "Retain" means that the VolumeGroupSnapshotContent and its physical group snapshot on underlying storage system are kept. "Delete" means that the VolumeGroupSnapshotContent and its physical group snapshot on underlying storage system are deleted. For dynamically provisioned group snapshots, this field will automatically be filled in by the CSI snapshotter sidecar with the "DeletionPolicy" field defined in the corresponding VolumeGroupSnapshotClass. For pre-existing snapshots, users MUST specify this field when creating the VolumeGroupSnapshotContent object. Required. + /// DeletionPolicy determines whether this VolumeGroupSnapshotContent and the + /// physical group snapshot on the underlying storage system should be deleted + /// when the bound VolumeGroupSnapshot is deleted. + /// Supported values are "Retain" and "Delete". + /// "Retain" means that the VolumeGroupSnapshotContent and its physical group + /// snapshot on underlying storage system are kept. + /// "Delete" means that the VolumeGroupSnapshotContent and its physical group + /// snapshot on underlying storage system are deleted. + /// For dynamically provisioned group snapshots, this field will automatically + /// be filled in by the CSI snapshotter sidecar with the "DeletionPolicy" field + /// defined in the corresponding VolumeGroupSnapshotClass. + /// For pre-existing snapshots, users MUST specify this field when creating the + /// VolumeGroupSnapshotContent object. + /// Required. #[serde(rename = "deletionPolicy")] pub deletion_policy: VolumeGroupSnapshotContentDeletionPolicy, - /// Driver is the name of the CSI driver used to create the physical group snapshot on the underlying storage system. This MUST be the same as the name returned by the CSI GetPluginName() call for that driver. Required. + /// Driver is the name of the CSI driver used to create the physical group snapshot on + /// the underlying storage system. + /// This MUST be the same as the name returned by the CSI GetPluginName() call for + /// that driver. + /// Required. pub driver: String, - /// Source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required. + /// Source specifies whether the snapshot is (or should be) dynamically provisioned + /// or already exists, and just requires a Kubernetes object representation. + /// This field is immutable after creation. + /// Required. pub source: VolumeGroupSnapshotContentSource, - /// VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass from which this group snapshot was (or will be) created. Note that after provisioning, the VolumeGroupSnapshotClass may be deleted or recreated with different set of values, and as such, should not be referenced post-snapshot creation. For dynamic provisioning, this field must be set. This field may be unset for pre-provisioned snapshots. + /// VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass from + /// which this group snapshot was (or will be) created. + /// Note that after provisioning, the VolumeGroupSnapshotClass may be deleted or + /// recreated with different set of values, and as such, should not be referenced + /// post-snapshot creation. + /// For dynamic provisioning, this field must be set. + /// This field may be unset for pre-provisioned snapshots. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeGroupSnapshotClassName")] pub volume_group_snapshot_class_name: Option, - /// VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this VolumeGroupSnapshotContent object is bound. VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to this VolumeGroupSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeGroupSnapshotContent object, name and namespace of the VolumeGroupSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required. + /// VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this + /// VolumeGroupSnapshotContent object is bound. + /// VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to + /// this VolumeGroupSnapshotContent's name for the bidirectional binding to be valid. + /// For a pre-existing VolumeGroupSnapshotContent object, name and namespace of the + /// VolumeGroupSnapshot object MUST be provided for binding to happen. + /// This field is immutable after creation. + /// Required. #[serde(rename = "volumeGroupSnapshotRef")] pub volume_group_snapshot_ref: VolumeGroupSnapshotContentVolumeGroupSnapshotRef, } -/// Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system. Required. +/// Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum VolumeGroupSnapshotContentDeletionPolicy { Delete, Retain, } -/// Source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required. +/// Source specifies whether the snapshot is (or should be) dynamically provisioned +/// or already exists, and just requires a Kubernetes object representation. +/// This field is immutable after creation. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeGroupSnapshotContentSource { - /// GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing group snapshot and a list of CSI "snapshot_id" of pre-existing snapshots on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. + /// GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing + /// group snapshot and a list of CSI "snapshot_id" of pre-existing snapshots + /// on the underlying storage system for which a Kubernetes object + /// representation was (or should be) created. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "groupSnapshotHandles")] pub group_snapshot_handles: Option, - /// VolumeHandles is a list of volume handles on the backend to be snapshotted together. It is specified for dynamic provisioning of the VolumeGroupSnapshot. This field is immutable. + /// VolumeHandles is a list of volume handles on the backend to be snapshotted + /// together. It is specified for dynamic provisioning of the VolumeGroupSnapshot. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeHandles")] pub volume_handles: Option>, } -/// GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing group snapshot and a list of CSI "snapshot_id" of pre-existing snapshots on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. +/// GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing +/// group snapshot and a list of CSI "snapshot_id" of pre-existing snapshots +/// on the underlying storage system for which a Kubernetes object +/// representation was (or should be) created. +/// This field is immutable. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeGroupSnapshotContentSourceGroupSnapshotHandles { - /// VolumeGroupSnapshotHandle specifies the CSI "group_snapshot_id" of a pre-existing group snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. Required. + /// VolumeGroupSnapshotHandle specifies the CSI "group_snapshot_id" of a pre-existing + /// group snapshot on the underlying storage system for which a Kubernetes object + /// representation was (or should be) created. + /// This field is immutable. + /// Required. #[serde(rename = "volumeGroupSnapshotHandle")] pub volume_group_snapshot_handle: String, - /// VolumeSnapshotHandles is a list of CSI "snapshot_id" of pre-existing snapshots on the underlying storage system for which Kubernetes objects representation were (or should be) created. This field is immutable. Required. + /// VolumeSnapshotHandles is a list of CSI "snapshot_id" of pre-existing + /// snapshots on the underlying storage system for which Kubernetes objects + /// representation were (or should be) created. + /// This field is immutable. + /// Required. #[serde(rename = "volumeSnapshotHandles")] pub volume_snapshot_handles: Vec, } -/// VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this VolumeGroupSnapshotContent object is bound. VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to this VolumeGroupSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeGroupSnapshotContent object, name and namespace of the VolumeGroupSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required. +/// VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this +/// VolumeGroupSnapshotContent object is bound. +/// VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to +/// this VolumeGroupSnapshotContent's name for the bidirectional binding to be valid. +/// For a pre-existing VolumeGroupSnapshotContent object, name and namespace of the +/// VolumeGroupSnapshot object MUST be provided for binding to happen. +/// This field is immutable after creation. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeGroupSnapshotContentVolumeGroupSnapshotRef { /// 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, } @@ -89,27 +164,45 @@ pub struct VolumeGroupSnapshotContentVolumeGroupSnapshotRef { /// status represents the current information of a group snapshot. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeGroupSnapshotContentStatus { - /// CreationTime is the timestamp when the point-in-time group snapshot is taken by the underlying storage system. If not specified, it indicates the creation time is unknown. If not specified, it means the readiness of a group snapshot is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command date +%s%N returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. + /// CreationTime is the timestamp when the point-in-time group snapshot is taken + /// by the underlying storage system. + /// If not specified, it indicates the creation time is unknown. + /// If not specified, it means the readiness of a group snapshot is unknown. + /// The format of this field is a Unix nanoseconds time encoded as an int64. + /// On Unix, the command date +%s%N returns the current time in nanoseconds + /// since 1970-01-01 00:00:00 UTC. #[serde(default, skip_serializing_if = "Option::is_none", rename = "creationTime")] pub creation_time: Option, - /// Error is the last observed error during group snapshot creation, if any. Upon success after retry, this error field will be cleared. + /// Error is the last observed error during group snapshot creation, if any. + /// Upon success after retry, this error field will be cleared. #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, - /// ReadyToUse indicates if all the individual snapshots in the group are ready to be used to restore a group of volumes. ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. + /// PVVolumeSnapshotContentList is the list of pairs of PV and + /// VolumeSnapshotContent for this group snapshot + /// The maximum number of allowed snapshots in the group is 100. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "pvVolumeSnapshotContentList")] + pub pv_volume_snapshot_content_list: Option>, + /// ReadyToUse indicates if all the individual snapshots in the group are ready to be + /// used to restore a group of volumes. + /// ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readyToUse")] pub ready_to_use: Option, - /// VolumeGroupSnapshotHandle is a unique id returned by the CSI driver to identify the VolumeGroupSnapshot on the storage system. If a storage system does not provide such an id, the CSI driver can choose to return the VolumeGroupSnapshot name. + /// VolumeGroupSnapshotHandle is a unique id returned by the CSI driver + /// to identify the VolumeGroupSnapshot on the storage system. + /// If a storage system does not provide such an id, the + /// CSI driver can choose to return the VolumeGroupSnapshot name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeGroupSnapshotHandle")] pub volume_group_snapshot_handle: Option, - /// VolumeSnapshotContentRefList is the list of volume snapshot content references for this group snapshot. The maximum number of allowed snapshots in the group is 100. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotContentRefList")] - pub volume_snapshot_content_ref_list: Option>, } -/// Error is the last observed error during group snapshot creation, if any. Upon success after retry, this error field will be cleared. +/// Error is the last observed error during group snapshot creation, if any. +/// Upon success after retry, this error field will be cleared. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeGroupSnapshotContentStatusError { - /// message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information. + /// message is a string detailing the encountered error during snapshot + /// creation if specified. + /// NOTE: message may be logged, and it should not contain sensitive + /// information. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, /// time is the timestamp when the error was encountered. @@ -117,30 +210,35 @@ pub struct VolumeGroupSnapshotContentStatusError { pub time: Option, } -/// 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 . +/// PVVolumeSnapshotContentPair represent a pair of PV names and +/// VolumeSnapshotContent names #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct VolumeGroupSnapshotContentStatusVolumeSnapshotContentRefList { - /// 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. - #[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 - #[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 +pub struct VolumeGroupSnapshotContentStatusPvVolumeSnapshotContentList { + /// PersistentVolumeRef is a reference to the persistent volume resource + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeRef")] + pub persistent_volume_ref: Option, + /// VolumeSnapshotContentRef is a reference to the volume snapshot content resource + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotContentRef")] + pub volume_snapshot_content_ref: Option, +} + +/// PersistentVolumeRef is a reference to the persistent volume resource +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct VolumeGroupSnapshotContentStatusPvVolumeSnapshotContentListPersistentVolumeRef { + /// 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, - /// 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 - #[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 +} + +/// VolumeSnapshotContentRef is a reference to the volume snapshot content resource +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct VolumeGroupSnapshotContentStatusPvVolumeSnapshotContentListVolumeSnapshotContentRef { + /// 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 uid: Option, + pub name: Option, } diff --git a/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshots.rs b/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshots.rs index 1d4792da1..f40444795 100644 --- a/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshots.rs +++ b/kube-custom-resources-rs/src/groupsnapshot_storage_k8s_io/v1alpha1/volumegroupsnapshots.rs @@ -10,7 +10,8 @@ mod prelude { } use self::prelude::*; -/// Spec defines the desired characteristics of a group snapshot requested by a user. Required. +/// Spec defines the desired characteristics of a group snapshot requested by a user. +/// Required. #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "groupsnapshot.storage.k8s.io", version = "v1alpha1", kind = "VolumeGroupSnapshot", plural = "volumegroupsnapshots")] #[kube(namespaced)] @@ -19,71 +20,137 @@ use self::prelude::*; #[kube(derive="Default")] #[kube(derive="PartialEq")] pub struct VolumeGroupSnapshotSpec { - /// Source specifies where a group snapshot will be created from. This field is immutable after creation. Required. + /// Source specifies where a group snapshot will be created from. + /// This field is immutable after creation. + /// Required. pub source: VolumeGroupSnapshotSource, - /// VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass requested by the VolumeGroupSnapshot. VolumeGroupSnapshotClassName may be left nil to indicate that the default class will be used. Empty string is not allowed for this field. + /// VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass + /// requested by the VolumeGroupSnapshot. + /// VolumeGroupSnapshotClassName may be left nil to indicate that the default + /// class will be used. + /// Empty string is not allowed for this field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeGroupSnapshotClassName")] pub volume_group_snapshot_class_name: Option, } -/// Source specifies where a group snapshot will be created from. This field is immutable after creation. Required. +/// Source specifies where a group snapshot will be created from. +/// This field is immutable after creation. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeGroupSnapshotSource { - /// Selector is a label query over persistent volume claims that are to be grouped together for snapshotting. This labelSelector will be used to match the label added to a PVC. If the label is added or removed to a volume after a group snapshot is created, the existing group snapshots won't be modified. Once a VolumeGroupSnapshotContent is created and the sidecar starts to process it, the volume list will not change with retries. + /// Selector is a label query over persistent volume claims that are to be + /// grouped together for snapshotting. + /// This labelSelector will be used to match the label added to a PVC. + /// If the label is added or removed to a volume after a group snapshot + /// is created, the existing group snapshots won't be modified. + /// Once a VolumeGroupSnapshotContent is created and the sidecar starts to process + /// it, the volume list will not change with retries. #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent object representing an existing volume group snapshot. This field should be set if the volume group snapshot already exists and only needs a representation in Kubernetes. This field is immutable. + /// VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent + /// object representing an existing volume group snapshot. + /// This field should be set if the volume group snapshot already exists and + /// only needs a representation in Kubernetes. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeGroupSnapshotContentName")] pub volume_group_snapshot_content_name: Option, } -/// Selector is a label query over persistent volume claims that are to be grouped together for snapshotting. This labelSelector will be used to match the label added to a PVC. If the label is added or removed to a volume after a group snapshot is created, the existing group snapshots won't be modified. Once a VolumeGroupSnapshotContent is created and the sidecar starts to process it, the volume list will not change with retries. +/// Selector is a label query over persistent volume claims that are to be +/// grouped together for snapshotting. +/// This labelSelector will be used to match the label added to a PVC. +/// If the label is added or removed to a volume after a group snapshot +/// is created, the existing group snapshots won't be modified. +/// Once a VolumeGroupSnapshotContent is created and the sidecar starts to process +/// it, the volume list will not change with retries. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeGroupSnapshotSourceSelector { /// 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 VolumeGroupSnapshotSourceSelectorMatchExpressions { /// 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>, } -/// Status represents the current information of a group snapshot. Consumers must verify binding between VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent point to each other) before using this object. +/// Status represents the current information of a group snapshot. +/// Consumers must verify binding between VolumeGroupSnapshot and +/// VolumeGroupSnapshotContent objects is successful (by validating that both +/// VolumeGroupSnapshot and VolumeGroupSnapshotContent point to each other) before +/// using this object. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeGroupSnapshotStatus { - /// BoundVolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent object to which this VolumeGroupSnapshot object intends to bind to. If not specified, it indicates that the VolumeGroupSnapshot object has not been successfully bound to a VolumeGroupSnapshotContent object yet. NOTE: To avoid possible security issues, consumers must verify binding between VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent point at each other) before using this object. + /// BoundVolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent + /// object to which this VolumeGroupSnapshot object intends to bind to. + /// If not specified, it indicates that the VolumeGroupSnapshot object has not + /// been successfully bound to a VolumeGroupSnapshotContent object yet. + /// NOTE: To avoid possible security issues, consumers must verify binding between + /// VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful + /// (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent + /// point at each other) before using this object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "boundVolumeGroupSnapshotContentName")] pub bound_volume_group_snapshot_content_name: Option, - /// CreationTime is the timestamp when the point-in-time group snapshot is taken by the underlying storage system. If not specified, it may indicate that the creation time of the group snapshot is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command date +%s%N returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. + /// CreationTime is the timestamp when the point-in-time group snapshot is taken + /// by the underlying storage system. + /// If not specified, it may indicate that the creation time of the group snapshot + /// is unknown. + /// The format of this field is a Unix nanoseconds time encoded as an int64. + /// On Unix, the command date +%s%N returns the current time in nanoseconds + /// since 1970-01-01 00:00:00 UTC. #[serde(default, skip_serializing_if = "Option::is_none", rename = "creationTime")] pub creation_time: Option, - /// Error is the last observed error during group snapshot creation, if any. This field could be helpful to upper level controllers (i.e., application controller) to decide whether they should continue on waiting for the group snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the group snapshot creation. Upon success, this error field will be cleared. + /// Error is the last observed error during group snapshot creation, if any. + /// This field could be helpful to upper level controllers (i.e., application + /// controller) to decide whether they should continue on waiting for the group + /// snapshot to be created based on the type of error reported. + /// The snapshot controller will keep retrying when an error occurs during the + /// group snapshot creation. Upon success, this error field will be cleared. #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, - /// ReadyToUse indicates if all the individual snapshots in the group are ready to be used to restore a group of volumes. ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. If not specified, it means the readiness of a group snapshot is unknown. + /// VolumeSnapshotRefList is the list of PVC and VolumeSnapshot pairs that + /// is part of this group snapshot. + /// The maximum number of allowed snapshots in the group is 100. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "pvcVolumeSnapshotRefList")] + pub pvc_volume_snapshot_ref_list: Option>, + /// ReadyToUse indicates if all the individual snapshots in the group are ready + /// to be used to restore a group of volumes. + /// ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. + /// If not specified, it means the readiness of a group snapshot is unknown. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readyToUse")] pub ready_to_use: Option, - /// VolumeSnapshotRefList is the list of volume snapshot references for this group snapshot. The maximum number of allowed snapshots in the group is 100. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotRefList")] - pub volume_snapshot_ref_list: Option>, } -/// Error is the last observed error during group snapshot creation, if any. This field could be helpful to upper level controllers (i.e., application controller) to decide whether they should continue on waiting for the group snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the group snapshot creation. Upon success, this error field will be cleared. +/// Error is the last observed error during group snapshot creation, if any. +/// This field could be helpful to upper level controllers (i.e., application +/// controller) to decide whether they should continue on waiting for the group +/// snapshot to be created based on the type of error reported. +/// The snapshot controller will keep retrying when an error occurs during the +/// group snapshot creation. Upon success, this error field will be cleared. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeGroupSnapshotStatusError { - /// message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information. + /// message is a string detailing the encountered error during snapshot + /// creation if specified. + /// NOTE: message may be logged, and it should not contain sensitive + /// information. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, /// time is the timestamp when the error was encountered. @@ -91,30 +158,34 @@ pub struct VolumeGroupSnapshotStatusError { pub time: Option, } -/// 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 . +/// PVCVolumeSnapshotPair defines a pair of a PVC reference and a Volume Snapshot Reference #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] -pub struct VolumeGroupSnapshotStatusVolumeSnapshotRefList { - /// 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. - #[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 - #[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 +pub struct VolumeGroupSnapshotStatusPvcVolumeSnapshotRefList { + /// PersistentVolumeClaimRef is a reference to the PVC this pair is referring to + #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaimRef")] + pub persistent_volume_claim_ref: Option, + /// VolumeSnapshotRef is a reference to the VolumeSnapshot this pair is referring to + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotRef")] + pub volume_snapshot_ref: Option, +} + +/// PersistentVolumeClaimRef is a reference to the PVC this pair is referring to +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct VolumeGroupSnapshotStatusPvcVolumeSnapshotRefListPersistentVolumeClaimRef { + /// 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, - /// 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 - #[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 +} + +/// VolumeSnapshotRef is a reference to the VolumeSnapshot this pair is referring to +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct VolumeGroupSnapshotStatusPvcVolumeSnapshotRefListVolumeSnapshotRef { + /// 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 uid: Option, + pub name: Option, } diff --git a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2/helmreleases.rs b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2/helmreleases.rs index 5ed5be371..44f23ad5f 100644 --- a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2/helmreleases.rs +++ b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2/helmreleases.rs @@ -19,7 +19,7 @@ use self::prelude::*; #[kube(schema = "disabled")] #[kube(derive="PartialEq")] pub struct HelmReleaseSpec { - /// Chart defines the template of the v1beta2.HelmChart that should be created + /// Chart defines the template of the v1.HelmChart that should be created /// for this HelmRelease. #[serde(default, skip_serializing_if = "Option::is_none")] pub chart: Option, @@ -119,14 +119,14 @@ pub struct HelmReleaseSpec { pub values_from: Option>, } -/// Chart defines the template of the v1beta2.HelmChart that should be created +/// Chart defines the template of the v1.HelmChart that should be created /// for this HelmRelease. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct HelmReleaseChart { /// ObjectMeta holds the template for metadata like labels and annotations. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease. + /// Spec holds the template for the v1.HelmChartSpec for this HelmRelease. pub spec: HelmReleaseChartSpec, } @@ -146,7 +146,7 @@ pub struct HelmReleaseChartMetadata { pub labels: Option>, } -/// Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease. +/// Spec holds the template for the v1.HelmChartSpec for this HelmRelease. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct HelmReleaseChartSpec { /// The name or path the Helm chart is available at in the SourceRef. @@ -181,13 +181,13 @@ pub struct HelmReleaseChartSpec { /// are not verified. #[serde(default, skip_serializing_if = "Option::is_none")] pub verify: Option, - /// Version semver expression, ignored for charts from v1beta2.GitRepository and + /// Version semver expression, ignored for charts from v1.GitRepository and /// v1beta2.Bucket sources. Defaults to latest when omitted. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease. +/// Spec holds the template for the v1.HelmChartSpec for this HelmRelease. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum HelmReleaseChartSpecReconcileStrategy { ChartVersion, diff --git a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs index 13667c84d..7d1b453a8 100644 --- a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs +++ b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs @@ -21,7 +21,16 @@ use self::prelude::*; pub struct HelmReleaseSpec { /// Chart defines the template of the v1beta2.HelmChart that should be created /// for this HelmRelease. - pub chart: HelmReleaseChart, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub chart: Option, + /// ChartRef holds a reference to a source controller resource containing the + /// Helm chart artifact. + /// + /// + /// Note: this field is provisional to the v2 API, and not actively used + /// by v2beta1 HelmReleases. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "chartRef")] + pub chart_ref: Option, /// DependsOn may contain a meta.NamespacedObjectReference slice with /// references to HelmRelease resources that must be ready before this HelmRelease /// can be reconciled. @@ -255,6 +264,40 @@ pub struct HelmReleaseChartSpecVerifySecretRef { pub name: String, } +/// ChartRef holds a reference to a source controller resource containing the +/// Helm chart artifact. +/// +/// +/// Note: this field is provisional to the v2 API, and not actively used +/// by v2beta1 HelmReleases. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct HelmReleaseChartRef { + /// APIVersion of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// Kind of the referent. + pub kind: HelmReleaseChartRefKind, + /// Name of the referent. + pub name: String, + /// Namespace of the referent, defaults to the namespace of the Kubernetes + /// resource object that contains the reference. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +/// ChartRef holds a reference to a source controller resource containing the +/// Helm chart artifact. +/// +/// +/// Note: this field is provisional to the v2 API, and not actively used +/// by v2beta1 HelmReleases. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum HelmReleaseChartRefKind { + #[serde(rename = "OCIRepository")] + OciRepository, + HelmChart, +} + /// NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any /// namespace. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] diff --git a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta2/helmreleases.rs b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta2/helmreleases.rs index 9659b8cc5..a2516302f 100644 --- a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta2/helmreleases.rs +++ b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta2/helmreleases.rs @@ -25,6 +25,10 @@ pub struct HelmReleaseSpec { pub chart: Option, /// ChartRef holds a reference to a source controller resource containing the /// Helm chart artifact. + /// + /// + /// Note: this field is provisional to the v2 API, and not actively used + /// by v2beta2 HelmReleases. #[serde(default, skip_serializing_if = "Option::is_none", rename = "chartRef")] pub chart_ref: Option, /// DependsOn may contain a meta.NamespacedObjectReference slice with @@ -264,6 +268,10 @@ pub struct HelmReleaseChartSpecVerifySecretRef { /// ChartRef holds a reference to a source controller resource containing the /// Helm chart artifact. +/// +/// +/// Note: this field is provisional to the v2 API, and not actively used +/// by v2beta2 HelmReleases. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct HelmReleaseChartRef { /// APIVersion of the referent. @@ -281,6 +289,10 @@ pub struct HelmReleaseChartRef { /// ChartRef holds a reference to a source controller resource containing the /// Helm chart artifact. +/// +/// +/// Note: this field is provisional to the v2 API, and not actively used +/// by v2beta2 HelmReleases. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum HelmReleaseChartRefKind { #[serde(rename = "OCIRepository")] diff --git a/kube-custom-resources-rs/src/hive_openshift_io/v1/machinepools.rs b/kube-custom-resources-rs/src/hive_openshift_io/v1/machinepools.rs index aaf043c81..7cec6aa93 100644 --- a/kube-custom-resources-rs/src/hive_openshift_io/v1/machinepools.rs +++ b/kube-custom-resources-rs/src/hive_openshift_io/v1/machinepools.rs @@ -101,7 +101,7 @@ pub struct MachinePoolPlatformAws { /// SpotMarketOptions allows users to configure instances to be run using AWS Spot instances. #[serde(default, skip_serializing_if = "Option::is_none", rename = "spotMarketOptions")] pub spot_market_options: Option, - /// Subnets is the list of IDs of subnets to which to attach the machines. There must be exactly one subnet for each availability zone used. These subnets may be public or private. As a special case, for consistency with install-config, you may specify exactly one private and one public subnet for each availability zone. In this case, the public subnets will be filtered out and only the private subnets will be used. If empty/omitted, we will look for subnets in each availability zone tagged with Name=-private-. + /// Subnets is the list of IDs of subnets to which to attach the machines. There must be exactly one subnet for each availability zone used. These subnets may be public or private. As a special case, for consistency with install-config, you may specify exactly one private and one public subnet for each availability zone. In this case, the public subnets will be filtered out and only the private subnets will be used. If empty/omitted, we will look for subnets in each availability zone tagged with Name=-private- (legacy terraform) or -subnet-private- (CAPA). #[serde(default, skip_serializing_if = "Option::is_none")] pub subnets: Option>, /// InstanceType defines the ec2 instance type. eg. m4-large diff --git a/kube-custom-resources-rs/src/infinispan_org/v1/infinispans.rs b/kube-custom-resources-rs/src/infinispan_org/v1/infinispans.rs index 37856a0cf..976d0ad38 100644 --- a/kube-custom-resources-rs/src/infinispan_org/v1/infinispans.rs +++ b/kube-custom-resources-rs/src/infinispan_org/v1/infinispans.rs @@ -1451,6 +1451,9 @@ pub struct InfinispanStatusHotRodRollingUpgradeStatus { /// The Operand status #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct InfinispanStatusOperand { + /// Whether the Operand has been deprecated and is subject for removal in a subsequent release + #[serde(default, skip_serializing_if = "Option::is_none")] + pub deprecated: Option, /// The Image being used by the Operand currently being reconciled #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, diff --git a/kube-custom-resources-rs/src/instana_io/v1/agents.rs b/kube-custom-resources-rs/src/instana_io/v1/agents.rs index 531fb012a..42106eb10 100644 --- a/kube-custom-resources-rs/src/instana_io/v1/agents.rs +++ b/kube-custom-resources-rs/src/instana_io/v1/agents.rs @@ -68,7 +68,8 @@ pub struct InstanaAgentSpec { pub agent_tls_secret_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "agent.zone.name")] pub agent_zone_name: Option, - /// Name of the cluster, that will be assigned to this cluster in Instana. Either specifying the 'cluster.name' or 'zone.name' is mandatory. + /// Name of the cluster, that will be assigned to this cluster in Instana. Either specifying the 'cluster.name' or 'zone.name' + /// is mandatory. #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "cluster.name")] @@ -77,10 +78,12 @@ pub struct InstanaAgentSpec { pub config_files: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub k8s_sensor: Option, - /// Allows for installment of the Kubernetes Sensor as separate pod. Which allows for better tailored resource settings (mainly memory) both for the Agent pods and the Kubernetes Sensor pod. + /// Allows for installment of the Kubernetes Sensor as separate pod. Which allows for better tailored resource settings + /// (mainly memory) both for the Agent pods and the Kubernetes Sensor pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub kubernetes: Option, - /// Set to `True` to indicate the Operator is being deployed in a OpenShift cluster. Provides a hint so that RBAC etc is configured correctly. + /// Set to `True` to indicate the Operator is being deployed in a OpenShift cluster. Provides a hint so that RBAC etc is + /// configured correctly. #[serde(default, skip_serializing_if = "Option::is_none")] pub openshift: Option, /// Enables the OpenTelemetry gRPC endpoint on the Agent. If true, it will also apply `service.create: true`. @@ -88,7 +91,9 @@ pub struct InstanaAgentSpec { pub opentelemetry: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "opentelemetry.enabled")] pub opentelemetry_enabled: Option, - /// Specifying the PinnedChartVersion allows for 'pinning' the Helm Chart used by the Operator for installing the Agent DaemonSet. Normally the Operator will always install and update to the latest Helm Chart version. The Operator will check and make sure no 'unsupported' Chart versions can be selected. + /// Specifying the PinnedChartVersion allows for 'pinning' the Helm Chart used by the Operator for installing the Agent + /// DaemonSet. Normally the Operator will always install and update to the latest Helm Chart version. + /// The Operator will check and make sure no 'unsupported' Chart versions can be selected. #[serde(default, skip_serializing_if = "Option::is_none", rename = "pinnedChartVersion")] pub pinned_chart_version: Option, /// Specify a PodSecurityPolicy for the Instana Agent Pods. If enabled requires `rbac.create: true`. @@ -100,7 +105,9 @@ pub struct InstanaAgentSpec { /// Specifies whether RBAC resources should be created. #[serde(default, skip_serializing_if = "Option::is_none")] pub rbac: Option, - /// Specifies whether to create the instana-agent `Service` to expose within the cluster. The Service can then be used e.g. for the Prometheus remote-write, OpenTelemetry GRCP endpoint and other APIs. Note: Requires Kubernetes 1.17+, as it uses topologyKeys. + /// Specifies whether to create the instana-agent `Service` to expose within the cluster. The Service can then be used e.g. + /// for the Prometheus remote-write, OpenTelemetry GRCP endpoint and other APIs. + /// Note: Requires Kubernetes 1.17+, as it uses topologyKeys. #[serde(default, skip_serializing_if = "Option::is_none")] pub service: Option, /// Specifies whether a ServiceAccount should be created (default `true`), and possibly the name to use. @@ -114,7 +121,8 @@ pub struct InstanaAgentSpec { /// Agent deployment specific fields. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgent { - /// These are additional backends the Instana agent will report to besides the one configured via the `agent.endpointHost`, `agent.endpointPort` and `agent.key` setting. + /// These are additional backends the Instana agent will report to besides + /// the one configured via the `agent.endpointHost`, `agent.endpointPort` and `agent.key` setting. #[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalBackends")] pub additional_backends: Option>, /// Custom agent charts url. @@ -126,7 +134,8 @@ pub struct InstanaAgentAgent { /// Supply Agent configuration e.g. for configuring certain Sensors. #[serde(default, skip_serializing_if = "Option::is_none")] pub configuration_yaml: Option, - /// The DownloadKey, sometimes known as "sales key", that allows you to download software from Instana. It might be needed to specify this in addition to the Key. + /// The DownloadKey, sometimes known as "sales key", that allows you to download software from Instana. It might be needed to + /// specify this in addition to the Key. #[serde(default, skip_serializing_if = "Option::is_none", rename = "downloadKey")] pub download_key: Option, /// EndpointHost is the hostname of the Instana server your agents will connect to. @@ -135,7 +144,9 @@ pub struct InstanaAgentAgent { /// EndpointPort is the port number (as a String) of the Instana server your agents will connect to. #[serde(rename = "endpointPort")] pub endpoint_port: String, - /// Use the `env` field to set additional environment variables for the Instana Agent, for example: env: INSTANA_AGENT_TAGS: dev + /// Use the `env` field to set additional environment variables for the Instana Agent, for example: + /// env: + /// INSTANA_AGENT_TAGS: dev #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, /// Host sets a host path to be mounted as the Agent Maven repository (mainly for debugging or development purposes) @@ -144,22 +155,29 @@ pub struct InstanaAgentAgent { /// Override the container image used for the Instana Agent pods. #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, - /// Override for the Maven repository URL when the Agent needs to connect to a locally provided Maven repository 'proxy' Alternative to `Host` for referencing a different Maven repo. + /// Override for the Maven repository URL when the Agent needs to connect to a locally provided Maven repository 'proxy' + /// Alternative to `Host` for referencing a different Maven repo. #[serde(default, skip_serializing_if = "Option::is_none", rename = "instanaMvnRepoUrl")] pub instana_mvn_repo_url: Option, /// Key is the secret token which your agent uses to authenticate to Instana's servers. #[serde(default, skip_serializing_if = "Option::is_none")] pub key: Option, - /// Rather than specifying the Key and optionally the DownloadKey, you can "bring your own secret" creating it in the namespace in which you install the `instana-agent` and specify its name in the `KeysSecret` field. The secret you create must contain a field called `key` and optionally one called `downloadKey`, which contain, respectively, the values you'd otherwise set in `.agent.key` and `agent.downloadKey`. + /// Rather than specifying the Key and optionally the DownloadKey, you can "bring your + /// own secret" creating it in the namespace in which you install the `instana-agent` and + /// specify its name in the `KeysSecret` field. The secret you create must contain a field called `key` and optionally one + /// called `downloadKey`, which contain, respectively, the values you'd otherwise set in `.agent.key` and `agent.downloadKey`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keysSecret")] pub keys_secret: Option, - /// ListenAddress is the IP addresses the Agent HTTP server will listen on. Normally this will just be localhost (`127.0.0.1`), the pod public IP and any container runtime bridge interfaces. Set `listenAddress: *` for making the Agent listen on all network interfaces. + /// ListenAddress is the IP addresses the Agent HTTP server will listen on. Normally this will just be localhost (`127.0.0.1`), + /// the pod public IP and any container runtime bridge interfaces. Set `listenAddress: *` for making the Agent listen on all + /// network interfaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "listenAddress")] pub listen_address: Option, /// The minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing, for it to be considered available #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// Set agent mode, possible options are APM, INFRASTRUCTURE or AWS. KUBERNETES should not be used but instead enabled via `kubernetes.deployment.enabled: true`. + /// Set agent mode, possible options are APM, INFRASTRUCTURE or AWS. KUBERNETES should not be used but instead enabled via + /// `kubernetes.deployment.enabled: true`. #[serde(default, skip_serializing_if = "Option::is_none")] pub mode: Option, /// Override Agent Pod specific settings such as annotations, labels and resources. @@ -186,7 +204,9 @@ pub struct InstanaAgentAgent { /// RedactKubernetesSecrets sets the INSTANA_KUBERNETES_REDACT_SECRETS environment variable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "redactKubernetesSecrets")] pub redact_kubernetes_secrets: Option, - /// TLS for end-to-end encryption between the Instana Agent and clients accessing the Agent. The Instana Agent does not yet allow enforcing TLS encryption, enabling makes it possible for clients to 'opt-in'. So TLS is only enabled on a connection when requested by the client. + /// TLS for end-to-end encryption between the Instana Agent and clients accessing the Agent. + /// The Instana Agent does not yet allow enforcing TLS encryption, enabling makes it possible for clients to 'opt-in'. + /// So TLS is only enabled on a connection when requested by the client. #[serde(default, skip_serializing_if = "Option::is_none")] pub tls: Option, /// Control how to update the Agent DaemonSet @@ -206,7 +226,10 @@ pub struct InstanaAgentAgentAdditionalBackends { /// Mount in a ConfigMap with Agent configuration. Alternative to the `configuration_yaml` field. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentConfiguration { - /// When setting this to true, the Helm chart will automatically look up the entries of the default instana-agent ConfigMap, and mount as agent configuration files under /opt/instana/agent/etc/instana all entries with keys that match the 'configuration-*.yaml' scheme + /// When setting this to true, the Helm chart will automatically look up the entries + /// of the default instana-agent ConfigMap, and mount as agent configuration files + /// under /opt/instana/agent/etc/instana all entries with keys that match the + /// 'configuration-*.yaml' scheme #[serde(default, skip_serializing_if = "Option::is_none", rename = "autoMountConfigEntries")] pub auto_mount_config_entries: Option, } @@ -221,7 +244,8 @@ pub struct InstanaAgentAgentHost { /// Override the container image used for the Instana Agent pods. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentImage { - /// Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`, which will then be ignored. + /// Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`, + /// which will then be ignored. #[serde(default, skip_serializing_if = "Option::is_none")] pub digest: Option, /// Name is the name of the container image of the Instana agent. @@ -230,7 +254,8 @@ pub struct InstanaAgentAgentImage { /// PullPolicy specifies when to pull the image container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "pullPolicy")] pub pull_policy: Option, - /// PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with "containers.instana.io". Setting `agent.image.pullSecrets` prevents the creation of the default "containers-instana-io" secret. + /// PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with + /// "containers.instana.io". Setting `agent.image.pullSecrets` prevents the creation of the default "containers-instana-io" secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "pullSecrets")] pub pull_secrets: Option>, /// Tag is the name of the agent container image; if `agent.image.digest` is specified, this property is ignored. @@ -247,7 +272,8 @@ pub struct InstanaAgentAgentImagePullSecrets { /// Override Agent Pod specific settings such as annotations, labels and resources. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPod { - /// agent.pod.affinity are affinities to influence agent pod assignment. https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + /// agent.pod.affinity are affinities to influence agent pod assignment. + /// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, /// agent.pod.annotations are additional annotations to be added to the agent pods. @@ -256,13 +282,18 @@ pub struct InstanaAgentAgentPod { /// agent.pod.labels are additional labels to be added to the agent pods. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: 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>, - /// agent.pod.priorityClassName is the name of an existing PriorityClass that should be set on the agent pods https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ + /// agent.pod.priorityClassName is the name of an existing PriorityClass that should be set on the agent pods + /// https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] pub priority_class_name: 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/ + /// 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>, /// agent.pod.tolerations are tolerations to influence agent pod assignment. @@ -270,7 +301,8 @@ pub struct InstanaAgentAgentPod { pub tolerations: Option>, } -/// agent.pod.affinity are affinities to influence agent pod assignment. https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +/// agent.pod.affinity are affinities to influence agent pod assignment. +/// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinity { /// Describes node affinity scheduling rules for the pod. @@ -287,15 +319,28 @@ pub struct InstanaAgentAgentPodAffinity { /// Describes node affinity scheduling rules for the pod. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityNodeAffinity { - /// The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. + /// The scheduler will prefer to schedule pods to nodes that satisfy + /// the affinity expressions specified by this field, but it may choose + /// a node that violates one or more of the expressions. The node that is + /// most preferred is the one with the greatest sum of weights, i.e. + /// for each node that meets all of the scheduling requirements (resource + /// request, requiredDuringScheduling affinity expressions, etc.), + /// compute a sum by iterating through the elements of this field and adding + /// "weight" to the sum if the node matches the corresponding matchExpressions; the + /// node(s) with the highest sum are the most preferred. #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] pub preferred_during_scheduling_ignored_during_execution: Option>, - /// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. + /// If the affinity requirements specified by this field are not met at + /// scheduling time, the pod will not be scheduled onto the node. + /// If the affinity requirements specified by this field cease to be met + /// at some point during pod execution (e.g. due to an update), the system + /// may or may not try to eventually evict the pod from its node. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] pub required_during_scheduling_ignored_during_execution: Option, } -/// An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). +/// An empty preferred scheduling term matches all objects with implicit weight 0 +/// (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution { /// A node selector term, associated with the corresponding weight. @@ -315,31 +360,47 @@ pub struct InstanaAgentAgentPodAffinityNodeAffinityPreferredDuringSchedulingIgno pub match_fields: Option>, } -/// A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A node 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 InstanaAgentAgentPodAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions { /// The label key that the selector applies to. pub key: String, - /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + /// Represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. pub operator: String, - /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + /// 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. If the operator is Gt or Lt, the values + /// array must have a single element, which will be interpreted as an integer. + /// This array is replaced during a strategic merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A node 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 InstanaAgentAgentPodAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields { /// The label key that the selector applies to. pub key: String, - /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + /// Represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. pub operator: String, - /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + /// 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. If the operator is Gt or Lt, the values + /// array must have a single element, which will be interpreted as an integer. + /// This array is replaced during a strategic merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. +/// If the affinity requirements specified by this field are not met at +/// scheduling time, the pod will not be scheduled onto the node. +/// If the affinity requirements specified by this field cease to be met +/// at some point during pod execution (e.g. due to an update), the system +/// may or may not try to eventually evict the pod from its node. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution { /// Required. A list of node selector terms. The terms are ORed. @@ -347,7 +408,9 @@ pub struct InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnor pub node_selector_terms: Vec, } -/// A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. +/// A null or empty node selector term matches no objects. The requirements of +/// them are ANDed. +/// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms { /// A list of node selector requirements by node's labels. @@ -358,26 +421,38 @@ pub struct InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnor pub match_fields: Option>, } -/// A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A node 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 InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions { /// The label key that the selector applies to. pub key: String, - /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + /// Represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. pub operator: String, - /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + /// 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. If the operator is Gt or Lt, the values + /// array must have a single element, which will be interpreted as an integer. + /// This array is replaced during a strategic merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A node 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 InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields { /// The label key that the selector applies to. pub key: String, - /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + /// Represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. pub operator: String, - /// 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + /// 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. If the operator is Gt or Lt, the values + /// array must have a single element, which will be interpreted as an integer. + /// This array is replaced during a strategic merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } @@ -385,10 +460,24 @@ pub struct InstanaAgentAgentPodAffinityNodeAffinityRequiredDuringSchedulingIgnor /// Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAffinity { - /// The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + /// The scheduler will prefer to schedule pods to nodes that satisfy + /// the affinity expressions specified by this field, but it may choose + /// a node that violates one or more of the expressions. The node that is + /// most preferred is the one with the greatest sum of weights, i.e. + /// for each node that meets all of the scheduling requirements (resource + /// request, requiredDuringScheduling affinity expressions, etc.), + /// compute a sum by iterating through the elements of this field and adding + /// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + /// node(s) with the highest sum are the most preferred. #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] pub preferred_during_scheduling_ignored_during_execution: Option>, - /// If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. + /// If the affinity requirements specified by this field are not met at + /// scheduling time, the pod will not be scheduled onto the node. + /// If the affinity requirements specified by this field cease to be met + /// at some point during pod execution (e.g. due to a pod label update), the + /// system may or may not try to eventually evict the pod from its node. + /// When there are multiple elements, the lists of nodes corresponding to each + /// podAffinityTerm are intersected, i.e. all terms must be satisfied. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] pub required_during_scheduling_ignored_during_execution: Option>, } @@ -399,7 +488,8 @@ pub struct InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnor /// Required. A pod affinity term, associated with the corresponding weight. #[serde(rename = "podAffinityTerm")] pub pod_affinity_term: InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, - /// weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + /// weight associated with matching the corresponding podAffinityTerm, + /// in the range 1-100. pub weight: i32, } @@ -409,13 +499,25 @@ pub struct InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnor /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. + /// The term is applied to the union of the namespaces selected by this field + /// and the ones listed in the namespaces field. + /// null selector and null or empty namespaces list means "this pod's namespace". + /// An empty selector ({}) matches all namespaces. + /// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. + /// The term is applied to the union of the namespaces listed in this field + /// and the ones selected by namespaceSelector. + /// null or empty namespaces list and null namespaceSelector means "this pod's namespace" #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, - /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + /// the labelSelector in the specified namespaces, where co-located is defined as running on a node + /// whose value of the label with key topologyKey matches that of any node on which any of the + /// selected pods is running. + /// Empty topologyKey is not allowed. #[serde(rename = "topologyKey")] pub topology_key: String, } @@ -426,59 +528,95 @@ pub struct InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnor /// 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 InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { /// 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>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. +/// The term is applied to the union of the namespaces selected by this field +/// and the ones listed in the namespaces field. +/// null selector and null or empty namespaces list means "this pod's namespace". +/// An empty selector ({}) matches all namespaces. +/// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { /// 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 InstanaAgentAgentPodAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { /// 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>, } -/// Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running +/// Defines a set of pods (namely those matching the labelSelector +/// relative to the given namespace(s)) that this pod should be +/// co-located (affinity) or not co-located (anti-affinity) with, +/// where co-located is defined as running on a node whose value of +/// the label with key matches that of any node on which +/// a pod of the set of pods is running #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. + /// The term is applied to the union of the namespaces selected by this field + /// and the ones listed in the namespaces field. + /// null selector and null or empty namespaces list means "this pod's namespace". + /// An empty selector ({}) matches all namespaces. + /// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. + /// The term is applied to the union of the namespaces listed in this field + /// and the ones selected by namespaceSelector. + /// null or empty namespaces list and null namespaceSelector means "this pod's namespace" #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, - /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + /// the labelSelector in the specified namespaces, where co-located is defined as running on a node + /// whose value of the label with key topologyKey matches that of any node on which any of the + /// selected pods is running. + /// Empty topologyKey is not allowed. #[serde(rename = "topologyKey")] pub topology_key: String, } @@ -489,42 +627,61 @@ pub struct InstanaAgentAgentPodAffinityPodAffinityRequiredDuringSchedulingIgnore /// 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 InstanaAgentAgentPodAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { /// 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>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. +/// The term is applied to the union of the namespaces selected by this field +/// and the ones listed in the namespaces field. +/// null selector and null or empty namespaces list means "this pod's namespace". +/// An empty selector ({}) matches all namespaces. +/// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { /// 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 InstanaAgentAgentPodAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { /// 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>, } @@ -532,10 +689,24 @@ pub struct InstanaAgentAgentPodAffinityPodAffinityRequiredDuringSchedulingIgnore /// Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAntiAffinity { - /// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + /// The scheduler will prefer to schedule pods to nodes that satisfy + /// the anti-affinity expressions specified by this field, but it may choose + /// a node that violates one or more of the expressions. The node that is + /// most preferred is the one with the greatest sum of weights, i.e. + /// for each node that meets all of the scheduling requirements (resource + /// request, requiredDuringScheduling anti-affinity expressions, etc.), + /// compute a sum by iterating through the elements of this field and adding + /// "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + /// node(s) with the highest sum are the most preferred. #[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")] pub preferred_during_scheduling_ignored_during_execution: Option>, - /// If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. + /// If the anti-affinity requirements specified by this field are not met at + /// scheduling time, the pod will not be scheduled onto the node. + /// If the anti-affinity requirements specified by this field cease to be met + /// at some point during pod execution (e.g. due to a pod label update), the + /// system may or may not try to eventually evict the pod from its node. + /// When there are multiple elements, the lists of nodes corresponding to each + /// podAffinityTerm are intersected, i.e. all terms must be satisfied. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")] pub required_during_scheduling_ignored_during_execution: Option>, } @@ -546,7 +717,8 @@ pub struct InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingI /// Required. A pod affinity term, associated with the corresponding weight. #[serde(rename = "podAffinityTerm")] pub pod_affinity_term: InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm, - /// weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + /// weight associated with matching the corresponding podAffinityTerm, + /// in the range 1-100. pub weight: i32, } @@ -556,13 +728,25 @@ pub struct InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingI /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. + /// The term is applied to the union of the namespaces selected by this field + /// and the ones listed in the namespaces field. + /// null selector and null or empty namespaces list means "this pod's namespace". + /// An empty selector ({}) matches all namespaces. + /// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. + /// The term is applied to the union of the namespaces listed in this field + /// and the ones selected by namespaceSelector. + /// null or empty namespaces list and null namespaceSelector means "this pod's namespace" #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, - /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + /// the labelSelector in the specified namespaces, where co-located is defined as running on a node + /// whose value of the label with key topologyKey matches that of any node on which any of the + /// selected pods is running. + /// Empty topologyKey is not allowed. #[serde(rename = "topologyKey")] pub topology_key: String, } @@ -573,59 +757,95 @@ pub struct InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingI /// 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 InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions { /// 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>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. +/// The term is applied to the union of the namespaces selected by this field +/// and the ones listed in the namespaces field. +/// null selector and null or empty namespaces list means "this pod's namespace". +/// An empty selector ({}) matches all namespaces. +/// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector { /// 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 InstanaAgentAgentPodAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions { /// 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>, } -/// Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running +/// Defines a set of pods (namely those matching the labelSelector +/// relative to the given namespace(s)) that this pod should be +/// co-located (affinity) or not co-located (anti-affinity) with, +/// where co-located is defined as running on a node whose value of +/// the label with key matches that of any node on which +/// a pod of the set of pods is running #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { /// A label query over a set of resources, in this case pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, - /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + /// A label query over the set of namespaces that the term applies to. + /// The term is applied to the union of the namespaces selected by this field + /// and the ones listed in the namespaces field. + /// null selector and null or empty namespaces list means "this pod's namespace". + /// An empty selector ({}) matches all namespaces. + /// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace" + /// namespaces specifies a static list of namespace names that the term applies to. + /// The term is applied to the union of the namespaces listed in this field + /// and the ones selected by namespaceSelector. + /// null or empty namespaces list and null namespaceSelector means "this pod's namespace" #[serde(default, skip_serializing_if = "Option::is_none")] pub namespaces: Option>, - /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + /// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + /// the labelSelector in the specified namespaces, where co-located is defined as running on a node + /// whose value of the label with key topologyKey matches that of any node on which any of the + /// selected pods is running. + /// Empty topologyKey is not allowed. #[serde(rename = "topologyKey")] pub topology_key: String, } @@ -636,67 +856,98 @@ pub struct InstanaAgentAgentPodAffinityPodAntiAffinityRequiredDuringSchedulingIg /// 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 InstanaAgentAgentPodAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions { /// 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>, } -/// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. +/// A label query over the set of namespaces that the term applies to. +/// The term is applied to the union of the namespaces selected by this field +/// and the ones listed in the namespaces field. +/// null selector and null or empty namespaces list means "this pod's namespace". +/// An empty selector ({}) matches all namespaces. +/// This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector { /// 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 InstanaAgentAgentPodAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions { /// 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 pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . +/// The pod this Toleration is attached to tolerates any taint that matches +/// the triple using the matching operator . #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentPodTolerations { - /// Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + /// Effect indicates the taint effect to match. Empty means match all taint effects. + /// When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. #[serde(default, skip_serializing_if = "Option::is_none")] pub effect: Option, - /// Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. + /// Key is the taint key that the toleration applies to. Empty means match all taint keys. + /// If the key is empty, operator must be Exists; this combination means to match all values and all keys. #[serde(default, skip_serializing_if = "Option::is_none")] pub key: Option, - /// Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + /// Operator represents a key's relationship to the value. + /// Valid operators are Exists and Equal. Defaults to Equal. + /// Exists is equivalent to wildcard for value, so that a pod can + /// tolerate all taints of a particular category. #[serde(default, skip_serializing_if = "Option::is_none")] pub operator: Option, - /// TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. + /// TolerationSeconds represents the period of time the toleration (which must be + /// of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, + /// it is not set, which means tolerate the taint forever (do not evict). Zero and + /// negative values will be treated as 0 (evict immediately) by the system. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] pub toleration_seconds: Option, - /// Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. + /// Value is the taint value the toleration matches to. + /// If the operator is Exists, the value should be empty, otherwise just a regular string. #[serde(default, skip_serializing_if = "Option::is_none")] pub value: Option, } -/// TLS for end-to-end encryption between the Instana Agent and clients accessing the Agent. The Instana Agent does not yet allow enforcing TLS encryption, enabling makes it possible for clients to 'opt-in'. So TLS is only enabled on a connection when requested by the client. +/// TLS for end-to-end encryption between the Instana Agent and clients accessing the Agent. +/// The Instana Agent does not yet allow enforcing TLS encryption, enabling makes it possible for clients to 'opt-in'. +/// So TLS is only enabled on a connection when requested by the client. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentTls { /// certificate (together with key) is the alternative to an existing Secret. Must be base64 encoded. @@ -713,7 +964,11 @@ pub struct InstanaAgentAgentTls { /// Control how to update the Agent DaemonSet #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentUpdateStrategy { - /// Rolling update config params. Present only if type = "RollingUpdate". --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be. Same as Deployment `strategy.rollingUpdate`. See https://github.com/kubernetes/kubernetes/issues/35345 + /// Rolling update config params. Present only if type = "RollingUpdate". + /// --- + /// TODO: Update this to follow our convention for oneOf, whatever we decide it + /// to be. Same as Deployment `strategy.rollingUpdate`. + /// See https://github.com/kubernetes/kubernetes/issues/35345 #[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")] pub rolling_update: Option, /// Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. @@ -721,18 +976,54 @@ pub struct InstanaAgentAgentUpdateStrategy { pub r#type: Option, } -/// Rolling update config params. Present only if type = "RollingUpdate". --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be. Same as Deployment `strategy.rollingUpdate`. See https://github.com/kubernetes/kubernetes/issues/35345 +/// Rolling update config params. Present only if type = "RollingUpdate". +/// --- +/// TODO: Update this to follow our convention for oneOf, whatever we decide it +/// to be. Same as Deployment `strategy.rollingUpdate`. +/// See https://github.com/kubernetes/kubernetes/issues/35345 #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentAgentUpdateStrategyRollingUpdate { - /// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. 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 to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is beta field and enabled/disabled by DaemonSetUpdateSurge feature gate. + /// The maximum number of nodes with an existing available DaemonSet pod that + /// can have an updated DaemonSet pod during during an update. + /// 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 to a minimum of 1. + /// Default value is 0. + /// Example: when this is set to 30%, at most 30% of the total number of nodes + /// that should be running the daemon pod (i.e. status.desiredNumberScheduled) + /// can have their a new pod created before the old pod is marked as deleted. + /// The update starts by launching new pods on 30% of nodes. Once an updated + /// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + /// on that node is marked deleted. If the old pod becomes unavailable for any + /// reason (Ready transitions to false, is evicted, or is drained) an updated + /// pod is immediatedly created on that node without considering surge limits. + /// Allowing surge implies the possibility that the resources consumed by the + /// daemonset on any given node can double if the readiness check fails, and + /// so resource intensive daemonsets should take into account that they may + /// cause evictions during disruption. + /// This is beta field and enabled/disabled by DaemonSetUpdateSurge feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")] pub max_surge: Option, - /// The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. + /// The maximum number of DaemonSet pods that can be unavailable during the + /// update. Value can be an absolute number (ex: 5) or a percentage of total + /// number of DaemonSet pods at the start of the update (ex: 10%). Absolute + /// number is calculated from percentage by rounding up. + /// This cannot be 0 if MaxSurge is 0 + /// Default value is 1. + /// Example: when this is set to 30%, at most 30% of the total number of nodes + /// that should be running the daemon pod (i.e. status.desiredNumberScheduled) + /// can have their pods stopped for an update at any given time. The update + /// starts by stopping at most 30% of those DaemonSet pods and then brings + /// up new DaemonSet pods in their place. Once the new pods are available, + /// it then proceeds onto other DaemonSet pods, thus ensuring that at least + /// 70% of original number of DaemonSet pods are available at all times during + /// the update. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] pub max_unavailable: Option, } -/// Name of the cluster, that will be assigned to this cluster in Instana. Either specifying the 'cluster.name' or 'zone.name' is mandatory. +/// Name of the cluster, that will be assigned to this cluster in Instana. Either specifying the 'cluster.name' or 'zone.name' +/// is mandatory. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentCluster { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -765,17 +1056,22 @@ pub struct InstanaAgentK8sSensorDeployment { /// Override pod resource requirements for the Kubernetes Sensor pods. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentK8sSensorDeploymentPod { - /// 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. 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. + /// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ #[serde(default, skip_serializing_if = "Option::is_none")] pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentK8sSensorImage { - /// Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`, which will then be ignored. + /// Digest (a.k.a. Image ID) of the agent container image. If specified, it has priority over `agent.image.tag`, + /// which will then be ignored. #[serde(default, skip_serializing_if = "Option::is_none")] pub digest: Option, /// Name is the name of the container image of the Instana agent. @@ -784,7 +1080,8 @@ pub struct InstanaAgentK8sSensorImage { /// PullPolicy specifies when to pull the image container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "pullPolicy")] pub pull_policy: Option, - /// PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with "containers.instana.io". Setting `agent.image.pullSecrets` prevents the creation of the default "containers-instana-io" secret. + /// PullSecrets allows you to override the default pull secret that is created when `agent.image.name` starts with + /// "containers.instana.io". Setting `agent.image.pullSecrets` prevents the creation of the default "containers-instana-io" secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "pullSecrets")] pub pull_secrets: Option>, /// Tag is the name of the agent container image; if `agent.image.digest` is specified, this property is ignored. @@ -798,7 +1095,8 @@ pub struct InstanaAgentK8sSensorImagePullSecrets { pub name: Option, } -/// Allows for installment of the Kubernetes Sensor as separate pod. Which allows for better tailored resource settings (mainly memory) both for the Agent pods and the Kubernetes Sensor pod. +/// Allows for installment of the Kubernetes Sensor as separate pod. Which allows for better tailored resource settings +/// (mainly memory) both for the Agent pods and the Kubernetes Sensor pod. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentKubernetes { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -823,10 +1121,14 @@ pub struct InstanaAgentKubernetesDeployment { /// Override pod resource requirements for the Kubernetes Sensor pods. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentKubernetesDeploymentPod { - /// 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. 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. + /// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ #[serde(default, skip_serializing_if = "Option::is_none")] pub requests: Option>, } @@ -883,7 +1185,9 @@ pub struct InstanaAgentRbac { pub create: Option, } -/// Specifies whether to create the instana-agent `Service` to expose within the cluster. The Service can then be used e.g. for the Prometheus remote-write, OpenTelemetry GRCP endpoint and other APIs. Note: Requires Kubernetes 1.17+, as it uses topologyKeys. +/// Specifies whether to create the instana-agent `Service` to expose within the cluster. The Service can then be used e.g. +/// for the Prometheus remote-write, OpenTelemetry GRCP endpoint and other APIs. +/// Note: Requires Kubernetes 1.17+, as it uses topologyKeys. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct InstanaAgentService { #[serde(default, skip_serializing_if = "Option::is_none")] 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 6b118ef78..ccfc64749 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 @@ -53,8 +53,12 @@ pub struct IPAddressClaimStatus { #[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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } 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 b0004dd0f..2fc779c6f 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 @@ -36,8 +36,12 @@ pub struct IPAddressSpec { #[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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } 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 65c14f610..ce08b9859 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 @@ -56,8 +56,12 @@ pub struct IPAddressClaimStatus { #[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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } 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 000be008c..b36cfc7c5 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 @@ -36,8 +36,12 @@ pub struct IPAddressSpec { #[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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } diff --git a/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/databases.rs b/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/databases.rs index 9b76a5d9f..b2832eba6 100644 --- a/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/databases.rs +++ b/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/databases.rs @@ -22,7 +22,7 @@ pub struct DatabaseSpec { /// CharacterSet to use in the Database. #[serde(default, skip_serializing_if = "Option::is_none", rename = "characterSet")] pub character_set: Option, - /// CharacterSet to use in the Database. + /// Collate to use in the Database. #[serde(default, skip_serializing_if = "Option::is_none")] pub collate: Option, /// MariaDBRef is a reference to a MariaDB object. diff --git a/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/mariadbs.rs b/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/mariadbs.rs index c9362bb68..af38390b2 100644 --- a/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/mariadbs.rs +++ b/kube-custom-resources-rs/src/k8s_mariadb_com/v1alpha1/mariadbs.rs @@ -87,7 +87,7 @@ pub struct MariaDBSpec { /// NodeSelector to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, - /// PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret. + /// PasswordSecretKeyRef is a Secret reference to the password of the initial user created on bootstrap. #[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordSecretKeyRef")] pub password_secret_key_ref: Option, /// PodDisruptionBudget defines the budget for replica availability. @@ -117,13 +117,13 @@ pub struct MariaDBSpec { /// Replicas indicates the number of desired instances. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Replication configures high availability via replication. + /// Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA. #[serde(default, skip_serializing_if = "Option::is_none")] pub replication: Option, /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// RootEmptyPassword indicates if the root password should be empty. + /// RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rootEmptyPassword")] pub root_empty_password: Option, /// RootPasswordSecretKeyRef is a reference to a Secret key containing the root password. @@ -159,7 +159,7 @@ pub struct MariaDBSpec { /// PodDisruptionBudget defines the update strategy for the StatefulSet object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")] pub update_strategy: Option, - /// Username is the username of the user to be created on bootstrap. + /// Username is the username of the initial user created on bootstrap. #[serde(default, skip_serializing_if = "Option::is_none")] pub username: Option, /// VolumeMounts to be used in the Container. @@ -6804,7 +6804,7 @@ pub struct MariaDBMaxScale { #[serde(default, skip_serializing_if = "Option::is_none", rename = "guiKubernetesService")] pub gui_kubernetes_service: Option, /// Image name to be used by the MaxScale instances. The supported format is `:`. - /// Only MaxScale official images are supported. + /// Only MariaDB official images are supported. #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. @@ -17020,7 +17020,7 @@ pub struct MariaDBMyCnfConfigMapKeyRef { pub optional: Option, } -/// PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret. +/// PasswordSecretKeyRef is a Secret reference to the password of the initial user created on bootstrap. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPasswordSecretKeyRef { /// Generate indicates whether the Secret should be generated if the Secret referenced is not present. @@ -17465,7 +17465,7 @@ pub struct MariaDBReadinessProbeTcpSocket { pub port: IntOrString, } -/// Replication configures high availability via replication. +/// Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBReplication { /// Enabled is a flag to enable Replication. diff --git a/kube-custom-resources-rs/src/k8up_io/v1/archives.rs b/kube-custom-resources-rs/src/k8up_io/v1/archives.rs index e41d92ed6..721f5e414 100644 --- a/kube-custom-resources-rs/src/k8up_io/v1/archives.rs +++ b/kube-custom-resources-rs/src/k8up_io/v1/archives.rs @@ -37,6 +37,12 @@ pub struct ArchiveSpec { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -418,6 +424,19 @@ pub struct ArchiveBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ArchivePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ArchivePodSecurityContext { diff --git a/kube-custom-resources-rs/src/k8up_io/v1/backups.rs b/kube-custom-resources-rs/src/k8up_io/v1/backups.rs index a4806afd4..0ef86d5cb 100644 --- a/kube-custom-resources-rs/src/k8up_io/v1/backups.rs +++ b/kube-custom-resources-rs/src/k8up_io/v1/backups.rs @@ -39,6 +39,12 @@ pub struct BackupSpec { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -420,6 +426,19 @@ pub struct BackupBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct BackupPodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupPodSecurityContext { diff --git a/kube-custom-resources-rs/src/k8up_io/v1/checks.rs b/kube-custom-resources-rs/src/k8up_io/v1/checks.rs index 763655fc1..c5c441030 100644 --- a/kube-custom-resources-rs/src/k8up_io/v1/checks.rs +++ b/kube-custom-resources-rs/src/k8up_io/v1/checks.rs @@ -38,6 +38,12 @@ pub struct CheckSpec { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -411,6 +417,19 @@ pub struct CheckBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CheckPodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CheckPodSecurityContext { diff --git a/kube-custom-resources-rs/src/k8up_io/v1/prunes.rs b/kube-custom-resources-rs/src/k8up_io/v1/prunes.rs index 3bbc362ac..72e2c72a7 100644 --- a/kube-custom-resources-rs/src/k8up_io/v1/prunes.rs +++ b/kube-custom-resources-rs/src/k8up_io/v1/prunes.rs @@ -38,6 +38,12 @@ pub struct PruneSpec { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -411,6 +417,19 @@ pub struct PruneBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PrunePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrunePodSecurityContext { diff --git a/kube-custom-resources-rs/src/k8up_io/v1/restores.rs b/kube-custom-resources-rs/src/k8up_io/v1/restores.rs index 743d3c88b..8a6db2ada 100644 --- a/kube-custom-resources-rs/src/k8up_io/v1/restores.rs +++ b/kube-custom-resources-rs/src/k8up_io/v1/restores.rs @@ -38,6 +38,12 @@ pub struct RestoreSpec { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -419,6 +425,19 @@ pub struct RestoreBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct RestorePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestorePodSecurityContext { diff --git a/kube-custom-resources-rs/src/k8up_io/v1/schedules.rs b/kube-custom-resources-rs/src/k8up_io/v1/schedules.rs index 21aad09c7..4683a8157 100644 --- a/kube-custom-resources-rs/src/k8up_io/v1/schedules.rs +++ b/kube-custom-resources-rs/src/k8up_io/v1/schedules.rs @@ -43,6 +43,10 @@ pub struct ScheduleSpec { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef will apply the given template to all job definitions in this Schedule. + /// It can be overriden for specific jobs if necessary. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which actions (such as backups) shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -83,6 +87,12 @@ pub struct ScheduleArchive { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -467,6 +477,19 @@ pub struct ScheduleArchiveBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ScheduleArchivePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScheduleArchivePodSecurityContext { @@ -1292,6 +1315,12 @@ pub struct ScheduleBackup { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -1676,6 +1705,19 @@ pub struct ScheduleBackupBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ScheduleBackupPodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScheduleBackupPodSecurityContext { @@ -2034,6 +2076,12 @@ pub struct ScheduleCheck { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -2410,6 +2458,19 @@ pub struct ScheduleCheckBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ScheduleCheckPodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScheduleCheckPodSecurityContext { @@ -2746,6 +2807,17 @@ pub struct ScheduleCheckVolumesSecretItems { pub path: String, } +/// PodConfigRef will apply the given template to all job definitions in this Schedule. +/// It can be overriden for specific jobs if necessary. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SchedulePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which actions (such as backups) shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SchedulePodSecurityContext { @@ -2932,6 +3004,12 @@ pub struct SchedulePrune { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -3308,6 +3386,19 @@ pub struct SchedulePruneBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SchedulePrunePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SchedulePrunePodSecurityContext { @@ -3727,6 +3818,12 @@ pub struct ScheduleRestore { /// Deprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively. #[serde(default, skip_serializing_if = "Option::is_none", rename = "keepJobs")] pub keep_jobs: Option, + /// PodConfigRef describes the pod spec with wich this action shall be executed. + /// It takes precedence over the Resources or PodSecurityContext field. + /// It does not allow changing the image or the command of the resulting pod. + /// This is for advanced use-cases only. Please only set this if you know what you're doing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podConfigRef")] + pub pod_config_ref: Option, /// PodSecurityContext describes the security context with which this action shall be executed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, @@ -4111,6 +4208,19 @@ pub struct ScheduleRestoreBackendVolumeMounts { pub sub_path_expr: Option, } +/// PodConfigRef describes the pod spec with wich this action shall be executed. +/// It takes precedence over the Resources or PodSecurityContext field. +/// It does not allow changing the image or the command of the resulting pod. +/// This is for advanced use-cases only. Please only set this if you know what you're doing. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ScheduleRestorePodConfigRef { + /// 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, +} + /// PodSecurityContext describes the security context with which this action shall be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScheduleRestorePodSecurityContext { diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkatopics.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkatopics.rs index d8c44ccd8..b6138ab4c 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkatopics.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkatopics.rs @@ -43,6 +43,9 @@ pub struct KafkaTopicStatus { /// The generation of the CRD that was last reconciled by the operator. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, + /// Replication factor change status. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "replicasChange")] + pub replicas_change: Option, /// The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "topicId")] pub topic_id: Option, @@ -51,3 +54,29 @@ pub struct KafkaTopicStatus { pub topic_name: Option, } +/// Replication factor change status. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct KafkaTopicStatusReplicasChange { + /// Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionId")] + pub session_id: Option, + /// Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + /// The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetReplicas")] + pub target_replicas: Option, +} + +/// Replication factor change status. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum KafkaTopicStatusReplicasChangeState { + #[serde(rename = "pending")] + Pending, + #[serde(rename = "ongoing")] + Ongoing, +} + diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkausers.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkausers.rs index c7515f1d7..bf1fd1088 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkausers.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1alpha1/kafkausers.rs @@ -115,7 +115,7 @@ pub struct KafkaUserAuthorization { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KafkaUserAuthorizationAcls { - /// The host from which the action described in the ACL rule is allowed or denied. + /// The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, /// Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All. diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkatopics.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkatopics.rs index 73af7c1f2..526d442bc 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkatopics.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkatopics.rs @@ -43,6 +43,9 @@ pub struct KafkaTopicStatus { /// The generation of the CRD that was last reconciled by the operator. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, + /// Replication factor change status. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "replicasChange")] + pub replicas_change: Option, /// The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "topicId")] pub topic_id: Option, @@ -51,3 +54,29 @@ pub struct KafkaTopicStatus { pub topic_name: Option, } +/// Replication factor change status. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct KafkaTopicStatusReplicasChange { + /// Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionId")] + pub session_id: Option, + /// Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + /// The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetReplicas")] + pub target_replicas: Option, +} + +/// Replication factor change status. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum KafkaTopicStatusReplicasChangeState { + #[serde(rename = "pending")] + Pending, + #[serde(rename = "ongoing")] + Ongoing, +} + diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkausers.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkausers.rs index 5af10e0a6..3729adba5 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkausers.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta1/kafkausers.rs @@ -115,7 +115,7 @@ pub struct KafkaUserAuthorization { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KafkaUserAuthorizationAcls { - /// The host from which the action described in the ACL rule is allowed or denied. + /// The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, /// Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All. diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkabridges.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkabridges.rs index 19b0af972..3a73e624f 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkabridges.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkabridges.rs @@ -7,6 +7,7 @@ mod prelude { pub use kube::CustomResource; pub use serde::{Serialize, Deserialize}; pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; } use self::prelude::*; @@ -394,9 +395,9 @@ pub struct KafkaBridgeResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkaconnects.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkaconnects.rs index ef291d01c..9e7b1de94 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkaconnects.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkaconnects.rs @@ -7,6 +7,7 @@ mod prelude { pub use kube::CustomResource; pub use serde::{Serialize, Deserialize}; pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; } use self::prelude::*; @@ -321,9 +322,9 @@ pub struct KafkaConnectBuildResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -629,9 +630,9 @@ pub struct KafkaConnectResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkamirrormakers.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkamirrormakers.rs index 262ac0a99..8555746ac 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkamirrormakers.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkamirrormakers.rs @@ -7,6 +7,7 @@ mod prelude { pub use kube::CustomResource; pub use serde::{Serialize, Deserialize}; pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; } use self::prelude::*; @@ -586,9 +587,9 @@ pub struct KafkaMirrorMakerResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkas.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkas.rs index 5ca9f84b3..97a554edc 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkas.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkas.rs @@ -7,6 +7,7 @@ mod prelude { pub use kube::CustomResource; pub use serde::{Serialize, Deserialize}; pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; } use self::prelude::*; @@ -336,9 +337,9 @@ pub struct KafkaCruiseControlResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -1251,9 +1252,9 @@ pub struct KafkaCruiseControlTlsSidecarResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -2279,9 +2280,9 @@ pub struct KafkaEntityOperatorTlsSidecarResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -2446,9 +2447,9 @@ pub struct KafkaEntityOperatorTopicOperatorResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -2630,9 +2631,9 @@ pub struct KafkaEntityOperatorUserOperatorResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -2702,9 +2703,9 @@ pub struct KafkaJmxTransResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -3854,6 +3855,9 @@ pub struct KafkaKafkaListenersConfigurationBootstrap { /// Annotations that will be added to the `Ingress`, `Route`, or `Service` resource. You can use this field to configure DNS providers such as External DNS. This field can be used only with `loadbalancer`, `nodeport`, `route`, or `ingress` type listeners. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, + /// External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This field is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. This field can only be used with `nodeport` type listener. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalIPs")] + pub external_i_ps: Option>, /// The bootstrap host. This field will be used in the Ingress resource or in the Route resource to specify the desired hostname. This field can be used only with `route` (optional) or `ingress` (required) type listeners. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, @@ -3893,6 +3897,9 @@ pub struct KafkaKafkaListenersConfigurationBrokers { pub annotations: Option>, /// ID of the kafka broker (broker identifier). Broker IDs start from 0 and correspond to the number of broker replicas. pub broker: i64, + /// External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This field is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. This field can only be used with `nodeport` type listener. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalIPs")] + pub external_i_ps: Option>, /// The broker host. This field will be used in the Ingress resource or in the Route resource to specify the desired hostname. This field can be used only with `route` (optional) or `ingress` (required) type listeners. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, @@ -4139,9 +4146,9 @@ pub struct KafkaKafkaResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -4162,6 +4169,9 @@ pub struct KafkaKafkaStorage { /// Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'. #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, + /// Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "kraftMetadata")] + pub kraft_metadata: Option, /// Overrides for individual brokers. The `overrides` field allows to specify a different configuration for different brokers. #[serde(default, skip_serializing_if = "Option::is_none")] pub overrides: Option>, @@ -4182,6 +4192,13 @@ pub struct KafkaKafkaStorage { pub volumes: Option>, } +/// Storage configuration (disk). Cannot be updated. This property is required when node pools are not used. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum KafkaKafkaStorageKraftMetadata { + #[serde(rename = "shared")] + Shared, +} + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KafkaKafkaStorageOverrides { /// Id of the kafka broker (broker identifier). @@ -4211,9 +4228,12 @@ pub struct KafkaKafkaStorageVolumes { /// Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "deleteClaim")] pub delete_claim: Option, - /// Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'. + /// Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration. #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, + /// Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "kraftMetadata")] + pub kraft_metadata: Option, /// Overrides for individual brokers. The `overrides` field allows to specify a different configuration for different brokers. #[serde(default, skip_serializing_if = "Option::is_none")] pub overrides: Option>, @@ -4231,6 +4251,12 @@ pub struct KafkaKafkaStorageVolumes { pub r#type: KafkaKafkaStorageVolumesType, } +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum KafkaKafkaStorageVolumesKraftMetadata { + #[serde(rename = "shared")] + Shared, +} + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KafkaKafkaStorageVolumesOverrides { /// Id of the kafka broker (broker identifier). @@ -5463,9 +5489,9 @@ pub struct KafkaKafkaExporterResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -6378,9 +6404,9 @@ pub struct KafkaZookeeperResources { #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub limits: Option>, + pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub requests: Option>, + pub requests: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] @@ -6398,9 +6424,12 @@ pub struct KafkaZookeeperStorage { /// Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "deleteClaim")] pub delete_claim: Option, - /// Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'. + /// Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration. #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, + /// Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "kraftMetadata")] + pub kraft_metadata: Option, /// Overrides for individual brokers. The `overrides` field allows to specify a different configuration for different brokers. #[serde(default, skip_serializing_if = "Option::is_none")] pub overrides: Option>, @@ -6418,6 +6447,13 @@ pub struct KafkaZookeeperStorage { pub r#type: KafkaZookeeperStorageType, } +/// Storage configuration (disk). Cannot be updated. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum KafkaZookeeperStorageKraftMetadata { + #[serde(rename = "shared")] + Shared, +} + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KafkaZookeeperStorageOverrides { /// Id of the kafka broker (broker identifier). diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkatopics.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkatopics.rs index 8f2a5e218..fc55e6770 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkatopics.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkatopics.rs @@ -43,6 +43,9 @@ pub struct KafkaTopicStatus { /// The generation of the CRD that was last reconciled by the operator. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, + /// Replication factor change status. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "replicasChange")] + pub replicas_change: Option, /// The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name. #[serde(default, skip_serializing_if = "Option::is_none", rename = "topicId")] pub topic_id: Option, @@ -51,3 +54,29 @@ pub struct KafkaTopicStatus { pub topic_name: Option, } +/// Replication factor change status. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct KafkaTopicStatusReplicasChange { + /// Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionId")] + pub session_id: Option, + /// Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + /// The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetReplicas")] + pub target_replicas: Option, +} + +/// Replication factor change status. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum KafkaTopicStatusReplicasChangeState { + #[serde(rename = "pending")] + Pending, + #[serde(rename = "ongoing")] + Ongoing, +} + diff --git a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkausers.rs b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkausers.rs index c9ac08ad9..e7155a7a8 100644 --- a/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkausers.rs +++ b/kube-custom-resources-rs/src/kafka_strimzi_io/v1beta2/kafkausers.rs @@ -115,7 +115,7 @@ pub struct KafkaUserAuthorization { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KafkaUserAuthorizationAcls { - /// The host from which the action described in the ACL rule is allowed or denied. + /// The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, /// Operation which will be allowed or denied. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All. diff --git a/kube-custom-resources-rs/src/karpenter_k8s_aws/v1beta1/ec2nodeclasses.rs b/kube-custom-resources-rs/src/karpenter_k8s_aws/v1beta1/ec2nodeclasses.rs index 7a937d5bd..fb321fe75 100644 --- a/kube-custom-resources-rs/src/karpenter_k8s_aws/v1beta1/ec2nodeclasses.rs +++ b/kube-custom-resources-rs/src/karpenter_k8s_aws/v1beta1/ec2nodeclasses.rs @@ -7,6 +7,7 @@ mod prelude { pub use kube::CustomResource; pub use serde::{Serialize, Deserialize}; pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; } use self::prelude::*; @@ -404,6 +405,9 @@ pub struct EC2NodeClassStatus { /// cluster under the AMI selectors. #[serde(default, skip_serializing_if = "Option::is_none")] pub amis: Option>, + /// Conditions contains signals for health and readiness + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, /// InstanceProfile contains the resolved instance profile for the role #[serde(default, skip_serializing_if = "Option::is_none", rename = "instanceProfile")] pub instance_profile: Option, @@ -429,16 +433,12 @@ pub struct EC2NodeClassStatusAmis { pub requirements: Vec, } -/// A node selector requirement with min values is a selector that contains values, a key, an operator that relates the key and values -/// and minValues that represent the requirement to have at least that many values. +/// A node 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 EC2NodeClassStatusAmisRequirements { /// The label key that the selector applies to. pub key: String, - /// This field is ALPHA and can be dropped or replaced at any time - /// MinValues is the minimum number of unique values required to define the flexibility of the specific requirement. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "minValues")] - pub min_values: Option, /// Represents a key's relationship to a set of values. /// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. pub operator: String, diff --git a/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/dnsrecords.rs b/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/dnsrecords.rs index 1af1afadf..aa646e870 100644 --- a/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/dnsrecords.rs +++ b/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/dnsrecords.rs @@ -23,7 +23,9 @@ pub struct DNSRecordSpec { /// endpoints is a list of endpoints that will be published into the dns provider. #[serde(default, skip_serializing_if = "Option::is_none")] pub endpoints: Option>, - /// HealthCheckSpec configures health checks in the DNS provider. By default this health check will be applied to each unique DNS A Record for the listeners assigned to the target gateway + /// HealthCheckSpec configures health checks in the DNS provider. + /// By default this health check will be applied to each unique DNS A Record for + /// the listeners assigned to the target gateway #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheck")] pub health_check: Option, /// managedZone is a reference to a ManagedZone instance to which this record will publish its endpoints. @@ -32,7 +34,8 @@ pub struct DNSRecordSpec { /// ownerID is a unique string used to identify the owner of this record. #[serde(rename = "ownerID")] pub owner_id: String, - /// rootHost is the single root for all endpoints in a DNSRecord. it is expected all defined endpoints are children of or equal to this rootHost + /// rootHost is the single root for all endpoints in a DNSRecord. + /// it is expected all defined endpoints are children of or equal to this rootHost #[serde(rename = "rootHost")] pub root_host: String, } @@ -72,7 +75,9 @@ pub struct DNSRecordEndpointsProviderSpecific { pub value: Option, } -/// HealthCheckSpec configures health checks in the DNS provider. By default this health check will be applied to each unique DNS A Record for the listeners assigned to the target gateway +/// HealthCheckSpec configures health checks in the DNS provider. +/// By default this health check will be applied to each unique DNS A Record for +/// the listeners assigned to the target gateway #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct DNSRecordHealthCheck { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -88,25 +93,40 @@ pub struct DNSRecordHealthCheck { /// managedZone is a reference to a ManagedZone instance to which this record will publish its endpoints. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct DNSRecordManagedZone { - /// `name` is the name of the managed zone. Required + /// `name` is the name of the managed zone. + /// Required pub name: String, } /// DNSRecordStatus defines the observed state of DNSRecord #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct DNSRecordStatus { - /// conditions are any conditions associated with the record in the managed zone. - /// If publishing the record fails, the "Failed" condition will be set with a reason and message describing the cause of the failure. + /// conditions are any conditions associated with the record in the managed zone. + /// + /// + /// If publishing the record fails, the "Failed" condition will be set with a + /// reason and message describing the cause of the failure. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, - /// endpoints are the last endpoints that were successfully published by the provider - /// Provides a simple mechanism to store the current provider records in order to delete any that are no longer present in DNSRecordSpec.Endpoints - /// Note: This will not be required if/when we switch to using external-dns since when running with a "sync" policy it will clean up unused records automatically. + /// endpoints are the last endpoints that were successfully published by the provider + /// + /// + /// Provides a simple mechanism to store the current provider records in order to + /// delete any that are no longer present in DNSRecordSpec.Endpoints + /// + /// + /// Note: This will not be required if/when we switch to using external-dns since when + /// running with a "sync" policy it will clean up unused records automatically. #[serde(default, skip_serializing_if = "Option::is_none")] pub endpoints: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheck")] pub health_check: Option, - /// observedGeneration is the most recently observed generation of the DNSRecord. When the DNSRecord is updated, the controller updates the corresponding record in each managed zone. If an update for a particular zone fails, that failure is recorded in the status condition for the zone so that the controller can determine that it needs to retry the update for that specific zone. + /// observedGeneration is the most recently observed generation of the + /// DNSRecord. When the DNSRecord is updated, the controller updates the + /// corresponding record in each managed zone. If an update for a + /// particular zone fails, that failure is recorded in the status + /// condition for the zone so that the controller can determine that it + /// needs to retry the update for that specific zone. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, /// QueuedAt is a time when DNS record was received for the reconciliation @@ -118,7 +138,8 @@ pub struct DNSRecordStatus { /// ValidFor indicates duration since the last reconciliation we consider data in the record to be valid #[serde(default, skip_serializing_if = "Option::is_none", rename = "validFor")] pub valid_for: Option, - /// WriteCounter represent a number of consecutive write attempts on the same generation of the record. It is being reset to 0 when the generation changes or there are no changes to write. + /// WriteCounter represent a number of consecutive write attempts on the same generation of the record. + /// It is being reset to 0 when the generation changes or there are no changes to write. #[serde(default, skip_serializing_if = "Option::is_none", rename = "writeCounter")] pub write_counter: Option, } diff --git a/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/managedzones.rs b/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/managedzones.rs index 47f5194d5..48790c019 100644 --- a/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/managedzones.rs +++ b/kube-custom-resources-rs/src/kuadrant_io/v1alpha1/managedzones.rs @@ -44,14 +44,16 @@ pub struct ManagedZoneDnsProviderSecretRef { /// parentManagedZone reference to another managed zone that this managed zone belongs to. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ManagedZoneParentManagedZone { - /// `name` is the name of the managed zone. Required + /// `name` is the name of the managed zone. + /// Required pub name: String, } /// ManagedZoneStatus defines the observed state of a Zone #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ManagedZoneStatus { - /// List of status conditions to indicate the status of a ManagedZone. Known condition types are `Ready`. + /// List of status conditions to indicate the status of a ManagedZone. + /// Known condition types are `Ready`. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, /// The ID assigned by this provider for this zone (i.e. route53.HostedZone.ID) diff --git a/kube-custom-resources-rs/src/lib.rs b/kube-custom-resources-rs/src/lib.rs index 323850f1f..00451d08a 100644 --- a/kube-custom-resources-rs/src/lib.rs +++ b/kube-custom-resources-rs/src/lib.rs @@ -446,6 +446,11 @@ apiVersion `azure.microsoft.com/v1beta1`: apiVersion `b3scale.infra.run/v1`: - `BBBFrontend` +## b3scale_io + +apiVersion `b3scale.io/v1`: +- `BBBFrontend` + ## batch_volcano_sh apiVersion `batch.volcano.sh/v1alpha1`: @@ -2994,6 +2999,9 @@ apiVersion `storageos.com/v1`: apiVersion `sts.min.io/v1alpha1`: - `PolicyBinding` +apiVersion `sts.min.io/v1beta1`: +- `PolicyBinding` + ## stunner_l7mp_io apiVersion `stunner.l7mp.io/v1`: @@ -3234,6 +3242,9 @@ apiVersion `workload.codeflare.dev/v1beta1`: - `AppWrapper` - `SchedulingSpec` +apiVersion `workload.codeflare.dev/v1beta2`: +- `AppWrapper` + ## workloads_kubeblocks_io apiVersion `workloads.kubeblocks.io/v1alpha1`: @@ -3346,6 +3357,8 @@ pub mod awx_ansible_com; pub mod azure_microsoft_com; #[cfg(feature = "b3scale_infra_run")] pub mod b3scale_infra_run; +#[cfg(feature = "b3scale_io")] +pub mod b3scale_io; #[cfg(feature = "batch_volcano_sh")] pub mod batch_volcano_sh; #[cfg(feature = "beat_k8s_elastic_co")] diff --git a/kube-custom-resources-rs/src/limitador_kuadrant_io/v1alpha1/limitadors.rs b/kube-custom-resources-rs/src/limitador_kuadrant_io/v1alpha1/limitadors.rs index 43c98ace3..9a91df647 100644 --- a/kube-custom-resources-rs/src/limitador_kuadrant_io/v1alpha1/limitadors.rs +++ b/kube-custom-resources-rs/src/limitador_kuadrant_io/v1alpha1/limitadors.rs @@ -24,6 +24,8 @@ pub struct LimitadorSpec { #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub limits: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub listener: Option, @@ -48,6 +50,7 @@ pub struct LimitadorSpec { /// Sets the level of verbosity #[serde(default, skip_serializing_if = "Option::is_none")] pub verbosity: Option, + /// [Deprecated] Use spec.image instead. Docker tag used as limitador image. The repo is hardcoded to quay.io/kuadrant/limitador #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } @@ -619,15 +622,9 @@ pub struct LimitadorStorageRedisCachedOptions { /// MaxCached refers to the maximum amount of counters cached [default: 10000] #[serde(default, skip_serializing_if = "Option::is_none", rename = "max-cached")] pub max_cached: Option, - /// Ratio to apply to the TTL from Redis on cached counters [default: 10] - #[serde(default, skip_serializing_if = "Option::is_none")] - pub ratio: Option, /// ResponseTimeout defines the timeout for Redis commands in milliseconds [default: 350] #[serde(default, skip_serializing_if = "Option::is_none", rename = "response-timeout")] pub response_timeout: Option, - /// TTL for cached counters in milliseconds [default: 5000] - #[serde(default, skip_serializing_if = "Option::is_none")] - pub ttl: Option, } /// LimitadorSpec defines the desired state of Limitador diff --git a/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngclusteroutputs.rs b/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngclusteroutputs.rs index 2c8c65f6a..dcf66f22e 100644 --- a/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngclusteroutputs.rs +++ b/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngclusteroutputs.rs @@ -1874,6 +1874,8 @@ pub struct SyslogNGClusterOutputS3 { #[serde(default, skip_serializing_if = "Option::is_none")] pub compresslevel: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub disk_buffer: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub flush_grace_period: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "log-fifo-size")] pub log_fifo_size: Option, @@ -1945,6 +1947,22 @@ pub struct SyslogNGClusterOutputS3AccessKeyValueFromSecretKeyRef { pub optional: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct SyslogNGClusterOutputS3DiskBuffer { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub compaction: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dir: Option, + pub disk_buf_size: i64, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mem_buf_length: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mem_buf_size: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub q_out_size: Option, + pub reliable: bool, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct SyslogNGClusterOutputS3SecretKey { #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountFrom")] diff --git a/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngoutputs.rs b/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngoutputs.rs index eaa3ce21b..59ed03c13 100644 --- a/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngoutputs.rs +++ b/kube-custom-resources-rs/src/logging_banzaicloud_io/v1beta1/syslogngoutputs.rs @@ -1872,6 +1872,8 @@ pub struct SyslogNGOutputS3 { #[serde(default, skip_serializing_if = "Option::is_none")] pub compresslevel: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub disk_buffer: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub flush_grace_period: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "log-fifo-size")] pub log_fifo_size: Option, @@ -1943,6 +1945,22 @@ pub struct SyslogNGOutputS3AccessKeyValueFromSecretKeyRef { pub optional: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct SyslogNGOutputS3DiskBuffer { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub compaction: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dir: Option, + pub disk_buf_size: i64, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mem_buf_length: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mem_buf_size: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub q_out_size: Option, + pub reliable: bool, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct SyslogNGOutputS3SecretKey { #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountFrom")] diff --git a/kube-custom-resources-rs/src/longhorn_io/v1beta2/nodes.rs b/kube-custom-resources-rs/src/longhorn_io/v1beta2/nodes.rs index 9aeaba82c..69fb19ba3 100644 --- a/kube-custom-resources-rs/src/longhorn_io/v1beta2/nodes.rs +++ b/kube-custom-resources-rs/src/longhorn_io/v1beta2/nodes.rs @@ -109,6 +109,8 @@ pub struct NodeStatusDiskStatus { pub disk_uuid: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "filesystemType")] pub filesystem_type: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "instanceManagerName")] + pub instance_manager_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "scheduledReplica")] pub scheduled_replica: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageAvailable")] diff --git a/kube-custom-resources-rs/src/longhorn_io/v1beta2/settings.rs b/kube-custom-resources-rs/src/longhorn_io/v1beta2/settings.rs index 5b2baffb9..34fac5f60 100644 --- a/kube-custom-resources-rs/src/longhorn_io/v1beta2/settings.rs +++ b/kube-custom-resources-rs/src/longhorn_io/v1beta2/settings.rs @@ -7,4 +7,12 @@ mod prelude { pub use kube::CustomResource; pub use serde::{Serialize, Deserialize}; } +use self::prelude::*; + +/// SettingStatus defines the observed state of the Longhorn setting +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct SettingStatus { + /// The setting is applied. + pub applied: bool, +} diff --git a/kube-custom-resources-rs/src/minio_min_io/v2/tenants.rs b/kube-custom-resources-rs/src/minio_min_io/v2/tenants.rs index 99acf37f6..919128c4a 100644 --- a/kube-custom-resources-rs/src/minio_min_io/v2/tenants.rs +++ b/kube-custom-resources-rs/src/minio_min_io/v2/tenants.rs @@ -2140,6 +2140,8 @@ pub struct TenantLifecyclePostStart { pub exec: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sleep: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] pub tcp_socket: Option, } @@ -2169,6 +2171,11 @@ pub struct TenantLifecyclePostStartHttpGetHttpHeaders { pub value: String, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TenantLifecyclePostStartSleep { + pub seconds: i64, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TenantLifecyclePostStartTcpSocket { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -2182,6 +2189,8 @@ pub struct TenantLifecyclePreStop { pub exec: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] pub http_get: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sleep: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] pub tcp_socket: Option, } @@ -2211,6 +2220,11 @@ pub struct TenantLifecyclePreStopHttpGetHttpHeaders { pub value: String, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TenantLifecyclePreStopSleep { + pub seconds: i64, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TenantLifecyclePreStopTcpSocket { #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs index 8c90d0bfc..3ef8602e0 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs @@ -1575,6 +1575,10 @@ pub struct PrometheusAlerting { /// containing Alertmanager IPs to fire alerts against. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusAlertingAlertmanagers { + /// Relabeling configs applied before sending alerts to a specific Alertmanager. + /// It requires Prometheus >= v2.51.0. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "alertRelabelings")] + pub alert_relabelings: Option>, /// Version of the Alertmanager API that Prometheus uses to send alerts. /// It can be "v1" or "v2". #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] @@ -1612,6 +1616,9 @@ pub struct PrometheusAlertingAlertmanagers { pub path_prefix: Option, /// Port on which the Alertmanager API is exposed. pub port: IntOrString, + /// Relabel configuration applied to the discovered Alertmanagers. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub relabelings: Option>, /// Scheme to use when firing alerts. #[serde(default, skip_serializing_if = "Option::is_none")] pub scheme: Option, @@ -1632,6 +1639,106 @@ pub struct PrometheusAlertingAlertmanagers { pub tls_config: Option, } +/// RelabelConfig allows dynamic rewriting of the label set for targets, alerts, +/// scraped samples and remote write samples. +/// +/// +/// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PrometheusAlertingAlertmanagersAlertRelabelings { + /// Action to perform based on the regex matching. + /// + /// + /// `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. + /// `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. + /// + /// + /// Default: "Replace" + #[serde(default, skip_serializing_if = "Option::is_none")] + pub action: Option, + /// Modulus to take of the hash of the source label values. + /// + /// + /// Only applicable when the action is `HashMod`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub modulus: Option, + /// Regular expression against which the extracted value is matched. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub regex: Option, + /// Replacement value against which a Replace action is performed if the + /// regular expression matches. + /// + /// + /// Regex capture groups are available. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub replacement: Option, + /// Separator is the string between concatenated SourceLabels. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub separator: Option, + /// The source labels select values from existing labels. Their content is + /// concatenated using the configured Separator and matched against the + /// configured regular expression. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceLabels")] + pub source_labels: Option>, + /// Label to which the resulting string is written in a replacement. + /// + /// + /// It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, + /// `KeepEqual` and `DropEqual` actions. + /// + /// + /// Regex capture groups are available. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetLabel")] + pub target_label: Option, +} + +/// RelabelConfig allows dynamic rewriting of the label set for targets, alerts, +/// scraped samples and remote write samples. +/// +/// +/// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum PrometheusAlertingAlertmanagersAlertRelabelingsAction { + #[serde(rename = "replace")] + Replace, + #[serde(rename = "Replace")] + ReplaceX, + #[serde(rename = "keep")] + Keep, + #[serde(rename = "Keep")] + KeepX, + #[serde(rename = "drop")] + Drop, + #[serde(rename = "Drop")] + DropX, + #[serde(rename = "hashmod")] + Hashmod, + HashMod, + #[serde(rename = "labelmap")] + Labelmap, + LabelMap, + #[serde(rename = "labeldrop")] + Labeldrop, + LabelDrop, + #[serde(rename = "labelkeep")] + Labelkeep, + LabelKeep, + #[serde(rename = "lowercase")] + Lowercase, + #[serde(rename = "Lowercase")] + LowercaseX, + #[serde(rename = "uppercase")] + Uppercase, + #[serde(rename = "Uppercase")] + UppercaseX, + #[serde(rename = "keepequal")] + Keepequal, + KeepEqual, + #[serde(rename = "dropequal")] + Dropequal, + DropEqual, +} + /// Authorization section for Alertmanager. /// /// @@ -1715,6 +1822,106 @@ pub struct PrometheusAlertingAlertmanagersBasicAuthUsername { pub optional: Option, } +/// RelabelConfig allows dynamic rewriting of the label set for targets, alerts, +/// scraped samples and remote write samples. +/// +/// +/// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PrometheusAlertingAlertmanagersRelabelings { + /// Action to perform based on the regex matching. + /// + /// + /// `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. + /// `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. + /// + /// + /// Default: "Replace" + #[serde(default, skip_serializing_if = "Option::is_none")] + pub action: Option, + /// Modulus to take of the hash of the source label values. + /// + /// + /// Only applicable when the action is `HashMod`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub modulus: Option, + /// Regular expression against which the extracted value is matched. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub regex: Option, + /// Replacement value against which a Replace action is performed if the + /// regular expression matches. + /// + /// + /// Regex capture groups are available. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub replacement: Option, + /// Separator is the string between concatenated SourceLabels. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub separator: Option, + /// The source labels select values from existing labels. Their content is + /// concatenated using the configured Separator and matched against the + /// configured regular expression. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceLabels")] + pub source_labels: Option>, + /// Label to which the resulting string is written in a replacement. + /// + /// + /// It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, + /// `KeepEqual` and `DropEqual` actions. + /// + /// + /// Regex capture groups are available. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetLabel")] + pub target_label: Option, +} + +/// RelabelConfig allows dynamic rewriting of the label set for targets, alerts, +/// scraped samples and remote write samples. +/// +/// +/// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum PrometheusAlertingAlertmanagersRelabelingsAction { + #[serde(rename = "replace")] + Replace, + #[serde(rename = "Replace")] + ReplaceX, + #[serde(rename = "keep")] + Keep, + #[serde(rename = "Keep")] + KeepX, + #[serde(rename = "drop")] + Drop, + #[serde(rename = "Drop")] + DropX, + #[serde(rename = "hashmod")] + Hashmod, + HashMod, + #[serde(rename = "labelmap")] + Labelmap, + LabelMap, + #[serde(rename = "labeldrop")] + Labeldrop, + LabelDrop, + #[serde(rename = "labelkeep")] + Labelkeep, + LabelKeep, + #[serde(rename = "lowercase")] + Lowercase, + #[serde(rename = "Lowercase")] + LowercaseX, + #[serde(rename = "uppercase")] + Uppercase, + #[serde(rename = "Uppercase")] + UppercaseX, + #[serde(rename = "keepequal")] + Keepequal, + KeepEqual, + #[serde(rename = "dropequal")] + Dropequal, + DropEqual, +} + /// Sigv4 allows to configures AWS's Signature Verification 4 for the URL. /// /// @@ -5421,16 +5628,24 @@ pub struct PrometheusRemoteWriteAzureAd { #[serde(default, skip_serializing_if = "Option::is_none")] pub cloud: Option, /// ManagedIdentity defines the Azure User-assigned Managed identity. - /// Cannot be set at the same time as `oauth`. + /// Cannot be set at the same time as `oauth` or `sdk`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "managedIdentity")] pub managed_identity: Option, /// OAuth defines the oauth config that is being used to authenticate. - /// Cannot be set at the same time as `managedIdentity`. + /// Cannot be set at the same time as `managedIdentity` or `sdk`. /// /// /// It requires Prometheus >= v2.48.0. #[serde(default, skip_serializing_if = "Option::is_none")] pub oauth: Option, + /// SDK defines the Azure SDK config that is being used to authenticate. + /// See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication + /// Cannot be set at the same time as `oauth` or `managedIdentity`. + /// + /// + /// It requires Prometheus >= 2.52.0. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sdk: Option, } /// AzureAD for the URL. @@ -5448,7 +5663,7 @@ pub enum PrometheusRemoteWriteAzureAdCloud { } /// ManagedIdentity defines the Azure User-assigned Managed identity. -/// Cannot be set at the same time as `oauth`. +/// Cannot be set at the same time as `oauth` or `sdk`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusRemoteWriteAzureAdManagedIdentity { /// The client id @@ -5457,7 +5672,7 @@ pub struct PrometheusRemoteWriteAzureAdManagedIdentity { } /// OAuth defines the oauth config that is being used to authenticate. -/// Cannot be set at the same time as `managedIdentity`. +/// Cannot be set at the same time as `managedIdentity` or `sdk`. /// /// /// It requires Prometheus >= v2.48.0. @@ -5469,7 +5684,7 @@ pub struct PrometheusRemoteWriteAzureAdOauth { /// `clientSecret` specifies a key of a Secret containing the client secret of the Azure Active Directory application that is being used to authenticate. #[serde(rename = "clientSecret")] pub client_secret: PrometheusRemoteWriteAzureAdOauthClientSecret, - /// `tenantID` is the tenant ID of the Azure Active Directory application that is being used to authenticate. + /// `tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate. #[serde(rename = "tenantId")] pub tenant_id: String, } @@ -5489,6 +5704,19 @@ pub struct PrometheusRemoteWriteAzureAdOauthClientSecret { pub optional: Option, } +/// SDK defines the Azure SDK config that is being used to authenticate. +/// See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication +/// Cannot be set at the same time as `oauth` or `managedIdentity`. +/// +/// +/// It requires Prometheus >= 2.52.0. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PrometheusRemoteWriteAzureAdSdk { + /// `tenantId` is the tenant ID of the azure active directory application that is being used to authenticate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantId")] + pub tenant_id: Option, +} + /// BasicAuth configuration for the URL. /// /// @@ -6097,10 +6325,11 @@ pub struct PrometheusRulesAlert { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusScrapeClasses { - /// Default indicates that the scrape applies to all scrape objects that don't configure an explicit scrape class name. + /// Default indicates that the scrape applies to all scrape objects that + /// don't configure an explicit scrape class name. /// /// - /// Only one scrape class can be set as default. + /// Only one scrape class can be set as the default. #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option, /// Name of the scrape class. @@ -6117,7 +6346,12 @@ pub struct PrometheusScrapeClasses { /// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config #[serde(default, skip_serializing_if = "Option::is_none")] pub relabelings: Option>, - /// TLSConfig section for scrapes. + /// TLSConfig defines the TLS settings to use for the scrape. When the + /// scrape objects define their own CA, certificate and/or key, they take + /// precedence over the corresponding scrape class fields. + /// + /// + /// For now only the `caFile`, `certFile` and `keyFile` fields are supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tlsConfig")] pub tls_config: Option, } @@ -6222,7 +6456,12 @@ pub enum PrometheusScrapeClassesRelabelingsAction { DropEqual, } -/// TLSConfig section for scrapes. +/// TLSConfig defines the TLS settings to use for the scrape. When the +/// scrape objects define their own CA, certificate and/or key, they take +/// precedence over the corresponding scrape class fields. +/// +/// +/// For now only the `caFile`, `certFile` and `keyFile` fields are supported. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusScrapeClassesTlsConfig { /// Certificate authority used when verifying server certificates. diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs index a5b8a0f62..667a0c254 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs @@ -4448,16 +4448,24 @@ pub struct PrometheusAgentRemoteWriteAzureAd { #[serde(default, skip_serializing_if = "Option::is_none")] pub cloud: Option, /// ManagedIdentity defines the Azure User-assigned Managed identity. - /// Cannot be set at the same time as `oauth`. + /// Cannot be set at the same time as `oauth` or `sdk`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "managedIdentity")] pub managed_identity: Option, /// OAuth defines the oauth config that is being used to authenticate. - /// Cannot be set at the same time as `managedIdentity`. + /// Cannot be set at the same time as `managedIdentity` or `sdk`. /// /// /// It requires Prometheus >= v2.48.0. #[serde(default, skip_serializing_if = "Option::is_none")] pub oauth: Option, + /// SDK defines the Azure SDK config that is being used to authenticate. + /// See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication + /// Cannot be set at the same time as `oauth` or `managedIdentity`. + /// + /// + /// It requires Prometheus >= 2.52.0. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sdk: Option, } /// AzureAD for the URL. @@ -4475,7 +4483,7 @@ pub enum PrometheusAgentRemoteWriteAzureAdCloud { } /// ManagedIdentity defines the Azure User-assigned Managed identity. -/// Cannot be set at the same time as `oauth`. +/// Cannot be set at the same time as `oauth` or `sdk`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusAgentRemoteWriteAzureAdManagedIdentity { /// The client id @@ -4484,7 +4492,7 @@ pub struct PrometheusAgentRemoteWriteAzureAdManagedIdentity { } /// OAuth defines the oauth config that is being used to authenticate. -/// Cannot be set at the same time as `managedIdentity`. +/// Cannot be set at the same time as `managedIdentity` or `sdk`. /// /// /// It requires Prometheus >= v2.48.0. @@ -4496,7 +4504,7 @@ pub struct PrometheusAgentRemoteWriteAzureAdOauth { /// `clientSecret` specifies a key of a Secret containing the client secret of the Azure Active Directory application that is being used to authenticate. #[serde(rename = "clientSecret")] pub client_secret: PrometheusAgentRemoteWriteAzureAdOauthClientSecret, - /// `tenantID` is the tenant ID of the Azure Active Directory application that is being used to authenticate. + /// `tenantId` is the tenant ID of the Azure Active Directory application that is being used to authenticate. #[serde(rename = "tenantId")] pub tenant_id: String, } @@ -4516,6 +4524,19 @@ pub struct PrometheusAgentRemoteWriteAzureAdOauthClientSecret { pub optional: Option, } +/// SDK defines the Azure SDK config that is being used to authenticate. +/// See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication +/// Cannot be set at the same time as `oauth` or `managedIdentity`. +/// +/// +/// It requires Prometheus >= 2.52.0. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PrometheusAgentRemoteWriteAzureAdSdk { + /// `tenantId` is the tenant ID of the azure active directory application that is being used to authenticate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantId")] + pub tenant_id: Option, +} + /// BasicAuth configuration for the URL. /// /// @@ -5026,10 +5047,11 @@ pub struct PrometheusAgentResourcesClaims { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusAgentScrapeClasses { - /// Default indicates that the scrape applies to all scrape objects that don't configure an explicit scrape class name. + /// Default indicates that the scrape applies to all scrape objects that + /// don't configure an explicit scrape class name. /// /// - /// Only one scrape class can be set as default. + /// Only one scrape class can be set as the default. #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option, /// Name of the scrape class. @@ -5046,7 +5068,12 @@ pub struct PrometheusAgentScrapeClasses { /// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config #[serde(default, skip_serializing_if = "Option::is_none")] pub relabelings: Option>, - /// TLSConfig section for scrapes. + /// TLSConfig defines the TLS settings to use for the scrape. When the + /// scrape objects define their own CA, certificate and/or key, they take + /// precedence over the corresponding scrape class fields. + /// + /// + /// For now only the `caFile`, `certFile` and `keyFile` fields are supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tlsConfig")] pub tls_config: Option, } @@ -5151,7 +5178,12 @@ pub enum PrometheusAgentScrapeClassesRelabelingsAction { DropEqual, } -/// TLSConfig section for scrapes. +/// TLSConfig defines the TLS settings to use for the scrape. When the +/// scrape objects define their own CA, certificate and/or key, they take +/// precedence over the corresponding scrape class fields. +/// +/// +/// For now only the `caFile`, `certFile` and `keyFile` fields are supported. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusAgentScrapeClassesTlsConfig { /// Certificate authority used when verifying server certificates. 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 3fb2b8e6a..2155ec914 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 @@ -416,16 +416,11 @@ pub struct ScrapeConfigNomadSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigNomadSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -589,8 +584,10 @@ pub struct ScrapeConfigAuthorizationCredentials { /// See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#azure_sd_config #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigAzureSdConfigs { - /// # The authentication method, either OAuth or ManagedIdentity. + /// # The authentication method, either `OAuth` or `ManagedIdentity` or `SDK`. /// See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview + /// SDK authentication method uses environment variables by default. + /// See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication #[serde(default, skip_serializing_if = "Option::is_none", rename = "authenticationMethod")] pub authentication_method: Option, /// Optional client ID. Only required with the OAuth authentication method. @@ -626,6 +623,8 @@ pub struct ScrapeConfigAzureSdConfigs { pub enum ScrapeConfigAzureSdConfigsAuthenticationMethod { OAuth, ManagedIdentity, + #[serde(rename = "SDK")] + Sdk, } /// Optional client secret. Only required with the OAuth authentication method. @@ -941,16 +940,11 @@ pub struct ScrapeConfigConsulSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigConsulSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -1276,16 +1270,11 @@ pub struct ScrapeConfigDigitalOceanSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigDigitalOceanSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -1690,16 +1679,11 @@ pub struct ScrapeConfigDockerSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigDockerSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -2115,16 +2099,11 @@ pub struct ScrapeConfigEurekaSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigEurekaSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -2529,16 +2508,11 @@ pub struct ScrapeConfigHetznerSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigHetznerSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -2809,16 +2783,11 @@ pub struct ScrapeConfigHttpSdConfigsBasicAuthUsername { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigHttpSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -3207,16 +3176,11 @@ pub struct ScrapeConfigKubernetesSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigKubernetesSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -3625,16 +3589,11 @@ pub struct ScrapeConfigKumaSdConfigsOauth2ClientSecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigKumaSdConfigsProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? @@ -4111,16 +4070,11 @@ pub struct ScrapeConfigOpenstackSdConfigsTlsConfigKeySecret { pub optional: Option, } -/// ProxyConnectHeader optionally specifies headers to send to -/// proxies during CONNECT requests. -/// -/// -/// It requires Prometheus >= v2.43.0. +/// SecretKeySelector selects a key of a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScrapeConfigProxyConnectHeader { /// The key of the secret to select from. Must be a valid secret key. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, + 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? diff --git a/kube-custom-resources-rs/src/networking_istio_io/v1/workloadgroups.rs b/kube-custom-resources-rs/src/networking_istio_io/v1/workloadgroups.rs index c5c758652..bd6e3c9c2 100644 --- a/kube-custom-resources-rs/src/networking_istio_io/v1/workloadgroups.rs +++ b/kube-custom-resources-rs/src/networking_istio_io/v1/workloadgroups.rs @@ -10,7 +10,7 @@ mod prelude { } use self::prelude::*; -/// `WorkloadGroup` enables specifying the properties of a single workload for bootstrap and provides a template for `WorkloadEntry`, similar to how `Deployment` specifies properties of workloads via `Pod` templates. +/// Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "networking.istio.io", version = "v1", kind = "WorkloadGroup", plural = "workloadgroups")] #[kube(namespaced)] diff --git a/kube-custom-resources-rs/src/networking_istio_io/v1beta1/workloadgroups.rs b/kube-custom-resources-rs/src/networking_istio_io/v1beta1/workloadgroups.rs index 005ea98ca..f668833eb 100644 --- a/kube-custom-resources-rs/src/networking_istio_io/v1beta1/workloadgroups.rs +++ b/kube-custom-resources-rs/src/networking_istio_io/v1beta1/workloadgroups.rs @@ -10,7 +10,7 @@ mod prelude { } use self::prelude::*; -/// `WorkloadGroup` enables specifying the properties of a single workload for bootstrap and provides a template for `WorkloadEntry`, similar to how `Deployment` specifies properties of workloads via `Pod` templates. +/// Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "networking.istio.io", version = "v1beta1", kind = "WorkloadGroup", plural = "workloadgroups")] #[kube(namespaced)] diff --git a/kube-custom-resources-rs/src/nodeinfo_volcano_sh/v1alpha1/numatopologies.rs b/kube-custom-resources-rs/src/nodeinfo_volcano_sh/v1alpha1/numatopologies.rs index 41cbd86d5..5dbc2fc4e 100644 --- a/kube-custom-resources-rs/src/nodeinfo_volcano_sh/v1alpha1/numatopologies.rs +++ b/kube-custom-resources-rs/src/nodeinfo_volcano_sh/v1alpha1/numatopologies.rs @@ -17,21 +17,25 @@ use self::prelude::*; #[kube(derive="Default")] #[kube(derive="PartialEq")] pub struct NumatopologySpec { - /// Specifies the cpu topology info Key is cpu id + /// Specifies the cpu topology info + /// Key is cpu id #[serde(default, skip_serializing_if = "Option::is_none", rename = "cpuDetail")] pub cpu_detail: Option>, - /// Specifies the numa info for the resource Key is resource name + /// Specifies the numa info for the resource + /// Key is resource name #[serde(default, skip_serializing_if = "Option::is_none")] pub numares: Option>, /// Specifies the policy of the manager #[serde(default, skip_serializing_if = "Option::is_none")] pub policies: Option>, - /// Specifies the reserved resource of the node Key is resource name + /// Specifies the reserved resource of the node + /// Key is resource name #[serde(default, skip_serializing_if = "Option::is_none", rename = "resReserved")] pub res_reserved: Option>, } -/// Specifies the cpu topology info Key is cpu id +/// Specifies the cpu topology info +/// Key is cpu id #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct NumatopologyCpuDetail { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -42,7 +46,8 @@ pub struct NumatopologyCpuDetail { pub socket: Option, } -/// Specifies the numa info for the resource Key is resource name +/// Specifies the numa info for the resource +/// Key is resource name #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct NumatopologyNumares { #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/opentelemetry_io/v1beta1/opentelemetrycollectors.rs b/kube-custom-resources-rs/src/opentelemetry_io/v1beta1/opentelemetrycollectors.rs index b197f35d3..4f8910ef5 100644 --- a/kube-custom-resources-rs/src/opentelemetry_io/v1beta1/opentelemetrycollectors.rs +++ b/kube-custom-resources-rs/src/opentelemetry_io/v1beta1/opentelemetrycollectors.rs @@ -71,6 +71,8 @@ pub struct OpenTelemetryCollectorSpec { pub ports: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] pub priority_class_name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -2071,6 +2073,22 @@ pub struct OpenTelemetryCollectorPorts { pub target_port: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OpenTelemetryCollectorReadinessProbe { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct OpenTelemetryCollectorResources { #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/operator_open_cluster_management_io/v1/klusterlets.rs b/kube-custom-resources-rs/src/operator_open_cluster_management_io/v1/klusterlets.rs index 901183d40..e41f29e6d 100644 --- a/kube-custom-resources-rs/src/operator_open_cluster_management_io/v1/klusterlets.rs +++ b/kube-custom-resources-rs/src/operator_open_cluster_management_io/v1/klusterlets.rs @@ -236,6 +236,9 @@ pub enum KlusterletResourceRequirementType { /// WorkConfiguration contains the configuration of work #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct KlusterletWorkConfiguration { + /// AppliedManifestWorkEvictionGracePeriod is the eviction grace period the work agent will wait before evicting the AppliedManifestWorks, whose corresponding ManifestWorks are missing on the hub cluster, from the managed cluster. If not present, the default value of the work agent will be used. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appliedManifestWorkEvictionGracePeriod")] + pub applied_manifest_work_eviction_grace_period: Option, /// FeatureGates represents the list of feature gates for work If it is set empty, default feature gates will be used. If it is set, featuregate/Foo is an example of one item in FeatureGates: 1. If featuregate/Foo does not exist, registration-operator will discard it 2. If featuregate/Foo exists and is false by default. It is now possible to set featuregate/Foo=[false|true] 3. If featuregate/Foo exists and is true by default. If a cluster-admin upgrading from 1 to 2 wants to continue having featuregate/Foo=false, he can set featuregate/Foo=false before upgrading. Let's say the cluster-admin wants featuregate/Foo=false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "featureGates")] pub feature_gates: Option>, diff --git a/kube-custom-resources-rs/src/org_eclipse_che/v2/checlusters.rs b/kube-custom-resources-rs/src/org_eclipse_che/v2/checlusters.rs index 8dd1e9430..23edec77f 100644 --- a/kube-custom-resources-rs/src/org_eclipse_che/v2/checlusters.rs +++ b/kube-custom-resources-rs/src/org_eclipse_che/v2/checlusters.rs @@ -2946,7 +2946,7 @@ pub struct CheClusterNetworkingAuth { /// Access Token Scope. This field is specific to Che installations made for Kubernetes only and ignored for OpenShift. #[serde(default, skip_serializing_if = "Option::is_none", rename = "oAuthScope")] pub o_auth_scope: Option, - /// Name of the secret set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side. + /// Name of the secret set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side. For Kubernetes, this can either be the plain text oAuthSecret value, or the name of a kubernetes secret which contains a key `oAuthSecret` and the value is the secret. NOTE: this secret must exist in the same namespace as the `CheCluster` resource and contain the label `app.kubernetes.io/part-of=che.eclipse.org`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "oAuthSecret")] pub o_auth_secret: Option, } diff --git a/kube-custom-resources-rs/src/pgv2_percona_com/v2/perconapgclusters.rs b/kube-custom-resources-rs/src/pgv2_percona_com/v2/perconapgclusters.rs index 97bd39571..eeca862cd 100644 --- a/kube-custom-resources-rs/src/pgv2_percona_com/v2/perconapgclusters.rs +++ b/kube-custom-resources-rs/src/pgv2_percona_com/v2/perconapgclusters.rs @@ -6326,6 +6326,9 @@ pub struct PerconaPGClusterInstances { /// PostgreSQL to restart. #[serde(default, skip_serializing_if = "Option::is_none")] pub sidecars: Option>, + /// The list of tablespaces volumes to mount for this postgrescluster This field requires enabling TablespaceVolumes feature gate + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tablespaceVolumes")] + pub tablespace_volumes: Option>, /// Tolerations of a PostgreSQL pod. Changing this value causes PostgreSQL to restart. /// More info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration #[serde(default, skip_serializing_if = "Option::is_none")] @@ -9898,6 +9901,117 @@ pub struct PerconaPGClusterInstancesSidecarsVolumeMounts { pub sub_path_expr: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumes { + /// Defines a PersistentVolumeClaim for a tablespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes + #[serde(rename = "dataVolumeClaimSpec")] + pub data_volume_claim_spec: PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpec, + /// The name for the tablespace, used as the path name for the volume. Must be unique in the instance set since they become the directory names. + pub name: String, +} + +/// Defines a PersistentVolumeClaim for a tablespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpec { + /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] + pub access_modes: Option>, + /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")] + pub data_source: Option, + /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] + pub data_source_ref: Option, + /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + /// selector is a label query over volumes to consider for binding. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub selector: Option, + /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")] + pub storage_class_name: Option, + /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, + /// volumeName is the binding reference to the PersistentVolume backing this claim. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")] + pub volume_name: Option, +} + +/// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpecDataSource { + /// 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 + pub kind: String, + /// Name is the name of resource being referenced + pub name: String, +} + +/// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpecDataSourceRef { + /// 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 + pub kind: String, + /// Name is the name of resource being referenced + pub name: String, + /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +/// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpecResources { + /// 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. 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>, +} + +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpecResourcesClaims { + /// 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, +} + +/// selector is a label query over volumes to consider for binding. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpecSelector { + /// 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 PerconaPGClusterInstancesTablespaceVolumesDataVolumeClaimSpecSelectorMatchExpressions { + /// 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>, +} + /// The pod this Toleration is attached to tolerates any taint that matches /// the triple using the matching operator . #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] diff --git a/kube-custom-resources-rs/src/postgresql_cnpg_io/v1/poolers.rs b/kube-custom-resources-rs/src/postgresql_cnpg_io/v1/poolers.rs index c912c64a8..1869d0187 100644 --- a/kube-custom-resources-rs/src/postgresql_cnpg_io/v1/poolers.rs +++ b/kube-custom-resources-rs/src/postgresql_cnpg_io/v1/poolers.rs @@ -593,6 +593,15 @@ pub struct PoolerServiceTemplateSpec { /// sessionAffinityConfig contains the configurations of session affinity. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinityConfig")] pub session_affinity_config: Option, + /// TrafficDistribution offers a way to express preferences for how traffic is + /// distributed to Service endpoints. Implementations can use this field as a + /// hint, but are not required to guarantee strict adherence. If the field is + /// not set, the implementation will apply its default routing strategy. If set + /// to "PreferClose", implementations should prioritize endpoints that are + /// topologically close (e.g., same zone). + /// This is an alpha field and requires enabling ServiceTrafficDistribution feature. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "trafficDistribution")] + pub traffic_distribution: Option, /// type determines how the Service is exposed. Defaults to ClusterIP. Valid /// options are ExternalName, ClusterIP, NodePort, and LoadBalancer. /// "ClusterIP" allocates a cluster-internal IP address for load-balancing @@ -766,7 +775,7 @@ pub struct PoolerTemplateSpec { #[serde(default, skip_serializing_if = "Option::is_none", rename = "ephemeralContainers")] pub ephemeral_containers: Option>, /// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts - /// file if specified. This is only valid for non-hostNetwork pods. + /// file if specified. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostAliases")] pub host_aliases: Option>, /// Use the host's ipc namespace. @@ -839,6 +848,7 @@ pub struct PoolerTemplateSpec { /// - spec.hostPID /// - spec.hostIPC /// - spec.hostUsers + /// - spec.securityContext.appArmorProfile /// - spec.securityContext.seLinuxOptions /// - spec.securityContext.seccompProfile /// - spec.securityContext.fsGroup @@ -848,6 +858,7 @@ pub struct PoolerTemplateSpec { /// - spec.securityContext.runAsUser /// - spec.securityContext.runAsGroup /// - spec.securityContext.supplementalGroups + /// - spec.containers[*].securityContext.appArmorProfile /// - spec.containers[*].securityContext.seLinuxOptions /// - spec.containers[*].securityContext.seccompProfile /// - spec.containers[*].securityContext.capabilities @@ -930,16 +941,13 @@ pub struct PoolerTemplateSpec { /// /// /// SchedulingGates can only be set at pod creation time, and be removed only afterwards. - /// - /// - /// This is a beta feature enabled by the PodSchedulingReadiness feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulingGates")] pub scheduling_gates: Option>, /// SecurityContext holds pod-level security attributes and common container settings. /// Optional: Defaults to empty. See type description for default values of each field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, - /// DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. + /// DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. /// Deprecated: Use serviceAccountName instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")] pub service_account: Option, @@ -1189,23 +1197,23 @@ pub struct PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnored pub label_selector: Option, /// MatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - /// Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both matchLabelKeys and labelSelector. + /// Also, matchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] pub match_label_keys: Option>, /// MismatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - /// Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + /// Also, mismatchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] pub mismatch_label_keys: Option>, @@ -1310,23 +1318,23 @@ pub struct PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredD pub label_selector: Option, /// MatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - /// Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both matchLabelKeys and labelSelector. + /// Also, matchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] pub match_label_keys: Option>, /// MismatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - /// Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + /// Also, mismatchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] pub mismatch_label_keys: Option>, @@ -1462,23 +1470,23 @@ pub struct PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgn pub label_selector: Option, /// MatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - /// Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both matchLabelKeys and labelSelector. + /// Also, matchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] pub match_label_keys: Option>, /// MismatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - /// Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + /// Also, mismatchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] pub mismatch_label_keys: Option>, @@ -1583,23 +1591,23 @@ pub struct PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgno pub label_selector: Option, /// MatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - /// Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both matchLabelKeys and labelSelector. + /// Also, matchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] pub match_label_keys: Option>, /// MismatchLabelKeys is a set of pod label keys to select which pods will /// be taken into consideration. The keys are used to lookup values from the - /// incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + /// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` /// to select the group of existing pods which pods will be taken into consideration /// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming /// pod labels will be ignored. The default value is empty. - /// The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - /// Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + /// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + /// Also, mismatchLabelKeys cannot be set when labelSelector isn't set. /// This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] pub mismatch_label_keys: Option>, @@ -1903,8 +1911,12 @@ pub struct PoolerTemplateSpecContainersEnvValueFromConfigMapKeyRef { /// The key to select. pub key: String, /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the ConfigMap or its key must be defined @@ -1944,8 +1956,12 @@ pub struct PoolerTemplateSpecContainersEnvValueFromSecretKeyRef { /// 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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the Secret or its key must be defined @@ -1971,8 +1987,12 @@ pub struct PoolerTemplateSpecContainersEnvFrom { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecContainersEnvFromConfigMapRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the ConfigMap must be defined @@ -1984,8 +2004,12 @@ pub struct PoolerTemplateSpecContainersEnvFromConfigMapRef { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecContainersEnvFromSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the Secret must be defined @@ -2536,6 +2560,11 @@ pub struct PoolerTemplateSpecContainersSecurityContext { /// 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, + /// appArmorProfile is the AppArmor options to use by this container. If set, this profile + /// overrides the pod's appArmorProfile. + /// Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: 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. @@ -2602,6 +2631,26 @@ pub struct PoolerTemplateSpecContainersSecurityContext { pub windows_options: Option, } +/// appArmorProfile is the AppArmor options to use by this container. If set, this profile +/// overrides the pod's appArmorProfile. +/// Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PoolerTemplateSpecContainersSecurityContextAppArmorProfile { + /// localhostProfile indicates a profile loaded on the node that should be used. + /// The profile must be preconfigured on the node to work. + /// Must match the loaded name of the profile. + /// Must be set if and only if type is "Localhost". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + /// type indicates which kind of AppArmor profile will be applied. + /// Valid options are: + /// Localhost - a profile pre-loaded on the node. + /// RuntimeDefault - the container runtime's default profile. + /// Unconfined - no AppArmor enforcement. + #[serde(rename = "type")] + pub r#type: String, +} + /// 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. @@ -2835,6 +2884,8 @@ pub struct PoolerTemplateSpecContainersVolumeMounts { /// to container and the other way around. /// When not set, MountPropagationNone is used. /// This field is beta in 1.10. + /// When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified + /// (which defaults to None). #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountPropagation")] pub mount_propagation: Option, /// This must match the Name of a Volume. @@ -2843,6 +2894,28 @@ pub struct PoolerTemplateSpecContainersVolumeMounts { /// Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, + /// RecursiveReadOnly specifies whether read-only mounts should be handled + /// recursively. + /// + /// + /// If ReadOnly is false, this field has no meaning and must be unspecified. + /// + /// + /// If ReadOnly is true, and this field is set to Disabled, the mount is not made + /// recursively read-only. If this field is set to IfPossible, the mount is made + /// recursively read-only, if it is supported by the container runtime. If this + /// field is set to Enabled, the mount is made recursively read-only if it is + /// supported by the container runtime, otherwise the pod will not be started and + /// an error will be generated to indicate the reason. + /// + /// + /// If this field is set to IfPossible or Enabled, MountPropagation must be set to + /// None (or be unspecified, which defaults to None). + /// + /// + /// If this field is not specified, it is treated as an equivalent of Disabled. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "recursiveReadOnly")] + pub recursive_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")] @@ -3083,8 +3156,12 @@ pub struct PoolerTemplateSpecEphemeralContainersEnvValueFromConfigMapKeyRef { /// The key to select. pub key: String, /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the ConfigMap or its key must be defined @@ -3124,8 +3201,12 @@ pub struct PoolerTemplateSpecEphemeralContainersEnvValueFromSecretKeyRef { /// 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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the Secret or its key must be defined @@ -3151,8 +3232,12 @@ pub struct PoolerTemplateSpecEphemeralContainersEnvFrom { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecEphemeralContainersEnvFromConfigMapRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the ConfigMap must be defined @@ -3164,8 +3249,12 @@ pub struct PoolerTemplateSpecEphemeralContainersEnvFromConfigMapRef { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecEphemeralContainersEnvFromSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the Secret must be defined @@ -3707,6 +3796,11 @@ pub struct PoolerTemplateSpecEphemeralContainersSecurityContext { /// 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, + /// appArmorProfile is the AppArmor options to use by this container. If set, this profile + /// overrides the pod's appArmorProfile. + /// Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: 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. @@ -3773,6 +3867,26 @@ pub struct PoolerTemplateSpecEphemeralContainersSecurityContext { pub windows_options: Option, } +/// appArmorProfile is the AppArmor options to use by this container. If set, this profile +/// overrides the pod's appArmorProfile. +/// Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PoolerTemplateSpecEphemeralContainersSecurityContextAppArmorProfile { + /// localhostProfile indicates a profile loaded on the node that should be used. + /// The profile must be preconfigured on the node to work. + /// Must match the loaded name of the profile. + /// Must be set if and only if type is "Localhost". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + /// type indicates which kind of AppArmor profile will be applied. + /// Valid options are: + /// Localhost - a profile pre-loaded on the node. + /// RuntimeDefault - the container runtime's default profile. + /// Unconfined - no AppArmor enforcement. + #[serde(rename = "type")] + pub r#type: String, +} + /// 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. @@ -4000,6 +4114,8 @@ pub struct PoolerTemplateSpecEphemeralContainersVolumeMounts { /// to container and the other way around. /// When not set, MountPropagationNone is used. /// This field is beta in 1.10. + /// When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified + /// (which defaults to None). #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountPropagation")] pub mount_propagation: Option, /// This must match the Name of a Volume. @@ -4008,6 +4124,28 @@ pub struct PoolerTemplateSpecEphemeralContainersVolumeMounts { /// Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, + /// RecursiveReadOnly specifies whether read-only mounts should be handled + /// recursively. + /// + /// + /// If ReadOnly is false, this field has no meaning and must be unspecified. + /// + /// + /// If ReadOnly is true, and this field is set to Disabled, the mount is not made + /// recursively read-only. If this field is set to IfPossible, the mount is made + /// recursively read-only, if it is supported by the container runtime. If this + /// field is set to Enabled, the mount is made recursively read-only if it is + /// supported by the container runtime, otherwise the pod will not be started and + /// an error will be generated to indicate the reason. + /// + /// + /// If this field is set to IfPossible or Enabled, MountPropagation must be set to + /// None (or be unspecified, which defaults to None). + /// + /// + /// If this field is not specified, it is treated as an equivalent of Disabled. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "recursiveReadOnly")] + pub recursive_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")] @@ -4028,8 +4166,7 @@ pub struct PoolerTemplateSpecHostAliases { #[serde(default, skip_serializing_if = "Option::is_none")] pub hostnames: Option>, /// IP address of the host file entry. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub ip: Option, + pub ip: String, } /// LocalObjectReference contains enough information to let you locate the @@ -4037,8 +4174,12 @@ pub struct PoolerTemplateSpecHostAliases { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecImagePullSecrets { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -4256,8 +4397,12 @@ pub struct PoolerTemplateSpecInitContainersEnvValueFromConfigMapKeyRef { /// The key to select. pub key: String, /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the ConfigMap or its key must be defined @@ -4297,8 +4442,12 @@ pub struct PoolerTemplateSpecInitContainersEnvValueFromSecretKeyRef { /// 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 + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the Secret or its key must be defined @@ -4324,8 +4473,12 @@ pub struct PoolerTemplateSpecInitContainersEnvFrom { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecInitContainersEnvFromConfigMapRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the ConfigMap must be defined @@ -4337,8 +4490,12 @@ pub struct PoolerTemplateSpecInitContainersEnvFromConfigMapRef { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecInitContainersEnvFromSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// Specify whether the Secret must be defined @@ -4889,6 +5046,11 @@ pub struct PoolerTemplateSpecInitContainersSecurityContext { /// 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, + /// appArmorProfile is the AppArmor options to use by this container. If set, this profile + /// overrides the pod's appArmorProfile. + /// Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: 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. @@ -4955,6 +5117,26 @@ pub struct PoolerTemplateSpecInitContainersSecurityContext { pub windows_options: Option, } +/// appArmorProfile is the AppArmor options to use by this container. If set, this profile +/// overrides the pod's appArmorProfile. +/// Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PoolerTemplateSpecInitContainersSecurityContextAppArmorProfile { + /// localhostProfile indicates a profile loaded on the node that should be used. + /// The profile must be preconfigured on the node to work. + /// Must match the loaded name of the profile. + /// Must be set if and only if type is "Localhost". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + /// type indicates which kind of AppArmor profile will be applied. + /// Valid options are: + /// Localhost - a profile pre-loaded on the node. + /// RuntimeDefault - the container runtime's default profile. + /// Unconfined - no AppArmor enforcement. + #[serde(rename = "type")] + pub r#type: String, +} + /// 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. @@ -5188,6 +5370,8 @@ pub struct PoolerTemplateSpecInitContainersVolumeMounts { /// to container and the other way around. /// When not set, MountPropagationNone is used. /// This field is beta in 1.10. + /// When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified + /// (which defaults to None). #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountPropagation")] pub mount_propagation: Option, /// This must match the Name of a Volume. @@ -5196,6 +5380,28 @@ pub struct PoolerTemplateSpecInitContainersVolumeMounts { /// Defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, + /// RecursiveReadOnly specifies whether read-only mounts should be handled + /// recursively. + /// + /// + /// If ReadOnly is false, this field has no meaning and must be unspecified. + /// + /// + /// If ReadOnly is true, and this field is set to Disabled, the mount is not made + /// recursively read-only. If this field is set to IfPossible, the mount is made + /// recursively read-only, if it is supported by the container runtime. If this + /// field is set to Enabled, the mount is made recursively read-only if it is + /// supported by the container runtime, otherwise the pod will not be started and + /// an error will be generated to indicate the reason. + /// + /// + /// If this field is set to IfPossible or Enabled, MountPropagation must be set to + /// None (or be unspecified, which defaults to None). + /// + /// + /// If this field is not specified, it is treated as an equivalent of Disabled. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "recursiveReadOnly")] + pub recursive_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")] @@ -5220,6 +5426,7 @@ pub struct PoolerTemplateSpecInitContainersVolumeMounts { /// - spec.hostPID /// - spec.hostIPC /// - spec.hostUsers +/// - spec.securityContext.appArmorProfile /// - spec.securityContext.seLinuxOptions /// - spec.securityContext.seccompProfile /// - spec.securityContext.fsGroup @@ -5229,6 +5436,7 @@ pub struct PoolerTemplateSpecInitContainersVolumeMounts { /// - spec.securityContext.runAsUser /// - spec.securityContext.runAsGroup /// - spec.securityContext.supplementalGroups +/// - spec.containers[*].securityContext.appArmorProfile /// - spec.containers[*].securityContext.seLinuxOptions /// - spec.containers[*].securityContext.seccompProfile /// - spec.containers[*].securityContext.capabilities @@ -5305,6 +5513,10 @@ pub struct PoolerTemplateSpecSchedulingGates { /// Optional: Defaults to empty. See type description for default values of each field. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecSecurityContext { + /// appArmorProfile is the AppArmor 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 = "appArmorProfile")] + pub app_armor_profile: Option, /// 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: @@ -5386,6 +5598,25 @@ pub struct PoolerTemplateSpecSecurityContext { pub windows_options: Option, } +/// appArmorProfile is the AppArmor 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, Default, PartialEq)] +pub struct PoolerTemplateSpecSecurityContextAppArmorProfile { + /// localhostProfile indicates a profile loaded on the node that should be used. + /// The profile must be preconfigured on the node to work. + /// Must match the loaded name of the profile. + /// Must be set if and only if type is "Localhost". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + /// type indicates which kind of AppArmor profile will be applied. + /// Valid options are: + /// Localhost - a profile pre-loaded on the node. + /// RuntimeDefault - the container runtime's default profile. + /// Unconfined - no AppArmor enforcement. + #[serde(rename = "type")] + pub r#type: String, +} + /// 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 @@ -5556,9 +5787,6 @@ pub struct PoolerTemplateSpecTopologySpreadConstraints { /// 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 @@ -5898,8 +6126,12 @@ pub struct PoolerTemplateSpecVolumesCephfs { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesCephfsSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -5934,8 +6166,12 @@ pub struct PoolerTemplateSpecVolumesCinder { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesCinderSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -5962,8 +6198,12 @@ pub struct PoolerTemplateSpecVolumesConfigMap { #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// optional specify whether the ConfigMap or its keys must be defined @@ -6027,8 +6267,12 @@ pub struct PoolerTemplateSpecVolumesCsi { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesCsiNodePublishSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -6054,7 +6298,7 @@ pub struct PoolerTemplateSpecVolumesDownwardApi { /// DownwardAPIVolumeFile represents information to create the file containing the pod field #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesDownwardApiItems { - /// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported. + /// Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] pub field_ref: Option, /// Optional: mode bits used to set permissions on this file, must be an octal value @@ -6073,7 +6317,7 @@ pub struct PoolerTemplateSpecVolumesDownwardApiItems { pub resource_field_ref: Option, } -/// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported. +/// Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesDownwardApiItemsFieldRef { /// Version of the schema the FieldPath is written in terms of, defaults to "v1". @@ -6290,7 +6534,7 @@ pub struct PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpec { /// If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be /// set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource /// exists. - /// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + /// More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ /// (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")] pub volume_attributes_class_name: Option, @@ -6474,8 +6718,12 @@ pub struct PoolerTemplateSpecVolumesFlexVolume { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesFlexVolumeSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -6631,8 +6879,12 @@ pub struct PoolerTemplateSpecVolumesIscsi { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesIscsiSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -6840,8 +7092,12 @@ pub struct PoolerTemplateSpecVolumesProjectedSourcesConfigMap { #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// optional specify whether the ConfigMap or its keys must be defined @@ -6880,7 +7136,7 @@ pub struct PoolerTemplateSpecVolumesProjectedSourcesDownwardApi { /// DownwardAPIVolumeFile represents information to create the file containing the pod field #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItems { - /// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported. + /// Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] pub field_ref: Option, /// Optional: mode bits used to set permissions on this file, must be an octal value @@ -6899,7 +7155,7 @@ pub struct PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItems { pub resource_field_ref: Option, } -/// Required: Selects a field of the pod: only annotations, labels, name and namespace are supported. +/// Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItemsFieldRef { /// Version of the schema the FieldPath is written in terms of, defaults to "v1". @@ -6937,8 +7193,12 @@ pub struct PoolerTemplateSpecVolumesProjectedSourcesSecret { #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// optional field specify whether the Secret or its key must be defined @@ -7067,8 +7327,12 @@ pub struct PoolerTemplateSpecVolumesRbd { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesRbdSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -7118,8 +7382,12 @@ pub struct PoolerTemplateSpecVolumesScaleIo { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesScaleIoSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } @@ -7210,8 +7478,12 @@ pub struct PoolerTemplateSpecVolumesStorageos { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PoolerTemplateSpecVolumesStorageosSecretRef { /// Name of the referent. - /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// This field is effectively required, but due to backwards compatibility is + /// allowed to be empty. Instances of this type with an empty value here are + /// almost certainly wrong. /// TODO: Add other useful fields. apiVersion, kind, uid? + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } diff --git a/kube-custom-resources-rs/src/pxc_percona_com/v1/perconaxtradbclusters.rs b/kube-custom-resources-rs/src/pxc_percona_com/v1/perconaxtradbclusters.rs index 4557ae8fe..929a6f733 100644 --- a/kube-custom-resources-rs/src/pxc_percona_com/v1/perconaxtradbclusters.rs +++ b/kube-custom-resources-rs/src/pxc_percona_com/v1/perconaxtradbclusters.rs @@ -567,6 +567,8 @@ pub struct PerconaXtraDBClusterBackupStoragesContainerOptionsEnvValueFromSecretK pub struct PerconaXtraDBClusterBackupStoragesContainerSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -589,6 +591,14 @@ pub struct PerconaXtraDBClusterBackupStoragesContainerSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterBackupStoragesContainerSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterBackupStoragesContainerSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -631,6 +641,8 @@ pub struct PerconaXtraDBClusterBackupStoragesContainerSecurityContextWindowsOpti #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterBackupStoragesPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] pub fs_group: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] @@ -653,6 +665,14 @@ pub struct PerconaXtraDBClusterBackupStoragesPodSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterBackupStoragesPodSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterBackupStoragesPodSecurityContextSeLinuxOptions { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -1277,6 +1297,8 @@ pub struct PerconaXtraDBClusterHaproxyAffinityAdvancedPodAntiAffinityRequiredDur pub struct PerconaXtraDBClusterHaproxyContainerSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -1299,6 +1321,14 @@ pub struct PerconaXtraDBClusterHaproxyContainerSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterHaproxyContainerSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterHaproxyContainerSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -1568,6 +1598,8 @@ pub struct PerconaXtraDBClusterHaproxyPodDisruptionBudget { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterHaproxyPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] pub fs_group: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] @@ -1590,6 +1622,14 @@ pub struct PerconaXtraDBClusterHaproxyPodSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterHaproxyPodSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterHaproxyPodSecurityContextSeLinuxOptions { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -2929,6 +2969,8 @@ pub struct PerconaXtraDBClusterHaproxySidecarsResourcesClaims { pub struct PerconaXtraDBClusterHaproxySidecarsSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -2951,6 +2993,14 @@ pub struct PerconaXtraDBClusterHaproxySidecarsSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterHaproxySidecarsSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterHaproxySidecarsSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3070,6 +3120,8 @@ pub struct PerconaXtraDBClusterHaproxySidecarsVolumeMounts { pub name: String, #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "recursiveReadOnly")] + pub recursive_read_only: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")] pub sub_path: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPathExpr")] @@ -3262,6 +3314,8 @@ pub struct PerconaXtraDBClusterLogcollector { pub struct PerconaXtraDBClusterLogcollectorContainerSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3284,6 +3338,14 @@ pub struct PerconaXtraDBClusterLogcollectorContainerSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterLogcollectorContainerSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterLogcollectorContainerSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3367,6 +3429,8 @@ pub struct PerconaXtraDBClusterPmm { pub struct PerconaXtraDBClusterPmmContainerSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3389,6 +3453,14 @@ pub struct PerconaXtraDBClusterPmmContainerSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterPmmContainerSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterPmmContainerSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3856,6 +3928,8 @@ pub struct PerconaXtraDBClusterProxysqlAffinityAdvancedPodAntiAffinityRequiredDu pub struct PerconaXtraDBClusterProxysqlContainerSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3878,6 +3952,14 @@ pub struct PerconaXtraDBClusterProxysqlContainerSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterProxysqlContainerSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterProxysqlContainerSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -4125,6 +4207,8 @@ pub struct PerconaXtraDBClusterProxysqlPodDisruptionBudget { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterProxysqlPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] pub fs_group: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] @@ -4147,6 +4231,14 @@ pub struct PerconaXtraDBClusterProxysqlPodSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterProxysqlPodSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterProxysqlPodSecurityContextSeLinuxOptions { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -5486,6 +5578,8 @@ pub struct PerconaXtraDBClusterProxysqlSidecarsResourcesClaims { pub struct PerconaXtraDBClusterProxysqlSidecarsSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -5508,6 +5602,14 @@ pub struct PerconaXtraDBClusterProxysqlSidecarsSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterProxysqlSidecarsSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterProxysqlSidecarsSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -5627,6 +5729,8 @@ pub struct PerconaXtraDBClusterProxysqlSidecarsVolumeMounts { pub name: String, #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "recursiveReadOnly")] + pub recursive_read_only: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")] pub sub_path: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPathExpr")] @@ -6188,6 +6292,8 @@ pub struct PerconaXtraDBClusterPxcAffinityAdvancedPodAntiAffinityRequiredDuringS pub struct PerconaXtraDBClusterPxcContainerSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -6210,6 +6316,14 @@ pub struct PerconaXtraDBClusterPxcContainerSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterPxcContainerSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterPxcContainerSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -6457,6 +6571,8 @@ pub struct PerconaXtraDBClusterPxcPodDisruptionBudget { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterPxcPodSecurityContext { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] pub fs_group: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] @@ -6479,6 +6595,14 @@ pub struct PerconaXtraDBClusterPxcPodSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterPxcPodSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterPxcPodSecurityContextSeLinuxOptions { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -7854,6 +7978,8 @@ pub struct PerconaXtraDBClusterPxcSidecarsResourcesClaims { pub struct PerconaXtraDBClusterPxcSidecarsSecurityContext { #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] pub allow_privilege_escalation: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "appArmorProfile")] + pub app_armor_profile: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub capabilities: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -7876,6 +8002,14 @@ pub struct PerconaXtraDBClusterPxcSidecarsSecurityContext { pub windows_options: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PerconaXtraDBClusterPxcSidecarsSecurityContextAppArmorProfile { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + #[serde(rename = "type")] + pub r#type: String, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PerconaXtraDBClusterPxcSidecarsSecurityContextCapabilities { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -7995,6 +8129,8 @@ pub struct PerconaXtraDBClusterPxcSidecarsVolumeMounts { pub name: String, #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] pub read_only: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "recursiveReadOnly")] + pub recursive_read_only: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")] pub sub_path: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPathExpr")] diff --git a/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/podgroups.rs b/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/podgroups.rs index 6ad62bcef..bbeb9bd4e 100644 --- a/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/podgroups.rs +++ b/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/podgroups.rs @@ -12,7 +12,8 @@ mod prelude { } use self::prelude::*; -/// Specification of the desired behavior of the pod group. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the pod group. +/// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "scheduling.volcano.sh", version = "v1beta1", kind = "PodGroup", plural = "podgroups")] #[kube(namespaced)] @@ -20,24 +21,37 @@ use self::prelude::*; #[kube(derive="Default")] #[kube(derive="PartialEq")] pub struct PodGroupSpec { - /// MinMember defines the minimal number of members/tasks to run the pod group; if there's not enough resources to start all tasks, the scheduler will not start anyone. + /// MinMember defines the minimal number of members/tasks to run the pod group; + /// if there's not enough resources to start all tasks, the scheduler + /// will not start anyone. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minMember")] pub min_member: Option, - /// MinResources defines the minimal resource of members/tasks to run the pod group; if there's not enough resources to start all tasks, the scheduler will not start anyone. + /// MinResources defines the minimal resource of members/tasks to run the pod group; + /// if there's not enough resources to start all tasks, the scheduler + /// will not start anyone. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minResources")] pub min_resources: Option>, - /// MinTaskMember defines the minimal number of pods to run each task in the pod group; if there's not enough resources to start each task, the scheduler will not start anyone. + /// MinTaskMember defines the minimal number of pods to run each task in the pod group; + /// if there's not enough resources to start each task, the scheduler + /// will not start anyone. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minTaskMember")] pub min_task_member: Option>, - /// If specified, indicates the PodGroup's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the PodGroup priority will be default or zero if there is no default. + /// If specified, indicates the PodGroup's priority. "system-node-critical" and + /// "system-cluster-critical" are two special keywords which indicate the + /// highest priorities with the former being the highest priority. Any other + /// name must be defined by creating a PriorityClass object with that name. + /// If not specified, the PodGroup priority will be default or zero if there is no + /// default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityClassName")] pub priority_class_name: Option, - /// Queue defines the queue to allocate resource for PodGroup; if queue does not exist, the PodGroup will not be scheduled. Defaults to `default` Queue with the lowest weight. + /// Queue defines the queue to allocate resource for PodGroup; if queue does not exist, + /// the PodGroup will not be scheduled. Defaults to `default` Queue with the lowest weight. #[serde(default, skip_serializing_if = "Option::is_none")] pub queue: Option, } -/// Status represents the current information about a pod group. This data may not be up to date. +/// Status represents the current information about a pod group. +/// This data may not be up to date. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PodGroupStatus { /// The conditions of PodGroup. diff --git a/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/queues.rs b/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/queues.rs index 0929fc7a4..485fc1229 100644 --- a/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/queues.rs +++ b/kube-custom-resources-rs/src/scheduling_volcano_sh/v1beta1/queues.rs @@ -11,7 +11,8 @@ mod prelude { } use self::prelude::*; -/// Specification of the desired behavior of the queue. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the queue. +/// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "scheduling.volcano.sh", version = "v1beta1", kind = "Queue", plural = "queues")] #[kube(status = "QueueStatus")] @@ -25,6 +26,9 @@ pub struct QueueSpec { /// ResourceList is a set of (resource name, quantity) pairs. #[serde(default, skip_serializing_if = "Option::is_none")] pub capability: Option>, + /// The amount of resources configured by the user. This part of resource can be shared with other queues and reclaimed back. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub deserved: Option>, /// extendCluster indicate the jobs in this Queue will be dispatched to these clusters. #[serde(default, skip_serializing_if = "Option::is_none", rename = "extendClusters")] pub extend_clusters: Option>, diff --git a/kube-custom-resources-rs/src/scylla_scylladb_com/v1/scyllaclusters.rs b/kube-custom-resources-rs/src/scylla_scylladb_com/v1/scyllaclusters.rs index dbecf4379..f7d62781e 100644 --- a/kube-custom-resources-rs/src/scylla_scylladb_com/v1/scyllaclusters.rs +++ b/kube-custom-resources-rs/src/scylla_scylladb_com/v1/scyllaclusters.rs @@ -171,7 +171,7 @@ pub struct ScyllaClusterBackups { /// location is a list of backup locations in the format [:]: ex. s3:my-bucket. The : part is optional and is only needed when different datacenters are being used to upload data to different locations. must be an alphanumeric string and may contain a dash and or a dot, but other characters are forbidden. The only supported storage at the moment are s3 and gcs. #[serde(default, skip_serializing_if = "Option::is_none")] pub location: Option>, - /// name is a unique name of a task. + /// name specifies the name of a task. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// numRetries indicates how many times a scheduled task will be retried before failing. @@ -2016,7 +2016,7 @@ pub struct ScyllaClusterRepairs { /// keyspace is a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair. #[serde(default, skip_serializing_if = "Option::is_none")] pub keyspace: Option>, - /// name is a unique name of a task. + /// name specifies the name of a task. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, /// numRetries indicates how many times a scheduled task will be retried before failing. @@ -2076,49 +2076,49 @@ pub struct ScyllaClusterStatus { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScyllaClusterStatusBackups { - /// cron specifies the task schedule as a cron expression. It supports an extended syntax including @monthly, @weekly, @daily, @midnight, @hourly, @every X[h|m|s]. + /// cron reflects the task schedule as a cron expression. #[serde(default, skip_serializing_if = "Option::is_none")] pub cron: Option, - /// dc is a list of datacenter glob patterns, e.g. 'dc1,!otherdc*' used to specify the DCs to include or exclude from backup. + /// dc reflects a list of datacenter glob patterns, e.g. 'dc1,!otherdc*' used to specify the DCs to include or exclude from backup. #[serde(default, skip_serializing_if = "Option::is_none")] pub dc: Option>, - /// error holds the backup task error, if any. + /// error holds the task error, if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, - /// id is the identification number of the backup task. + /// id reflects identification number of the repair task. #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, - /// interval represents a task schedule interval e.g. 3d2h10m, valid units are d, h, m, s. Deprecated: please use cron instead. + /// interval reflects a task schedule interval. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, - /// keyspace is a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair. + /// keyspace reflects a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair. #[serde(default, skip_serializing_if = "Option::is_none")] pub keyspace: Option>, - /// location is a list of backup locations in the format [:]: ex. s3:my-bucket. The : part is optional and is only needed when different datacenters are being used to upload data to different locations. must be an alphanumeric string and may contain a dash and or a dot, but other characters are forbidden. The only supported storage at the moment are s3 and gcs. + /// location reflects a list of backup locations in the format [:]: ex. s3:my-bucket. #[serde(default, skip_serializing_if = "Option::is_none")] pub location: Option>, - /// name is a unique name of a task. + /// name reflects the name of a task. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// numRetries indicates how many times a scheduled task will be retried before failing. + /// numRetries reflects how many times a scheduled task will be retried before failing. #[serde(default, skip_serializing_if = "Option::is_none", rename = "numRetries")] pub num_retries: Option, - /// rateLimit is a list of megabytes (MiB) per second rate limits expressed in the format [:]. The : part is optional and only needed when different datacenters need different upload limits. Set to 0 for no limit (default 100). + /// rateLimit reflects a list of megabytes (MiB) per second rate limits expressed in the format [:]. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rateLimit")] pub rate_limit: Option>, - /// retention is the number of backups which are to be stored. + /// retention reflects the number of backups which are to be stored. #[serde(default, skip_serializing_if = "Option::is_none")] pub retention: Option, - /// snapshotParallel is a list of snapshot parallelism limits in the format [:]. The : part is optional and allows for specifying different limits in selected datacenters. If The : part is not set, the limit is global (e.g. 'dc1:2,5') the runs are parallel in n nodes (2 in dc1) and n nodes in all the other datacenters. + /// snapshotParallel reflects a list of snapshot parallelism limits in the format [:]. #[serde(default, skip_serializing_if = "Option::is_none", rename = "snapshotParallel")] pub snapshot_parallel: Option>, - /// startDate specifies the task start date expressed in the RFC3339 format or now[+duration], e.g. now+3d2h10m, valid units are d, h, m, s. + /// startDate reflects the task start date expressed in the RFC3339 format #[serde(default, skip_serializing_if = "Option::is_none", rename = "startDate")] pub start_date: Option, - /// timezone specifies the timezone of cron field. + /// timezone reflects the timezone of cron field. #[serde(default, skip_serializing_if = "Option::is_none")] pub timezone: Option, - /// uploadParallel is a list of upload parallelism limits in the format [:]. The : part is optional and allows for specifying different limits in selected datacenters. If The : part is not set the limit is global (e.g. 'dc1:2,5') the runs are parallel in n nodes (2 in dc1) and n nodes in all the other datacenters. + /// uploadParallel reflects a list of upload parallelism limits in the format [:]. #[serde(default, skip_serializing_if = "Option::is_none", rename = "uploadParallel")] pub upload_parallel: Option>, } @@ -2165,49 +2165,49 @@ pub struct ScyllaClusterStatusRacksConditions { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ScyllaClusterStatusRepairs { - /// cron specifies the task schedule as a cron expression. It supports an extended syntax including @monthly, @weekly, @daily, @midnight, @hourly, @every X[h|m|s]. + /// cron reflects the task schedule as a cron expression. #[serde(default, skip_serializing_if = "Option::is_none")] pub cron: Option, - /// dc is a list of datacenter glob patterns, e.g. 'dc1', '!otherdc*' used to specify the DCs to include or exclude from backup. + /// dc reflects a list of datacenter glob patterns, e.g. 'dc1', '!otherdc*' used to specify the DCs to include or exclude from repair. #[serde(default, skip_serializing_if = "Option::is_none")] pub dc: Option>, - /// error holds the repair task error, if any. + /// error holds the task error, if any. #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, /// failFast indicates if a repair should be stopped on first error. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failFast")] pub fail_fast: Option, - /// host specifies a host to repair. If empty, all hosts are repaired. + /// host reflects a host to repair. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, - /// id is the identification number of the repair task. + /// id reflects identification number of the repair task. #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, - /// intensity indicates how many token ranges (per shard) to repair in a single Scylla repair job. By default this is 1. If you set it to 0 the number of token ranges is adjusted to the maximum supported by node (see max_repair_ranges_in_parallel in Scylla logs). Valid values are 0 and integers >= 1. Higher values will result in increased cluster load and slightly faster repairs. Changing the intensity impacts repair granularity if you need to resume it, the higher the value the more work on resume. For Scylla clusters that *do not support row-level repair*, intensity can be a decimal between (0,1). In that case it specifies percent of shards that can be repaired in parallel on a repair master node. For Scylla clusters that are row-level repair enabled, setting intensity below 1 has the same effect as setting intensity 1. + /// intensity indicates how many token ranges (per shard) to repair in a single Scylla repair job. By default this is 1. #[serde(default, skip_serializing_if = "Option::is_none")] pub intensity: Option, - /// interval represents a task schedule interval e.g. 3d2h10m, valid units are d, h, m, s. Deprecated: please use cron instead. + /// interval reflects a task schedule interval. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, - /// keyspace is a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair. + /// keyspace reflects a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair. #[serde(default, skip_serializing_if = "Option::is_none")] pub keyspace: Option>, - /// name is a unique name of a task. + /// name reflects the name of a task. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// numRetries indicates how many times a scheduled task will be retried before failing. + /// numRetries reflects how many times a scheduled task will be retried before failing. #[serde(default, skip_serializing_if = "Option::is_none", rename = "numRetries")] pub num_retries: Option, - /// parallel is the maximum number of Scylla repair jobs that can run at the same time (on different token ranges and replicas). Each node can take part in at most one repair at any given moment. By default the maximum possible parallelism is used. The effective parallelism depends on a keyspace replication factor (RF) and the number of nodes. The formula to calculate it is as follows: number of nodes / RF, ex. for 6 node cluster with RF=3 the maximum parallelism is 2. + /// parallel reflects the maximum number of Scylla repair jobs that can run at the same time (on different token ranges and replicas). #[serde(default, skip_serializing_if = "Option::is_none")] pub parallel: Option, - /// smallTableThreshold enable small table optimization for tables of size lower than given threshold. Supported units [B, MiB, GiB, TiB]. + /// smallTableThreshold reflects whether small table optimization for tables, of size lower than given threshold, are enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "smallTableThreshold")] pub small_table_threshold: Option, - /// startDate specifies the task start date expressed in the RFC3339 format or now[+duration], e.g. now+3d2h10m, valid units are d, h, m, s. + /// startDate reflects the task start date expressed in the RFC3339 format #[serde(default, skip_serializing_if = "Option::is_none", rename = "startDate")] pub start_date: Option, - /// timezone specifies the timezone of cron field. + /// timezone reflects the timezone of cron field. #[serde(default, skip_serializing_if = "Option::is_none")] pub timezone: Option, } diff --git a/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshotcontents.rs b/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshotcontents.rs index 9cd162f6f..1340c7702 100644 --- a/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshotcontents.rs +++ b/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshotcontents.rs @@ -9,71 +9,132 @@ mod prelude { } use self::prelude::*; -/// spec defines properties of a VolumeSnapshotContent created by the underlying storage system. Required. +/// spec defines properties of a VolumeSnapshotContent created by the underlying storage system. +/// Required. #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)] #[kube(group = "snapshot.storage.k8s.io", version = "v1", kind = "VolumeSnapshotContent", plural = "volumesnapshotcontents")] #[kube(status = "VolumeSnapshotContentStatus")] #[kube(schema = "disabled")] #[kube(derive="PartialEq")] pub struct VolumeSnapshotContentSpec { - /// deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. For dynamically provisioned snapshots, this field will automatically be filled in by the CSI snapshotter sidecar with the "DeletionPolicy" field defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users MUST specify this field when creating the VolumeSnapshotContent object. Required. + /// deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on + /// the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. + /// Supported values are "Retain" and "Delete". + /// "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. + /// "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. + /// For dynamically provisioned snapshots, this field will automatically be filled in by the + /// CSI snapshotter sidecar with the "DeletionPolicy" field defined in the corresponding + /// VolumeSnapshotClass. + /// For pre-existing snapshots, users MUST specify this field when creating the + /// VolumeSnapshotContent object. + /// Required. #[serde(rename = "deletionPolicy")] pub deletion_policy: VolumeSnapshotContentDeletionPolicy, - /// driver is the name of the CSI driver used to create the physical snapshot on the underlying storage system. This MUST be the same as the name returned by the CSI GetPluginName() call for that driver. Required. + /// driver is the name of the CSI driver used to create the physical snapshot on + /// the underlying storage system. + /// This MUST be the same as the name returned by the CSI GetPluginName() call for + /// that driver. + /// Required. pub driver: String, - /// source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required. + /// source specifies whether the snapshot is (or should be) dynamically provisioned + /// or already exists, and just requires a Kubernetes object representation. + /// This field is immutable after creation. + /// Required. pub source: VolumeSnapshotContentSource, - /// SourceVolumeMode is the mode of the volume whose snapshot is taken. Can be either “Filesystem” or “Block”. If not specified, it indicates the source volume's mode is unknown. This field is immutable. This field is an alpha field. + /// SourceVolumeMode is the mode of the volume whose snapshot is taken. + /// Can be either “Filesystem” or “Block”. + /// If not specified, it indicates the source volume's mode is unknown. + /// This field is immutable. + /// This field is an alpha field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceVolumeMode")] pub source_volume_mode: Option, - /// name of the VolumeSnapshotClass from which this snapshot was (or will be) created. Note that after provisioning, the VolumeSnapshotClass may be deleted or recreated with different set of values, and as such, should not be referenced post-snapshot creation. + /// name of the VolumeSnapshotClass from which this snapshot was (or will be) + /// created. + /// Note that after provisioning, the VolumeSnapshotClass may be deleted or + /// recreated with different set of values, and as such, should not be referenced + /// post-snapshot creation. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotClassName")] pub volume_snapshot_class_name: Option, - /// volumeSnapshotRef specifies the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to this VolumeSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent object, name and namespace of the VolumeSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required. + /// volumeSnapshotRef specifies the VolumeSnapshot object to which this + /// VolumeSnapshotContent object is bound. + /// VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to + /// this VolumeSnapshotContent's name for the bidirectional binding to be valid. + /// For a pre-existing VolumeSnapshotContent object, name and namespace of the + /// VolumeSnapshot object MUST be provided for binding to happen. + /// This field is immutable after creation. + /// Required. #[serde(rename = "volumeSnapshotRef")] pub volume_snapshot_ref: VolumeSnapshotContentVolumeSnapshotRef, } -/// spec defines properties of a VolumeSnapshotContent created by the underlying storage system. Required. +/// spec defines properties of a VolumeSnapshotContent created by the underlying storage system. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum VolumeSnapshotContentDeletionPolicy { Delete, Retain, } -/// source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required. +/// source specifies whether the snapshot is (or should be) dynamically provisioned +/// or already exists, and just requires a Kubernetes object representation. +/// This field is immutable after creation. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeSnapshotContentSource { - /// snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. + /// snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on + /// the underlying storage system for which a Kubernetes object representation + /// was (or should be) created. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "snapshotHandle")] pub snapshot_handle: Option, - /// volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot should be dynamically taken from. This field is immutable. + /// volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot + /// should be dynamically taken from. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeHandle")] pub volume_handle: Option, } -/// volumeSnapshotRef specifies the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to this VolumeSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent object, name and namespace of the VolumeSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required. +/// volumeSnapshotRef specifies the VolumeSnapshot object to which this +/// VolumeSnapshotContent object is bound. +/// VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to +/// this VolumeSnapshotContent's name for the bidirectional binding to be valid. +/// For a pre-existing VolumeSnapshotContent object, name and namespace of the +/// VolumeSnapshot object MUST be provided for binding to happen. +/// This field is immutable after creation. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeSnapshotContentVolumeSnapshotRef { /// 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, } @@ -81,30 +142,63 @@ pub struct VolumeSnapshotContentVolumeSnapshotRef { /// status represents the current information of a snapshot. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeSnapshotContentStatus { - /// creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the "creation_time" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "creation_time" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. If not specified, it indicates the creation time is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command `date +%s%N` returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. + /// creationTime is the timestamp when the point-in-time snapshot is taken + /// by the underlying storage system. + /// In dynamic snapshot creation case, this field will be filled in by the + /// CSI snapshotter sidecar with the "creation_time" value returned from CSI + /// "CreateSnapshot" gRPC call. + /// For a pre-existing snapshot, this field will be filled with the "creation_time" + /// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. + /// If not specified, it indicates the creation time is unknown. + /// The format of this field is a Unix nanoseconds time encoded as an int64. + /// On Unix, the command `date +%s%N` returns the current time in nanoseconds + /// since 1970-01-01 00:00:00 UTC. #[serde(default, skip_serializing_if = "Option::is_none", rename = "creationTime")] pub creation_time: Option, - /// error is the last observed error during snapshot creation, if any. Upon success after retry, this error field will be cleared. + /// error is the last observed error during snapshot creation, if any. + /// Upon success after retry, this error field will be cleared. #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, - /// readyToUse indicates if a snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the "ready_to_use" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "ready_to_use" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, this field will be set to "True". If not specified, it means the readiness of a snapshot is unknown. + /// readyToUse indicates if a snapshot is ready to be used to restore a volume. + /// In dynamic snapshot creation case, this field will be filled in by the + /// CSI snapshotter sidecar with the "ready_to_use" value returned from CSI + /// "CreateSnapshot" gRPC call. + /// For a pre-existing snapshot, this field will be filled with the "ready_to_use" + /// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, + /// otherwise, this field will be set to "True". + /// If not specified, it means the readiness of a snapshot is unknown. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readyToUse")] pub ready_to_use: Option, - /// restoreSize represents the complete size of the snapshot in bytes. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "size_bytes" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown. + /// restoreSize represents the complete size of the snapshot in bytes. + /// In dynamic snapshot creation case, this field will be filled in by the + /// CSI snapshotter sidecar with the "size_bytes" value returned from CSI + /// "CreateSnapshot" gRPC call. + /// For a pre-existing snapshot, this field will be filled with the "size_bytes" + /// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. + /// When restoring a volume from this snapshot, the size of the volume MUST NOT + /// be smaller than the restoreSize if it is specified, otherwise the restoration will fail. + /// If not specified, it indicates that the size is unknown. #[serde(default, skip_serializing_if = "Option::is_none", rename = "restoreSize")] pub restore_size: Option, - /// snapshotHandle is the CSI "snapshot_id" of a snapshot on the underlying storage system. If not specified, it indicates that dynamic snapshot creation has either failed or it is still in progress. + /// snapshotHandle is the CSI "snapshot_id" of a snapshot on the underlying storage system. + /// If not specified, it indicates that dynamic snapshot creation has either failed + /// or it is still in progress. #[serde(default, skip_serializing_if = "Option::is_none", rename = "snapshotHandle")] pub snapshot_handle: Option, - /// VolumeGroupSnapshotHandle is the CSI "group_snapshot_id" of a group snapshot on the underlying storage system. + /// VolumeGroupSnapshotHandle is the CSI "group_snapshot_id" of a group snapshot + /// on the underlying storage system. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeGroupSnapshotHandle")] pub volume_group_snapshot_handle: Option, } -/// error is the last observed error during snapshot creation, if any. Upon success after retry, this error field will be cleared. +/// error is the last observed error during snapshot creation, if any. +/// Upon success after retry, this error field will be cleared. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct VolumeSnapshotContentStatusError { - /// message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information. + /// message is a string detailing the encountered error during snapshot + /// creation if specified. + /// NOTE: message may be logged, and it should not contain sensitive + /// information. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, /// time is the timestamp when the error was encountered. diff --git a/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshots.rs b/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshots.rs index 13739521c..358f55b88 100644 --- a/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshots.rs +++ b/kube-custom-resources-rs/src/snapshot_storage_k8s_io/v1/volumesnapshots.rs @@ -9,7 +9,9 @@ mod prelude { } use self::prelude::*; -/// spec defines the desired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots Required. +/// spec defines the desired characteristics of a snapshot requested by a user. +/// More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots +/// Required. #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "snapshot.storage.k8s.io", version = "v1", kind = "VolumeSnapshot", plural = "volumesnapshots")] #[kube(namespaced)] @@ -18,51 +20,123 @@ use self::prelude::*; #[kube(derive="Default")] #[kube(derive="PartialEq")] pub struct VolumeSnapshotSpec { - /// source specifies where a snapshot will be created from. This field is immutable after creation. Required. + /// source specifies where a snapshot will be created from. + /// This field is immutable after creation. + /// Required. pub source: VolumeSnapshotSource, - /// VolumeSnapshotClassName is the name of the VolumeSnapshotClass requested by the VolumeSnapshot. VolumeSnapshotClassName may be left nil to indicate that the default SnapshotClass should be used. A given cluster may have multiple default Volume SnapshotClasses: one default per CSI Driver. If a VolumeSnapshot does not specify a SnapshotClass, VolumeSnapshotSource will be checked to figure out what the associated CSI Driver is, and the default VolumeSnapshotClass associated with that CSI Driver will be used. If more than one VolumeSnapshotClass exist for a given CSI Driver and more than one have been marked as default, CreateSnapshot will fail and generate an event. Empty string is not allowed for this field. + /// VolumeSnapshotClassName is the name of the VolumeSnapshotClass + /// requested by the VolumeSnapshot. + /// VolumeSnapshotClassName may be left nil to indicate that the default + /// SnapshotClass should be used. + /// A given cluster may have multiple default Volume SnapshotClasses: one + /// default per CSI Driver. If a VolumeSnapshot does not specify a SnapshotClass, + /// VolumeSnapshotSource will be checked to figure out what the associated + /// CSI Driver is, and the default VolumeSnapshotClass associated with that + /// CSI Driver will be used. If more than one VolumeSnapshotClass exist for + /// a given CSI Driver and more than one have been marked as default, + /// CreateSnapshot will fail and generate an event. + /// Empty string is not allowed for this field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotClassName")] pub volume_snapshot_class_name: Option, } -/// source specifies where a snapshot will be created from. This field is immutable after creation. Required. +/// source specifies where a snapshot will be created from. +/// This field is immutable after creation. +/// Required. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeSnapshotSource { - /// persistentVolumeClaimName specifies the name of the PersistentVolumeClaim object representing the volume from which a snapshot should be created. This PVC is assumed to be in the same namespace as the VolumeSnapshot object. This field should be set if the snapshot does not exists, and needs to be created. This field is immutable. + /// persistentVolumeClaimName specifies the name of the PersistentVolumeClaim + /// object representing the volume from which a snapshot should be created. + /// This PVC is assumed to be in the same namespace as the VolumeSnapshot + /// object. + /// This field should be set if the snapshot does not exists, and needs to be + /// created. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaimName")] pub persistent_volume_claim_name: Option, - /// volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent object representing an existing volume snapshot. This field should be set if the snapshot already exists and only needs a representation in Kubernetes. This field is immutable. + /// volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent + /// object representing an existing volume snapshot. + /// This field should be set if the snapshot already exists and only needs a representation in Kubernetes. + /// This field is immutable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshotContentName")] pub volume_snapshot_content_name: Option, } -/// status represents the current information of a snapshot. Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object. +/// status represents the current information of a snapshot. +/// Consumers must verify binding between VolumeSnapshot and +/// VolumeSnapshotContent objects is successful (by validating that both +/// VolumeSnapshot and VolumeSnapshotContent point at each other) before +/// using this object. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeSnapshotStatus { - /// boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent object to which this VolumeSnapshot object intends to bind to. If not specified, it indicates that the VolumeSnapshot object has not been successfully bound to a VolumeSnapshotContent object yet. NOTE: To avoid possible security issues, consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object. + /// boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent + /// object to which this VolumeSnapshot object intends to bind to. + /// If not specified, it indicates that the VolumeSnapshot object has not been + /// successfully bound to a VolumeSnapshotContent object yet. + /// NOTE: To avoid possible security issues, consumers must verify binding between + /// VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that + /// both VolumeSnapshot and VolumeSnapshotContent point at each other) before using + /// this object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "boundVolumeSnapshotContentName")] pub bound_volume_snapshot_content_name: Option, - /// creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "creation_time" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "creation_time" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. If not specified, it may indicate that the creation time of the snapshot is unknown. + /// creationTime is the timestamp when the point-in-time snapshot is taken + /// by the underlying storage system. + /// In dynamic snapshot creation case, this field will be filled in by the + /// snapshot controller with the "creation_time" value returned from CSI + /// "CreateSnapshot" gRPC call. + /// For a pre-existing snapshot, this field will be filled with the "creation_time" + /// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. + /// If not specified, it may indicate that the creation time of the snapshot is unknown. #[serde(default, skip_serializing_if = "Option::is_none", rename = "creationTime")] pub creation_time: Option, - /// error is the last observed error during snapshot creation, if any. This field could be helpful to upper level controllers(i.e., application controller) to decide whether they should continue on waiting for the snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the snapshot creation. Upon success, this error field will be cleared. + /// error is the last observed error during snapshot creation, if any. + /// This field could be helpful to upper level controllers(i.e., application controller) + /// to decide whether they should continue on waiting for the snapshot to be created + /// based on the type of error reported. + /// The snapshot controller will keep retrying when an error occurs during the + /// snapshot creation. Upon success, this error field will be cleared. #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, - /// readyToUse indicates if the snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "ready_to_use" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "ready_to_use" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, this field will be set to "True". If not specified, it means the readiness of a snapshot is unknown. + /// readyToUse indicates if the snapshot is ready to be used to restore a volume. + /// In dynamic snapshot creation case, this field will be filled in by the + /// snapshot controller with the "ready_to_use" value returned from CSI + /// "CreateSnapshot" gRPC call. + /// For a pre-existing snapshot, this field will be filled with the "ready_to_use" + /// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, + /// otherwise, this field will be set to "True". + /// If not specified, it means the readiness of a snapshot is unknown. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readyToUse")] pub ready_to_use: Option, - /// restoreSize represents the minimum size of volume required to create a volume from this snapshot. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "size_bytes" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown. + /// restoreSize represents the minimum size of volume required to create a volume + /// from this snapshot. + /// In dynamic snapshot creation case, this field will be filled in by the + /// snapshot controller with the "size_bytes" value returned from CSI + /// "CreateSnapshot" gRPC call. + /// For a pre-existing snapshot, this field will be filled with the "size_bytes" + /// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. + /// When restoring a volume from this snapshot, the size of the volume MUST NOT + /// be smaller than the restoreSize if it is specified, otherwise the restoration will fail. + /// If not specified, it indicates that the size is unknown. #[serde(default, skip_serializing_if = "Option::is_none", rename = "restoreSize")] pub restore_size: Option, - /// VolumeGroupSnapshotName is the name of the VolumeGroupSnapshot of which this VolumeSnapshot is a part of. + /// VolumeGroupSnapshotName is the name of the VolumeGroupSnapshot of which this + /// VolumeSnapshot is a part of. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeGroupSnapshotName")] pub volume_group_snapshot_name: Option, } -/// error is the last observed error during snapshot creation, if any. This field could be helpful to upper level controllers(i.e., application controller) to decide whether they should continue on waiting for the snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the snapshot creation. Upon success, this error field will be cleared. +/// error is the last observed error during snapshot creation, if any. +/// This field could be helpful to upper level controllers(i.e., application controller) +/// to decide whether they should continue on waiting for the snapshot to be created +/// based on the type of error reported. +/// The snapshot controller will keep retrying when an error occurs during the +/// snapshot creation. Upon success, this error field will be cleared. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VolumeSnapshotStatusError { - /// message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information. + /// message is a string detailing the encountered error during snapshot + /// creation if specified. + /// NOTE: message may be logged, and it should not contain sensitive + /// information. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, /// time is the timestamp when the error was encountered. diff --git a/kube-custom-resources-rs/src/sts_min_io/mod.rs b/kube-custom-resources-rs/src/sts_min_io/mod.rs index 32a5a9d4f..87218411e 100644 --- a/kube-custom-resources-rs/src/sts_min_io/mod.rs +++ b/kube-custom-resources-rs/src/sts_min_io/mod.rs @@ -1 +1,2 @@ pub mod v1alpha1; +pub mod v1beta1; diff --git a/kube-custom-resources-rs/src/sts_min_io/v1beta1/mod.rs b/kube-custom-resources-rs/src/sts_min_io/v1beta1/mod.rs new file mode 100644 index 000000000..9c5506e10 --- /dev/null +++ b/kube-custom-resources-rs/src/sts_min_io/v1beta1/mod.rs @@ -0,0 +1 @@ +pub mod policybindings; diff --git a/kube-custom-resources-rs/src/sts_min_io/v1beta1/policybindings.rs b/kube-custom-resources-rs/src/sts_min_io/v1beta1/policybindings.rs new file mode 100644 index 000000000..dcd5b71f7 --- /dev/null +++ b/kube-custom-resources-rs/src/sts_min_io/v1beta1/policybindings.rs @@ -0,0 +1,42 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/minio/operator/sts.min.io/v1beta1/policybindings.yaml --derive=Default --derive=PartialEq +// kopium version: 0.19.0 + +#[allow(unused_imports)] +mod prelude { + pub use kube::CustomResource; + pub use serde::{Serialize, Deserialize}; +} +use self::prelude::*; + +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "sts.min.io", version = "v1beta1", kind = "PolicyBinding", plural = "policybindings")] +#[kube(namespaced)] +#[kube(status = "PolicyBindingStatus")] +#[kube(schema = "disabled")] +#[kube(derive="Default")] +#[kube(derive="PartialEq")] +pub struct PolicyBindingSpec { + pub application: PolicyBindingApplication, + pub policies: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PolicyBindingApplication { + pub namespace: String, + pub serviceaccount: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PolicyBindingStatus { + #[serde(rename = "currentState")] + pub current_state: String, + pub usage: PolicyBindingStatusUsage, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PolicyBindingStatusUsage { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub authotizations: Option, +} + diff --git a/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempomonolithics.rs b/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempomonolithics.rs index 6e8346c63..b5aa1fef1 100644 --- a/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempomonolithics.rs +++ b/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempomonolithics.rs @@ -572,6 +572,9 @@ pub struct TempoMonolithicIngestionOtlpHttpTls { /// JaegerUI defines the Jaeger UI configuration. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TempoMonolithicJaegerui { + /// Authentication defines the options for the oauth proxy used to protect jaeger UI + #[serde(default, skip_serializing_if = "Option::is_none")] + pub authentication: Option, /// Enabled defines if the Jaeger UI component should be created. pub enabled: bool, /// Ingress defines the Ingress configuration for the Jaeger UI. @@ -585,6 +588,43 @@ pub struct TempoMonolithicJaegerui { pub route: Option, } +/// Authentication defines the options for the oauth proxy used to protect jaeger UI +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct TempoMonolithicJaegeruiAuthentication { + /// Defines if the authentication will be enabled for jaeger UI. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + /// Resources defines the compute resource requirements of the OAuth Proxy container. The OAuth Proxy performs authentication and authorization of incoming requests to Jaeger UI when multi-tenancy is disabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + /// SAR defines the SAR to be used in the oauth-proxy default is "{"namespace": "", "resource": "pods", "verb": "get"} + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sar: Option, +} + +/// Resources defines the compute resource requirements of the OAuth Proxy container. The OAuth Proxy performs authentication and authorization of incoming requests to Jaeger UI when multi-tenancy is disabled. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct TempoMonolithicJaegeruiAuthenticationResources { + /// 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. 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>, +} + +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct TempoMonolithicJaegeruiAuthenticationResourcesClaims { + /// 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, +} + /// Ingress defines the Ingress configuration for the Jaeger UI. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TempoMonolithicJaegeruiIngress { diff --git a/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempostacks.rs b/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempostacks.rs index 1265ca8ff..26caff7cb 100644 --- a/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempostacks.rs +++ b/kube-custom-resources-rs/src/tempo_grafana_com/v1alpha1/tempostacks.rs @@ -898,7 +898,7 @@ pub struct TempoStackTemplateQueryFrontendComponentTolerations { /// JaegerQuery defines options specific to the Jaeger Query component. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TempoStackTemplateQueryFrontendJaegerQuery { - /// Oauth defines the options for the oauth proxy used to protect jaeger UI + /// Authentication defines the options for the oauth proxy used to protect jaeger UI #[serde(default, skip_serializing_if = "Option::is_none")] pub authentication: Option, /// Enabled defines if the Jaeger Query component should be created. @@ -918,17 +918,43 @@ pub struct TempoStackTemplateQueryFrontendJaegerQuery { pub services_query_duration: Option, } -/// Oauth defines the options for the oauth proxy used to protect jaeger UI +/// Authentication defines the options for the oauth proxy used to protect jaeger UI #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TempoStackTemplateQueryFrontendJaegerQueryAuthentication { /// Defines if the authentication will be enabled for jaeger UI. #[serde(default, skip_serializing_if = "Option::is_none")] pub enabled: Option, + /// Resources defines the compute resource requirements of the OAuth Proxy container. The OAuth Proxy performs authentication and authorization of incoming requests to Jaeger UI when multi-tenancy is disabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, /// SAR defines the SAR to be used in the oauth-proxy default is "{"namespace": "", "resource": "pods", "verb": "get"} #[serde(default, skip_serializing_if = "Option::is_none")] pub sar: Option, } +/// Resources defines the compute resource requirements of the OAuth Proxy container. The OAuth Proxy performs authentication and authorization of incoming requests to Jaeger UI when multi-tenancy is disabled. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct TempoStackTemplateQueryFrontendJaegerQueryAuthenticationResources { + /// 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. 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>, +} + +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct TempoStackTemplateQueryFrontendJaegerQueryAuthenticationResourcesClaims { + /// 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, +} + /// Ingress defines the options for the Jaeger Query ingress. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TempoStackTemplateQueryFrontendJaegerQueryIngress { diff --git a/kube-custom-resources-rs/src/tests_testkube_io/v1/testtriggers.rs b/kube-custom-resources-rs/src/tests_testkube_io/v1/testtriggers.rs index 30b70282c..2d3b4fea7 100644 --- a/kube-custom-resources-rs/src/tests_testkube_io/v1/testtriggers.rs +++ b/kube-custom-resources-rs/src/tests_testkube_io/v1/testtriggers.rs @@ -118,6 +118,42 @@ pub enum TestTriggerEvent { DeploymentEnvUpdate, #[serde(rename = "deployment-containers-modified")] DeploymentContainersModified, + #[serde(rename = "event-start-test")] + EventStartTest, + #[serde(rename = "event-end-test-success")] + EventEndTestSuccess, + #[serde(rename = "event-end-test-failed")] + EventEndTestFailed, + #[serde(rename = "event-end-test-aborted")] + EventEndTestAborted, + #[serde(rename = "event-end-test-timeout")] + EventEndTestTimeout, + #[serde(rename = "event-start-testsuite")] + EventStartTestsuite, + #[serde(rename = "event-end-testsuite-success")] + EventEndTestsuiteSuccess, + #[serde(rename = "event-end-testsuite-failed")] + EventEndTestsuiteFailed, + #[serde(rename = "event-end-testsuite-aborted")] + EventEndTestsuiteAborted, + #[serde(rename = "event-end-testsuite-timeout")] + EventEndTestsuiteTimeout, + #[serde(rename = "event-queue-testworkflow")] + EventQueueTestworkflow, + #[serde(rename = "event-start-testworkflow")] + EventStartTestworkflow, + #[serde(rename = "event-end-testworkflow-success")] + EventEndTestworkflowSuccess, + #[serde(rename = "event-end-testworkflow-failed")] + EventEndTestworkflowFailed, + #[serde(rename = "event-end-testworkflow-aborted")] + EventEndTestworkflowAborted, + #[serde(rename = "event-created")] + EventCreated, + #[serde(rename = "event-updated")] + EventUpdated, + #[serde(rename = "event-deleted")] + EventDeleted, } /// TestTriggerSpec defines the desired state of TestTrigger diff --git a/kube-custom-resources-rs/src/workload_codeflare_dev/mod.rs b/kube-custom-resources-rs/src/workload_codeflare_dev/mod.rs index 9f64fc82d..aae3815eb 100644 --- a/kube-custom-resources-rs/src/workload_codeflare_dev/mod.rs +++ b/kube-custom-resources-rs/src/workload_codeflare_dev/mod.rs @@ -1 +1,2 @@ pub mod v1beta1; +pub mod v1beta2; diff --git a/kube-custom-resources-rs/src/workload_codeflare_dev/v1beta2/appwrappers.rs b/kube-custom-resources-rs/src/workload_codeflare_dev/v1beta2/appwrappers.rs new file mode 100644 index 000000000..1a355c5d2 --- /dev/null +++ b/kube-custom-resources-rs/src/workload_codeflare_dev/v1beta2/appwrappers.rs @@ -0,0 +1,127 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/project-codeflare/codeflare-operator/workload.codeflare.dev/v1beta2/appwrappers.yaml --derive=Default --derive=PartialEq +// kopium version: 0.19.0 + +#[allow(unused_imports)] +mod prelude { + pub use kube::CustomResource; + pub use serde::{Serialize, Deserialize}; + pub use std::collections::BTreeMap; + pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; +} +use self::prelude::*; + +/// AppWrapperSpec defines the desired state of the AppWrapper +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "workload.codeflare.dev", version = "v1beta2", kind = "AppWrapper", plural = "appwrappers")] +#[kube(namespaced)] +#[kube(status = "AppWrapperStatus")] +#[kube(schema = "disabled")] +#[kube(derive="Default")] +#[kube(derive="PartialEq")] +pub struct AppWrapperSpec { + /// Components lists the components contained in the AppWrapper + pub components: Vec, + /// Suspend suspends the AppWrapper when set to true + #[serde(default, skip_serializing_if = "Option::is_none")] + pub suspend: Option, +} + +/// AppWrapperComponent describes a single wrapped Kubernetes resource +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct AppWrapperComponents { + /// Annotations is an unstructured key value map that may be used to store and retrieve + /// arbitrary metadata about the Component to customize its treatment by the AppWrapper controller. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + /// PodSetInfos assigned to the Component's PodSets by Kueue + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSetInfos")] + pub pod_set_infos: Option>, + /// PodSets contained in the Component + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSets")] + pub pod_sets: Option>, + /// Template defines the Kubernetes resource for the Component + pub template: BTreeMap, +} + +/// AppWrapperPodSetInfo contains the data that Kueue wants to inject into an admitted PodSpecTemplate +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct AppWrapperComponentsPodSetInfos { + /// Annotations to be added to the PodSpecTemplate + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + /// Labels to be added to the PodSepcTemplate + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + /// NodeSelectors to be added to the PodSpecTemplate + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] + pub node_selector: Option>, + /// Tolerations to be added to the PodSpecTemplate + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tolerations: Option>, +} + +/// The pod this Toleration is attached to tolerates any taint that matches +/// the triple using the matching operator . +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct AppWrapperComponentsPodSetInfosTolerations { + /// Effect indicates the taint effect to match. Empty means match all taint effects. + /// When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub effect: Option, + /// Key is the taint key that the toleration applies to. Empty means match all taint keys. + /// If the key is empty, operator must be Exists; this combination means to match all values and all keys. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + /// Operator represents a key's relationship to the value. + /// Valid operators are Exists and Equal. Defaults to Equal. + /// Exists is equivalent to wildcard for value, so that a pod can + /// tolerate all taints of a particular category. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operator: Option, + /// TolerationSeconds represents the period of time the toleration (which must be + /// of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, + /// it is not set, which means tolerate the taint forever (do not evict). Zero and + /// negative values will be treated as 0 (evict immediately) by the system. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")] + pub toleration_seconds: Option, + /// Value is the taint value the toleration matches to. + /// If the operator is Exists, the value should be empty, otherwise just a regular string. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// AppWrapperPodSet describes an homogeneous set of pods +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct AppWrapperComponentsPodSets { + /// Path is the path Component.Template to the PodTemplateSpec for this PodSet + pub path: String, + /// Replicas is the number of pods in this PodSet + #[serde(default, skip_serializing_if = "Option::is_none")] + pub replicas: Option, +} + +/// AppWrapperStatus defines the observed state of the appwrapper +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct AppWrapperStatus { + /// Conditions hold the latest available observations of the AppWrapper current state. + /// + /// + /// The type of the condition could be: + /// + /// + /// - QuotaReserved: The AppWrapper was admitted by Kueue and has quota allocated to it + /// - ResourcesDeployed: The contained resources are deployed (or being deployed) on the cluster + /// - PodsReady: All pods of the contained resources are in the Ready or Succeeded state + /// - Unhealthy: One or more of the contained resources is unhealthy + /// - DeletingResources: The contained resources are in the process of being deleted from the cluster + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// Phase of the AppWrapper object + #[serde(default, skip_serializing_if = "Option::is_none")] + pub phase: Option, + /// Retries counts the number of times the AppWrapper has entered the Resetting Phase + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resettingCount")] + pub resetting_count: Option, +} + diff --git a/kube-custom-resources-rs/src/workload_codeflare_dev/v1beta2/mod.rs b/kube-custom-resources-rs/src/workload_codeflare_dev/v1beta2/mod.rs new file mode 100644 index 000000000..10768318b --- /dev/null +++ b/kube-custom-resources-rs/src/workload_codeflare_dev/v1beta2/mod.rs @@ -0,0 +1 @@ +pub mod appwrappers; diff --git a/kube-custom-resources-rs/src/workloads_kubeblocks_io/v1alpha1/instancesets.rs b/kube-custom-resources-rs/src/workloads_kubeblocks_io/v1alpha1/instancesets.rs index 01e0d8197..a0bc47be2 100644 --- a/kube-custom-resources-rs/src/workloads_kubeblocks_io/v1alpha1/instancesets.rs +++ b/kube-custom-resources-rs/src/workloads_kubeblocks_io/v1alpha1/instancesets.rs @@ -20,10 +20,6 @@ use self::prelude::*; #[kube(schema = "disabled")] #[kube(derive="PartialEq")] pub struct InstanceSetSpec { - /// Defines Alternative Services selector pattern specifier. - /// Note: This field will be removed in future version. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "alternativeServices")] - pub alternative_services: Option>, /// Credential used to connect to DB engine #[serde(default, skip_serializing_if = "Option::is_none")] pub credential: Option, @@ -72,10 +68,6 @@ pub struct InstanceSetSpec { /// Note: This field will be removed in future version. #[serde(default, skip_serializing_if = "Option::is_none")] pub service: Option, - /// Refers to the name of the service that governs this StatefulSet. This service must exist before the StatefulSet and is responsible for the network identity of the set. Pods get DNS/hostnames that follow a specific pattern. - /// Note: This field will be removed in future version. - #[serde(rename = "serviceName")] - pub service_name: String, /// PodTemplateSpec describes the data a pod should have when created from a template pub template: InstanceSetTemplate, /// Indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the InstanceSet when a revision is made to Template. UpdateStrategy.Type will be set to appsv1.OnDeleteStatefulSetStrategyType if MemberUpdateStrategy is not nil @@ -87,190 +79,6 @@ pub struct InstanceSetSpec { pub volume_claim_templates: Option>, } -/// Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServices { - /// 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 - #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] - pub api_version: Option, - /// 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 - #[serde(default, skip_serializing_if = "Option::is_none")] - pub kind: Option, - /// 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, - /// Spec defines the behavior of a service. 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, - /// Most recently observed status of the service. Populated by the system. Read-only. 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 status: Option, -} - -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesMetadata { - #[serde(default, skip_serializing_if = "Option::is_none")] - pub annotations: Option>, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub finalizers: Option>, - #[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")] - pub namespace: Option, -} - -/// Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesSpec { - /// allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "allocateLoadBalancerNodePorts")] - pub allocate_load_balancer_node_ports: Option, - /// clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are "None", empty string (""), or a valid IP address. Setting this to "None" makes a "headless service" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies - #[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIP")] - pub cluster_ip: Option, - /// ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are "None", empty string (""), or a valid IP address. Setting this to "None" makes a "headless service" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. - /// This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies - #[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIPs")] - pub cluster_i_ps: Option>, - /// externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalIPs")] - pub external_i_ps: Option>, - /// externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName". - #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalName")] - pub external_name: Option, - /// externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, "Cluster", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get "Cluster" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] - pub external_traffic_policy: Option, - /// healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheckNodePort")] - pub health_check_node_port: Option, - /// InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to "Local", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, "Cluster", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")] - pub internal_traffic_policy: Option, - /// IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName. - /// This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipFamilies")] - pub ip_families: Option>, - /// IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipFamilyPolicy")] - pub ip_family_policy: Option, - /// loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerClass")] - pub load_balancer_class: Option, - /// Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] - pub load_balancer_ip: Option, - /// If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/ - #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] - pub load_balancer_source_ranges: Option>, - /// The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies - #[serde(default, skip_serializing_if = "Option::is_none")] - pub ports: Option>, - /// publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered "ready" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "publishNotReadyAddresses")] - pub publish_not_ready_addresses: Option, - /// Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/ - #[serde(default, skip_serializing_if = "Option::is_none")] - pub selector: Option>, - /// Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies - #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinity")] - pub session_affinity: Option, - /// sessionAffinityConfig contains the configurations of session affinity. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinityConfig")] - pub session_affinity_config: Option, - /// type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types - #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] - pub r#type: Option, -} - -/// ServicePort contains information on service's port. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesSpecPorts { - /// The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: - /// * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). - /// * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540 * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 - /// * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "appProtocol")] - pub app_protocol: Option, - /// The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub name: Option, - /// The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePort")] - pub node_port: Option, - /// The port that will be exposed by this service. - pub port: i32, - /// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub protocol: Option, - /// Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service - #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetPort")] - pub target_port: Option, -} - -/// sessionAffinityConfig contains the configurations of session affinity. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesSpecSessionAffinityConfig { - /// clientIP contains the configurations of Client IP based session affinity. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientIP")] - pub client_ip: Option, -} - -/// clientIP contains the configurations of Client IP based session affinity. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesSpecSessionAffinityConfigClientIp { - /// timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP". Default value is 10800(for 3 hours). - #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] - pub timeout_seconds: Option, -} - -/// Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesStatus { - /// Current service state - #[serde(default, skip_serializing_if = "Option::is_none")] - pub conditions: Option>, - /// 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, -} - -/// LoadBalancer contains the current status of the load-balancer, if one is present. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesStatusLoadBalancer { - /// 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. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct InstanceSetAlternativeServicesStatusLoadBalancerIngress { - /// 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) - #[serde(default, skip_serializing_if = "Option::is_none")] - pub ip: Option, - /// 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 InstanceSetAlternativeServicesStatusLoadBalancerIngressPorts { - /// 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" - pub protocol: String, -} - /// Credential used to connect to DB engine #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct InstanceSetCredential {