diff --git a/Makefile b/Makefile index b112a4bb3..059616eda 100644 --- a/Makefile +++ b/Makefile @@ -212,7 +212,7 @@ GINKGO ?= $(LOCALBIN)/ginkgo ## Tool Versions KUSTOMIZE_VERSION ?= v3.8.7 -CONTROLLER_TOOLS_VERSION ?= v0.11.1 +CONTROLLER_TOOLS_VERSION ?= v0.14.0 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" .PHONY: kustomize diff --git a/api/bases/nova.openstack.org_nova.yaml b/api/bases/nova.openstack.org_nova.yaml index 25ef59931..6cffd7e18 100644 --- a/api/bases/nova.openstack.org_nova.yaml +++ b/api/bases/nova.openstack.org_nova.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: nova.nova.openstack.org spec: group: nova.openstack.org @@ -21,14 +20,19 @@ spec: description: Nova is the Schema for the nova API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -45,14 +49,16 @@ spec: type: string apiDatabaseInstance: default: openstack - description: APIDatabaseInstance is the name of the MariaDB CR to - select the DB Service instance used for the Nova API DB. + description: |- + APIDatabaseInstance is the name of the MariaDB CR to select the DB + Service instance used for the Nova API DB. type: string apiMessageBusInstance: default: rabbitmq - description: APIMessageBusInstance is the name of the RabbitMqCluster - CR to select the Message Bus Service instance used by the Nova top - level services to communicate. + description: |- + APIMessageBusInstance is the name of the RabbitMqCluster CR to select + the Message Bus Service instance used by the Nova top level services to + communicate. type: string apiServiceTemplate: default: @@ -60,11 +66,10 @@ spec: description: APIServiceTemplate - define the nova-api service properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -81,9 +86,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated @@ -91,135 +96,114 @@ spec: properties: service: additionalProperties: - description: RoutedOverrideSpec - a routed service override - configuration for the Service created to serve traffic - to the cluster. Allows for the manifest of the created - Service to be overwritten with custom configuration. + description: |- + RoutedOverrideSpec - a routed service override configuration for the Service created to serve traffic + to the cluster. Allows for the manifest of the created Service to be overwritten with custom configuration. properties: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be set - by external tools to store and retrieve arbitrary - metadata. They are not queryable and should be - preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of replication - controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the - fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -230,41 +214,38 @@ spec: 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". + 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' + 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 type: object - description: Override configuration for the Service created - to serve traffic to the cluster. The key must be the endpoint - type (public, internal) + description: |- + Override configuration for the Service created to serve traffic to the cluster. + The key must be the endpoint type (public, internal) type: object type: object replicas: @@ -275,23 +256,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -307,8 +294,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -317,11 +305,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -357,8 +345,9 @@ spec: type: object cellTemplates: additionalProperties: - description: NovaCellTemplate defines the input parameters specified - by the user to create a NovaCell via higher level CRDs. + description: |- + NovaCellTemplate defines the input parameters specified by the user to + create a NovaCell via higher level CRDs. properties: cellDatabaseAccount: description: CellDatabaseAccount - MariaDBAccount to use when @@ -366,27 +355,26 @@ spec: type: string cellDatabaseInstance: default: openstack - description: CellDatabaseInstance is the name of the MariaDB - CR to select the DB Service instance used as the DB of this - cell. + description: |- + CellDatabaseInstance is the name of the MariaDB CR to select the DB + Service instance used as the DB of this cell. type: string cellMessageBusInstance: default: rabbitmq - description: CellMessageBusInstance is the name of the RabbitMqCluster - CR to select the Message Bus Service instance used by the - nova services to communicate in this cell. For cell0 it is - unused. + description: |- + CellMessageBusInstance is the name of the RabbitMqCluster CR to select + the Message Bus Service instance used by the nova services to + communicate in this cell. For cell0 it is unused. type: string conductorServiceTemplate: description: ConductorServiceTemplate - defines the cell conductor deployment for the cell. properties: customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -397,9 +385,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes - running this service. Setting here overrides any global - NodeSelector settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -409,23 +397,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available + 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: @@ -442,8 +436,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -452,11 +447,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object type: object @@ -466,47 +461,49 @@ spec: properties: archiveAge: default: 30 - description: ArchiveAge defines the minimum age of the records - in days that can be moved to the shadow tables. + description: |- + ArchiveAge defines the minimum age of the records in days that can be + moved to the shadow tables. minimum: 1 type: integer purgeAge: default: 90 - description: PurgeAge defines the minimum age of the records - in days that can be deleted from the shadow tables + description: |- + PurgeAge defines the minimum age of the records in days that can be + deleted from the shadow tables minimum: 1 type: integer schedule: default: 0 0 * * * - description: Schedule defines when to run the DB maintenance - job in a cron format. By default it runs every midnight. + description: |- + Schedule defines when to run the DB maintenance job in a cron format. + By default it runs every midnight. type: string type: object hasAPIAccess: - description: HasAPIAccess defines if this Cell is configured - to have access to the API DB and message bus. + description: |- + HasAPIAccess defines if this Cell is configured to have access to the + API DB and message bus. type: boolean memcachedInstance: - description: MemcachedInstance is the name of the Memcached - CR that the services in the cell will use. If defined then - this takes precedence over Nova.Spec.MemcachedInstance for - this cel + description: |- + MemcachedInstance is the name of the Memcached CR that the services in the cell will use. + If defined then this takes precedence over Nova.Spec.MemcachedInstance for this cel type: string metadataServiceTemplate: - description: MetadataServiceTemplate - defines the metadata - service dedicated for the cell. Note that for cell0 metadata - service should not be deployed. Also if metadata service needs - to be deployed per cell here then it should not be enabled - to be deployed on the top level via the Nova CR at the same - time. By default Nova CR deploys the metadata service at the - top level and disables it on the cell level. + description: |- + MetadataServiceTemplate - defines the metadata service dedicated for the + cell. Note that for cell0 metadata service should not be deployed. Also + if metadata service needs to be deployed per cell here then it should + not be enabled to be deployed on the top level via the Nova CR at the + same time. By default Nova CR deploys the metadata service at the top + level and disables it on the cell level. properties: customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -515,18 +512,17 @@ spec: default config files like e.g. api-paste.ini. type: object enabled: - description: Enabled - Whether NovaMetadata services should - be deployed and managed. If it is set to false then the - related NovaMetadata CR will be deleted if exists and - owned by a higher level nova CR (Nova or NovaCell). If - it exist but not owned by a higher level nova CR then - the NovaMetadata CR will not be touched. If it is set - to true the a NovaMetadata CR will be created. If there - is already a manually created NovaMetadata CR with the - relevant name then this operator will not try to update - that CR, instead the higher level nova CR will be in error - state until the manually create NovaMetadata CR is deleted - manually. + description: |- + Enabled - Whether NovaMetadata services should be deployed and managed. + If it is set to false then the related NovaMetadata CR will be deleted + if exists and owned by a higher level nova CR (Nova or NovaCell). If it + exist but not owned by a higher level nova CR then the NovaMetadata CR + will not be touched. + If it is set to true the a NovaMetadata CR will be created. + If there is already a manually created NovaMetadata CR with the relevant + name then this operator will not try to update that CR, instead + the higher level nova CR will be in error state until the manually + create NovaMetadata CR is deleted manually. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -537,148 +533,121 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes - running this service. Setting here overrides any global - NodeSelector settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated manifest of several child resources. properties: service: - description: Override configuration for the Service - created to serve traffic to the cluster for internal + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of - the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -689,38 +658,32 @@ spec: 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). + 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 + 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. - "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' + "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 type: object @@ -733,23 +696,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available + 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: @@ -766,8 +735,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -776,11 +746,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -797,31 +767,29 @@ spec: type: object type: object noVNCProxyServiceTemplate: - description: NoVNCProxyServiceTemplate - defines the novncproxy - service dedicated for the cell. Note that for cell0 novncproxy - should not be deployed so the enabled field of this template - is defaulted to false in cell0 but defaulted to true in other - cells. + description: |- + NoVNCProxyServiceTemplate - defines the novncproxy service dedicated for + the cell. Note that for cell0 novncproxy should not be deployed so + the enabled field of this template is defaulted to false in cell0 but + defaulted to true in other cells. properties: customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string enabled: - description: Enabled - Whether NovaNoVNCProxy services should - be deployed and managed. If it is set to false then the - related NovaNoVNCProxy CR will be deleted if exists and - owned by the NovaCell. If it exist but not owned by the + description: |- + Enabled - Whether NovaNoVNCProxy services should be deployed and managed. + If it is set to false then the related NovaNoVNCProxy CR will be deleted + if exists and owned by the NovaCell. If it exist but not owned by the NovaCell then the NovaNoVNCProxy will not be touched. If it is set to true the a NovaNoVNCProxy CR will be created. - If there is already a manually created NovaNoVNCProxy - CR with the relevant name then the cell will not try to - update that CR, instead the NovaCell be in error state - until the manually create NovaNoVNCProxy CR is deleted - by the operator. + If there is already a manually created NovaNoVNCProxy CR with the + relevant name then the cell will not try to update that CR, instead the + NovaCell be in error state until the manually create NovaNoVNCProxy CR + is deleted by the operator. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -846,134 +814,107 @@ spec: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of - the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -984,38 +925,32 @@ spec: 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). + 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 + 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. - "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' + "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 type: object @@ -1028,23 +963,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available + 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: @@ -1061,8 +1002,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1071,11 +1013,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -1095,13 +1037,11 @@ spec: type: string type: object vencrypt: - description: Vencrypt - cert secret containing the x509 - certificate to be presented to the VNC server. The - CommonName field should match the primary hostname - of the controller node. If using a HA deployment, - the Organization field can also be configured to a - value that is common across all console proxy instances - in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration + description: |- + Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. + The CommonName field should match the primary hostname of the controller node. If using a HA deployment, + the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. + https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration properties: secretName: description: SecretName - holding the cert, key @@ -1118,9 +1058,9 @@ spec: type: object novaComputeTemplates: additionalProperties: - description: NovaComputeTemplate defines the input parameters - specified by the user to create a NovaCompute via higher - level CRDs. + description: |- + NovaComputeTemplate defines the input parameters specified by the user to + create a NovaCompute via higher level CRDs. properties: computeDriver: description: ComputeDriver - defines which driver to use @@ -1130,11 +1070,10 @@ spec: - fake.FakeDriver type: string customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -1151,9 +1090,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes - running this service. Setting here overrides any global - NodeSelector settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -1164,25 +1103,30 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by - this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one - entry in pod.spec.resourceClaims of the Pod - where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1198,8 +1142,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1208,21 +1153,20 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object required: - computeDriver type: object - description: 'NovaComputeTemplates - map of nova computes template - with selected drivers in format compute_name: compute_template. - Key from map is arbitrary name for the compute with a limit - of 20 characters.' + description: |- + NovaComputeTemplates - map of nova computes template with selected drivers in format + compute_name: compute_template. Key from map is arbitrary name for the compute with + a limit of 20 characters. type: object required: - cellDatabaseAccount @@ -1237,11 +1181,11 @@ spec: cellDatabaseInstance: openstack-cell1 cellMessageBusInstance: rabbitmq-cell1 hasAPIAccess: true - description: Cells is a mapping of cell names to NovaCellTemplate - objects defining the cells in the deployment. The "cell0" cell is - a mandatory cell in every deployment. Moreover any real deployment - needs at least one additional normal cell as "cell0" cannot have - any computes. + description: |- + Cells is a mapping of cell names to NovaCellTemplate objects defining + the cells in the deployment. The "cell0" cell is a mandatory cell in + every deployment. Moreover any real deployment needs at least one + additional normal cell as "cell0" cannot have any computes. type: object computeContainerImageURL: description: NovaComputeContainerImageURL @@ -1251,8 +1195,9 @@ spec: type: string keystoneInstance: default: keystone - description: KeystoneInstance to name of the KeystoneAPI CR to select - the Service instance used by the Nova services to authenticate. + description: |- + KeystoneInstance to name of the KeystoneAPI CR to select the Service + instance used by the Nova services to authenticate. type: string memcachedInstance: default: memcached @@ -1265,17 +1210,17 @@ spec: metadataServiceTemplate: default: enabled: true - description: MetadataServiceTemplate - defines the metadata service - that is global for the deployment serving all the cells. Note that - if you want to deploy metadata per cell then the metadata service - should be disabled here and enabled in the cellTemplates instead. + description: |- + MetadataServiceTemplate - defines the metadata service that is global + for the deployment serving all the cells. Note that if you want to + deploy metadata per cell then the metadata service should be disabled + here and enabled in the cellTemplates instead. properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -1284,17 +1229,17 @@ spec: config files like e.g. api-paste.ini. type: object enabled: - description: Enabled - Whether NovaMetadata services should be - deployed and managed. If it is set to false then the related - NovaMetadata CR will be deleted if exists and owned by a higher - level nova CR (Nova or NovaCell). If it exist but not owned - by a higher level nova CR then the NovaMetadata CR will not - be touched. If it is set to true the a NovaMetadata CR will - be created. If there is already a manually created NovaMetadata - CR with the relevant name then this operator will not try to - update that CR, instead the higher level nova CR will be in - error state until the manually create NovaMetadata CR is deleted - manually. + description: |- + Enabled - Whether NovaMetadata services should be deployed and managed. + If it is set to false then the related NovaMetadata CR will be deleted + if exists and owned by a higher level nova CR (Nova or NovaCell). If it + exist but not owned by a higher level nova CR then the NovaMetadata CR + will not be touched. + If it is set to true the a NovaMetadata CR will be created. + If there is already a manually created NovaMetadata CR with the relevant + name then this operator will not try to update that CR, instead + the higher level nova CR will be in error state until the manually + create NovaMetadata CR is deleted manually. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -1305,136 +1250,121 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated manifest of several child resources. properties: service: - description: Override configuration for the Service created - to serve traffic to the cluster for internal communication. + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal + communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -1445,34 +1375,32 @@ spec: 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". + 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' + 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 type: object @@ -1485,23 +1413,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1517,8 +1451,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1527,11 +1462,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -1549,9 +1484,10 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting NodeSelector here acts as a default value - and can be overridden by service specific NodeSelector Settings. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting + NodeSelector here acts as a default value and can be overridden by service + specific NodeSelector Settings. type: object novncproxyContainerImageURL: description: NoVNCContainerImageURL @@ -1559,27 +1495,31 @@ spec: passwordSelectors: default: service: NovaPassword - description: PasswordSelectors - Selectors to identify the DB and - ServiceUser passwords from the Secret + description: |- + PasswordSelectors - Selectors to identify the DB and ServiceUser + passwords from the Secret properties: metadataSecret: default: MetadataSecret - description: MetadataSecret - the name of the field to get the - metadata secret from the Secret + description: |- + MetadataSecret - the name of the field to get the metadata secret from the + Secret type: string prefixMetadataCellsSecret: default: MetadataCellsSecret - description: prefixMetadataCellsSecret - the prefix name of the - field to get the metadata secret from the Secret for cells. - Vale of metadata_proxy_shared_secret information for the nova-metadata - service. This secret is shared between nova and neutron ovn-metadata - inside selected cell and if this is not defined the global metadata_proxy_shared_secret + description: |- + prefixMetadataCellsSecret - the prefix name of the field to get the metadata secret from the + Secret for cells. Vale of metadata_proxy_shared_secret + information for the nova-metadata service. This secret is shared + between nova and neutron ovn-metadata inside selected cell + and if this is not defined the global metadata_proxy_shared_secret secret will be used type: string service: default: NovaPassword - description: Service - Selector to get the keystone service user - password from the Secret + description: |- + Service - Selector to get the keystone service user password from the + Secret type: string type: object preserveJobs: @@ -1596,11 +1536,10 @@ spec: description: SchedulerServiceTemplate- define the nova-scheduler service properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -1611,9 +1550,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -1623,23 +1562,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1655,8 +1600,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1665,18 +1611,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for nova like the keystone service password - and DB passwords + description: |- + Secret is the name of the Secret instance containing password + information for nova like the keystone service password and DB passwords type: string serviceUser: default: nova @@ -1707,10 +1653,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -1722,14 +1668,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -1746,13 +1691,14 @@ spec: discoveredCells: additionalProperties: type: string - description: DiscoveredCells is a map keyed by cell names that have - discovered all kubernetes managed computes in cell value is a hash - of config from all kubernetes managed computes in cell + description: |- + DiscoveredCells is a map keyed by cell names that have discovered all kubernetes managed + computes in cell value is a hash of config from all kubernetes managed computes in cell type: object metadataServiceReadyCount: - description: MetadataReadyCount defines the number of replicas ready - from nova-metadata service + description: |- + MetadataReadyCount defines the number of replicas ready from + nova-metadata service format: int32 type: integer observedGeneration: @@ -1764,9 +1710,10 @@ spec: registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. type: object schedulerServiceReadyCount: description: SchedulerServiceReadyCount defines the number or replicas diff --git a/api/bases/nova.openstack.org_novaapis.yaml b/api/bases/nova.openstack.org_novaapis.yaml index 1d1c5cb4e..928487bcb 100644 --- a/api/bases/nova.openstack.org_novaapis.yaml +++ b/api/bases/nova.openstack.org_novaapis.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novaapis.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaAPI is the Schema for the novaapis API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -71,11 +75,10 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -84,13 +87,15 @@ spec: config files like e.g. api-paste.ini or policy.yaml. type: object keystoneAuthURL: - description: KeystoneAuthURL configures the keystone API endpoint - to be used by the service for authentication and authorization + description: |- + KeystoneAuthURL configures the keystone API endpoint to be used + by the service for authentication and authorization type: string keystonePublicAuthURL: - description: KeystonePublicAuthURL configures the public keystone - API endpoint. This can be different from KeystoneAuthURL. The service - uses this value to redirect unauthenticated users. + description: |- + KeystonePublicAuthURL configures the public keystone API endpoint. This + can be different from KeystoneAuthURL. The service uses this value + to redirect unauthenticated users. type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -114,128 +119,114 @@ spec: properties: service: additionalProperties: - description: RoutedOverrideSpec - a routed service override - configuration for the Service created to serve traffic to - the cluster. Allows for the manifest of the created Service - to be overwritten with custom configuration. + description: |- + RoutedOverrideSpec - a routed service override configuration for the Service created to serve traffic + to the cluster. Allows for the manifest of the created Service to be overwritten with custom configuration. properties: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded subset - of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. They - are not queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -246,50 +237,50 @@ spec: 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). + 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' + 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 type: object - description: Override configuration for the Service created to - serve traffic to the cluster. The key must be the endpoint type - (public, internal) + description: |- + Override configuration for the Service created to serve traffic to the cluster. + The key must be the endpoint type (public, internal) type: object type: object registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. This is used to detect when a new - cell is added or an existing cell is reconfigured to trigger refresh - of the in memory cell caches of the service. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. + This is used to detect when a new cell is added or an existing cell is + reconfigured to trigger refresh of the in memory cell caches of the + service. type: object replicas: default: 1 @@ -299,22 +290,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -330,8 +328,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -340,18 +339,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-api service. This secret is expected - to be generated by the nova-operator based on the information passed - to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-api service. This secret is expected to be + generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -359,8 +359,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -412,10 +413,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -427,14 +428,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -461,11 +461,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/api/bases/nova.openstack.org_novacells.yaml b/api/bases/nova.openstack.org_novacells.yaml index 996b48ea3..59223fdd2 100644 --- a/api/bases/nova.openstack.org_novacells.yaml +++ b/api/bases/nova.openstack.org_novacells.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novacells.nova.openstack.org spec: group: nova.openstack.org @@ -21,14 +20,19 @@ spec: description: NovaCell is the Schema for the novacells API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -41,10 +45,11 @@ spec: the API DB type: string apiDatabaseHostname: - description: 'APIDatabaseHostname - hostname to use when accessing - the API DB. If not provided then up-calls will be disabled. This - filed is Required for cell0. TODO(gibi): Add a webhook to validate - cell0 constraint' + description: |- + APIDatabaseHostname - hostname to use when accessing the API DB. If not + provided then up-calls will be disabled. This filed is Required for + cell0. + TODO(gibi): Add a webhook to validate cell0 constraint type: string cellDatabaseAccount: default: nova @@ -56,10 +61,11 @@ spec: the cell DB type: string cellName: - description: CellName is the name of the Nova Cell. The value "cell0" - has a special meaning. The "cell0" Cell cannot have compute nodes - associated and the conductor in this cell acts as the super conductor - for all the cells in the deployment. + description: |- + CellName is the name of the Nova Cell. The value "cell0" has a special + meaning. The "cell0" Cell cannot have compute nodes associated and the + conductor in this cell acts as the super conductor for all the cells in + the deployment. type: string computeContainerImageURL: description: NovaComputeContainerImageURL @@ -72,11 +78,10 @@ spec: deployment for the cell properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -87,9 +92,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -99,23 +104,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -131,8 +142,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -141,11 +153,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object type: object @@ -155,25 +167,29 @@ spec: properties: archiveAge: default: 30 - description: ArchiveAge defines the minimum age of the records - in days that can be moved to the shadow tables. + description: |- + ArchiveAge defines the minimum age of the records in days that can be + moved to the shadow tables. minimum: 1 type: integer purgeAge: default: 90 - description: PurgeAge defines the minimum age of the records in - days that can be deleted from the shadow tables + description: |- + PurgeAge defines the minimum age of the records in days that can be + deleted from the shadow tables minimum: 1 type: integer schedule: default: 0 0 * * * - description: Schedule defines when to run the DB maintenance job - in a cron format. By default it runs every midnight. + description: |- + Schedule defines when to run the DB maintenance job in a cron format. + By default it runs every midnight. type: string type: object keystoneAuthURL: - description: KeystoneAuthURL - the URL that the service in the cell - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the service in the cell can use to talk + to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -187,11 +203,10 @@ spec: dedicated for the cell. properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -200,17 +215,17 @@ spec: config files like e.g. api-paste.ini. type: object enabled: - description: Enabled - Whether NovaMetadata services should be - deployed and managed. If it is set to false then the related - NovaMetadata CR will be deleted if exists and owned by a higher - level nova CR (Nova or NovaCell). If it exist but not owned - by a higher level nova CR then the NovaMetadata CR will not - be touched. If it is set to true the a NovaMetadata CR will - be created. If there is already a manually created NovaMetadata - CR with the relevant name then this operator will not try to - update that CR, instead the higher level nova CR will be in - error state until the manually create NovaMetadata CR is deleted - manually. + description: |- + Enabled - Whether NovaMetadata services should be deployed and managed. + If it is set to false then the related NovaMetadata CR will be deleted + if exists and owned by a higher level nova CR (Nova or NovaCell). If it + exist but not owned by a higher level nova CR then the NovaMetadata CR + will not be touched. + If it is set to true the a NovaMetadata CR will be created. + If there is already a manually created NovaMetadata CR with the relevant + name then this operator will not try to update that CR, instead + the higher level nova CR will be in error state until the manually + create NovaMetadata CR is deleted manually. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -221,136 +236,121 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated manifest of several child resources. properties: service: - description: Override configuration for the Service created - to serve traffic to the cluster for internal communication. + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal + communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -361,34 +361,32 @@ spec: 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". + 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' + 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 type: object @@ -401,23 +399,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -433,8 +437,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -443,11 +448,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -463,27 +468,27 @@ spec: type: object type: object noVNCProxyServiceTemplate: - description: NoVNCProxyServiceTemplate - defines the novncproxy service - dedicated for the cell. + description: |- + NoVNCProxyServiceTemplate - defines the novncproxy service dedicated for + the cell. properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string enabled: - description: Enabled - Whether NovaNoVNCProxy services should - be deployed and managed. If it is set to false then the related - NovaNoVNCProxy CR will be deleted if exists and owned by the - NovaCell. If it exist but not owned by the NovaCell then the - NovaNoVNCProxy will not be touched. If it is set to true the - a NovaNoVNCProxy CR will be created. If there is already a manually - created NovaNoVNCProxy CR with the relevant name then the cell - will not try to update that CR, instead the NovaCell be in error - state until the manually create NovaNoVNCProxy CR is deleted - by the operator. + description: |- + Enabled - Whether NovaNoVNCProxy services should be deployed and managed. + If it is set to false then the related NovaNoVNCProxy CR will be deleted + if exists and owned by the NovaCell. If it exist but not owned by the + NovaCell then the NovaNoVNCProxy will not be touched. + If it is set to true the a NovaNoVNCProxy CR will be created. + If there is already a manually created NovaNoVNCProxy CR with the + relevant name then the cell will not try to update that CR, instead the + NovaCell be in error state until the manually create NovaNoVNCProxy CR + is deleted by the operator. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -508,123 +513,107 @@ spec: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -635,34 +624,32 @@ spec: 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". + 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' + 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 type: object @@ -675,23 +662,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -707,8 +700,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -717,11 +711,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -741,12 +735,11 @@ spec: type: string type: object vencrypt: - description: Vencrypt - cert secret containing the x509 certificate - to be presented to the VNC server. The CommonName field - should match the primary hostname of the controller node. - If using a HA deployment, the Organization field can also - be configured to a value that is common across all console - proxy instances in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration + description: |- + Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. + The CommonName field should match the primary hostname of the controller node. If using a HA deployment, + the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. + https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration properties: secretName: description: SecretName - holding the cert, key for the @@ -763,8 +756,9 @@ spec: type: object novaComputeTemplates: additionalProperties: - description: NovaComputeTemplate defines the input parameters specified - by the user to create a NovaCompute via higher level CRDs. + description: |- + NovaComputeTemplate defines the input parameters specified by the user to + create a NovaCompute via higher level CRDs. properties: computeDriver: description: ComputeDriver - defines which driver to use for @@ -774,11 +768,10 @@ spec: - fake.FakeDriver type: string customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -795,9 +788,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -808,22 +801,28 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where this - field is used. It makes that resource available + 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: @@ -840,8 +839,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -850,20 +850,20 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests - cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object required: - computeDriver type: object - description: 'NovaComputeTemplates - map of nova computes template - with selected drivers in format compute_name: compute_template. - Key from map is arbitrary name for the compute. because of that - there is a 20 character limit on the compute name.' + description: |- + NovaComputeTemplates - map of nova computes template with selected drivers in format + compute_name: compute_template. Key from map is arbitrary name for the compute. + because of that there is a 20 character limit on the compute name. type: object novncproxyContainerImageURL: description: NoVNCContainerImageURL @@ -874,10 +874,11 @@ spec: e.g. to check logs type: boolean secret: - description: Secret is the name of the Secret instance containing - password information for the nova cell. This secret is expected - to be generated by the nova-operator based on the information passed - to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova cell. This secret is expected to be + generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -885,8 +886,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -920,10 +922,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -935,14 +937,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -957,25 +958,29 @@ spec: type: object type: array conductorServiceReadyCount: - description: ConductorServiceReadyCount defines the number of replicas - ready from nova-conductor service in the cell + description: |- + ConductorServiceReadyCount defines the number of replicas ready from + nova-conductor service in the cell format: int32 type: integer hash: additionalProperties: type: string - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file Map of hashes to track e.g. job status' + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + Map of hashes to track e.g. job status type: object metadataServiceReadyCount: - description: MetadataServiceReadyCount defines the number of replicas - ready from nova-metadata service in the cell + description: |- + MetadataServiceReadyCount defines the number of replicas ready from + nova-metadata service in the cell format: int32 type: integer noVNCProxyServiceReadyCount: - description: NoVNCPRoxyServiceReadyCount defines the number of replicas - ready from nova-novncproxy service in the cell + description: |- + NoVNCPRoxyServiceReadyCount defines the number of replicas ready from + nova-novncproxy service in the cell format: int32 type: integer novaComputesStatus: @@ -996,19 +1001,20 @@ spec: - deployed - errors type: object - description: 'NovaComputesStatus is a map with format cell_name: NovaComputeCellStatus - where NovaComputeCellStatus tell if compute with selected name deployed - successfully and indicates if the compute is successfully mapped - to the cell in the nova_api database. When a compute is removed - from the Spec the operator will delete the related NovaCompute CR - and then remove the compute from this Status field.' + description: |- + NovaComputesStatus is a map with format cell_name: NovaComputeCellStatus + where NovaComputeCellStatus tell if compute with selected name deployed successfully + and indicates if the compute is successfully mapped to the cell in + the nova_api database. + When a compute is removed from the Spec the operator will delete the + related NovaCompute CR and then remove the compute from this Status field. type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer type: object diff --git a/api/bases/nova.openstack.org_novacomputes.yaml b/api/bases/nova.openstack.org_novacomputes.yaml index 1bf4096a8..626ee0ec3 100644 --- a/api/bases/nova.openstack.org_novacomputes.yaml +++ b/api/bases/nova.openstack.org_novacomputes.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novacomputes.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaCompute is the Schema for the NovaCompute properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -67,11 +71,10 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -101,22 +104,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -132,8 +142,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -142,18 +153,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the NovaCompute service. This secret is - expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the NovaCompute service. This secret is expected to be + generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -161,8 +173,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -190,10 +203,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -205,14 +218,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -239,11 +251,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/api/bases/nova.openstack.org_novaconductors.yaml b/api/bases/nova.openstack.org_novaconductors.yaml index 6abfbabbe..f4c7a225b 100644 --- a/api/bases/nova.openstack.org_novaconductors.yaml +++ b/api/bases/nova.openstack.org_novaconductors.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novaconductors.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaConductor is the Schema for the novaconductors API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -54,10 +58,11 @@ spec: the API DB type: string apiDatabaseHostname: - description: 'APIDatabaseHostname - hostname to use when accessing - the API DB. If not provided then up-calls will be disabled. This - filed is Required for cell0. TODO(gibi): Add a webhook to validate - cell0 constraint' + description: |- + APIDatabaseHostname - hostname to use when accessing the API DB. If not + provided then up-calls will be disabled. This filed is Required for + cell0. + TODO(gibi): Add a webhook to validate cell0 constraint type: string cellDatabaseAccount: default: nova @@ -65,8 +70,9 @@ spec: the cell DB type: string cellDatabaseHostname: - description: 'NOTE(gibi): This should be Required, see notes in KeystoneAuthURL - CellDatabaseHostname - hostname to use when accessing the cell DB' + description: |- + NOTE(gibi): This should be Required, see notes in KeystoneAuthURL + CellDatabaseHostname - hostname to use when accessing the cell DB type: string cellName: description: CellName is the name of the Nova Cell this conductor @@ -77,11 +83,10 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string dbPurge: description: DBPurge defines the parameters for the DB archiving and @@ -89,25 +94,29 @@ spec: properties: archiveAge: default: 30 - description: ArchiveAge defines the minimum age of the records - in days that can be moved to the shadow tables. + description: |- + ArchiveAge defines the minimum age of the records in days that can be + moved to the shadow tables. minimum: 1 type: integer purgeAge: default: 90 - description: PurgeAge defines the minimum age of the records in - days that can be deleted from the shadow tables + description: |- + PurgeAge defines the minimum age of the records in days that can be + deleted from the shadow tables minimum: 1 type: integer schedule: default: 0 0 * * * - description: Schedule defines when to run the DB maintenance job - in a cron format. By default it runs every midnight. + description: |- + Schedule defines when to run the DB maintenance job in a cron format. + By default it runs every midnight. type: string type: object keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-conductor service - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the nova-conductor service can use to + talk to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -138,22 +147,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -169,8 +185,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -179,18 +196,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-conductor service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-conductor service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -198,8 +216,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -226,10 +245,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -241,14 +260,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -275,11 +293,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/api/bases/nova.openstack.org_novametadata.yaml b/api/bases/nova.openstack.org_novametadata.yaml index 1ac0ce9c4..ba9e7c6a6 100644 --- a/api/bases/nova.openstack.org_novametadata.yaml +++ b/api/bases/nova.openstack.org_novametadata.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novametadata.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaMetadata is the Schema for the novametadata API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -54,9 +58,10 @@ spec: the API DB type: string apiDatabaseHostname: - description: 'APIDatabaseHostname - hostname to use when accessing - the API DB. This filed is Required if the CellName is not provided - TODO(gibi): Add a webhook to validate the CellName constraint' + description: |- + APIDatabaseHostname - hostname to use when accessing the API DB. + This filed is Required if the CellName is not provided + TODO(gibi): Add a webhook to validate the CellName constraint type: string cellDatabaseAccount: default: nova @@ -64,26 +69,26 @@ spec: the cell DB type: string cellDatabaseHostname: - description: 'CellDatabaseHostname - hostname to use when accessing - the cell DB This is unused if CellName is not provided. But if it - is provided then CellDatabaseHostName is also Required. TODO(gibi): - add webhook to validate this CellName constraint' + description: |- + CellDatabaseHostname - hostname to use when accessing the cell DB + This is unused if CellName is not provided. But if it is provided then + CellDatabaseHostName is also Required. + TODO(gibi): add webhook to validate this CellName constraint type: string cellName: - description: CellName is the name of the Nova Cell this metadata service - belongs to. If not provided then the metadata serving every cells - in the deployment + description: |- + CellName is the name of the Nova Cell this metadata service belongs to. + If not provided then the metadata serving every cells in the deployment type: string containerImage: description: The service specific Container Image URL (will be set to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -92,9 +97,10 @@ spec: config files like e.g. api-paste.ini. type: object keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-metadata service - can use to talk to keystone TODO(ksambor) Add checking if dynamic - vendor data is configured + description: |- + KeystoneAuthURL - the URL that the nova-metadata service can use to talk + to keystone + TODO(ksambor) Add checking if dynamic vendor data is configured type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -117,124 +123,112 @@ spec: manifest of several child resources. properties: service: - description: Override configuration for the Service created to - serve traffic to the cluster for internal communication. + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal + communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded subset - of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. They - are not queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be - used to organize and categorize (scope and select) objects. - May match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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 + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -245,33 +239,32 @@ spec: 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). + 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' + 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 type: object @@ -279,12 +272,14 @@ spec: registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. This is used to detect when a new - cell is added or an existing cell is reconfigured to trigger refresh - of the in memory cell caches of the service. This is empty for the - case when nova-metadata runs within the cell. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. + This is used to detect when a new cell is added or an existing cell is + reconfigured to trigger refresh of the in memory cell caches of the + service. + This is empty for the case when nova-metadata runs within the cell. type: object replicas: default: 1 @@ -294,22 +289,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -325,8 +327,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -335,18 +338,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-conductor service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-conductor service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -354,8 +358,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -384,10 +389,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -399,14 +404,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -433,11 +437,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/api/bases/nova.openstack.org_novanovncproxies.yaml b/api/bases/nova.openstack.org_novanovncproxies.yaml index 4090dd6eb..88f0ddb07 100644 --- a/api/bases/nova.openstack.org_novanovncproxies.yaml +++ b/api/bases/nova.openstack.org_novanovncproxies.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novanovncproxies.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaNoVNCProxy is the Schema for the novanovncproxies API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -66,15 +70,15 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-novncproxy service - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the nova-novncproxy service can use to + talk to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -103,120 +107,107 @@ spec: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded subset - of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. They - are not queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be - used to organize and categorize (scope and select) objects. - May match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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 + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -227,33 +218,32 @@ spec: 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). + 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' + 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 type: object @@ -266,22 +256,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -297,8 +294,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -307,18 +305,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-novncproxy service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-novncproxy service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -326,8 +325,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -345,12 +345,11 @@ spec: type: string type: object vencrypt: - description: Vencrypt - cert secret containing the x509 certificate - to be presented to the VNC server. The CommonName field should - match the primary hostname of the controller node. If using - a HA deployment, the Organization field can also be configured - to a value that is common across all console proxy instances - in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration + description: |- + Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. + The CommonName field should match the primary hostname of the controller node. If using a HA deployment, + the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. + https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration properties: secretName: description: SecretName - holding the cert, key for the service @@ -375,10 +374,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -390,14 +389,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -424,11 +422,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/api/bases/nova.openstack.org_novaschedulers.yaml b/api/bases/nova.openstack.org_novaschedulers.yaml index 206d1e763..813031300 100644 --- a/api/bases/nova.openstack.org_novaschedulers.yaml +++ b/api/bases/nova.openstack.org_novaschedulers.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novaschedulers.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaScheduler is the Schema for the novaschedulers API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -71,15 +75,15 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-scheduler service - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the nova-scheduler service can use to + talk to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -100,11 +104,13 @@ spec: registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. This is used to detect when a new - cell is added or an existing cell is reconfigured to trigger refresh - of the in memory cell caches of the service. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. + This is used to detect when a new cell is added or an existing cell is + reconfigured to trigger refresh of the in memory cell caches of the + service. type: object replicas: default: 1 @@ -114,22 +120,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -145,8 +158,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -155,18 +169,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-scheduler service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-scheduler service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -174,8 +189,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -204,10 +220,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -219,14 +235,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -243,9 +258,10 @@ spec: hash: additionalProperties: type: string - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file Map of hashes to track e.g. job status' + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + Map of hashes to track e.g. job status type: object networkAttachments: additionalProperties: @@ -255,11 +271,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/api/v1beta1/zz_generated.deepcopy.go b/api/v1beta1/zz_generated.deepcopy.go index 0c59fccf0..ac95c1eed 100644 --- a/api/v1beta1/zz_generated.deepcopy.go +++ b/api/v1beta1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2022. @@ -227,7 +226,8 @@ func (in *NovaAPIStatus) DeepCopyInto(out *NovaAPIStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } @@ -661,7 +661,8 @@ func (in *NovaComputeStatus) DeepCopyInto(out *NovaComputeStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } @@ -841,7 +842,8 @@ func (in *NovaConductorStatus) DeepCopyInto(out *NovaConductorStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } @@ -1092,7 +1094,8 @@ func (in *NovaMetadataStatus) DeepCopyInto(out *NovaMetadataStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } @@ -1279,7 +1282,8 @@ func (in *NovaNoVNCProxyStatus) DeepCopyInto(out *NovaNoVNCProxyStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } @@ -1465,7 +1469,8 @@ func (in *NovaSchedulerStatus) DeepCopyInto(out *NovaSchedulerStatus) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } diff --git a/config/crd/bases/nova.openstack.org_nova.yaml b/config/crd/bases/nova.openstack.org_nova.yaml index 25ef59931..6cffd7e18 100644 --- a/config/crd/bases/nova.openstack.org_nova.yaml +++ b/config/crd/bases/nova.openstack.org_nova.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: nova.nova.openstack.org spec: group: nova.openstack.org @@ -21,14 +20,19 @@ spec: description: Nova is the Schema for the nova API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -45,14 +49,16 @@ spec: type: string apiDatabaseInstance: default: openstack - description: APIDatabaseInstance is the name of the MariaDB CR to - select the DB Service instance used for the Nova API DB. + description: |- + APIDatabaseInstance is the name of the MariaDB CR to select the DB + Service instance used for the Nova API DB. type: string apiMessageBusInstance: default: rabbitmq - description: APIMessageBusInstance is the name of the RabbitMqCluster - CR to select the Message Bus Service instance used by the Nova top - level services to communicate. + description: |- + APIMessageBusInstance is the name of the RabbitMqCluster CR to select + the Message Bus Service instance used by the Nova top level services to + communicate. type: string apiServiceTemplate: default: @@ -60,11 +66,10 @@ spec: description: APIServiceTemplate - define the nova-api service properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -81,9 +86,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated @@ -91,135 +96,114 @@ spec: properties: service: additionalProperties: - description: RoutedOverrideSpec - a routed service override - configuration for the Service created to serve traffic - to the cluster. Allows for the manifest of the created - Service to be overwritten with custom configuration. + description: |- + RoutedOverrideSpec - a routed service override configuration for the Service created to serve traffic + to the cluster. Allows for the manifest of the created Service to be overwritten with custom configuration. properties: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be set - by external tools to store and retrieve arbitrary - metadata. They are not queryable and should be - preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of replication - controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the - fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -230,41 +214,38 @@ spec: 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". + 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' + 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 type: object - description: Override configuration for the Service created - to serve traffic to the cluster. The key must be the endpoint - type (public, internal) + description: |- + Override configuration for the Service created to serve traffic to the cluster. + The key must be the endpoint type (public, internal) type: object type: object replicas: @@ -275,23 +256,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -307,8 +294,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -317,11 +305,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -357,8 +345,9 @@ spec: type: object cellTemplates: additionalProperties: - description: NovaCellTemplate defines the input parameters specified - by the user to create a NovaCell via higher level CRDs. + description: |- + NovaCellTemplate defines the input parameters specified by the user to + create a NovaCell via higher level CRDs. properties: cellDatabaseAccount: description: CellDatabaseAccount - MariaDBAccount to use when @@ -366,27 +355,26 @@ spec: type: string cellDatabaseInstance: default: openstack - description: CellDatabaseInstance is the name of the MariaDB - CR to select the DB Service instance used as the DB of this - cell. + description: |- + CellDatabaseInstance is the name of the MariaDB CR to select the DB + Service instance used as the DB of this cell. type: string cellMessageBusInstance: default: rabbitmq - description: CellMessageBusInstance is the name of the RabbitMqCluster - CR to select the Message Bus Service instance used by the - nova services to communicate in this cell. For cell0 it is - unused. + description: |- + CellMessageBusInstance is the name of the RabbitMqCluster CR to select + the Message Bus Service instance used by the nova services to + communicate in this cell. For cell0 it is unused. type: string conductorServiceTemplate: description: ConductorServiceTemplate - defines the cell conductor deployment for the cell. properties: customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -397,9 +385,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes - running this service. Setting here overrides any global - NodeSelector settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -409,23 +397,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available + 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: @@ -442,8 +436,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -452,11 +447,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object type: object @@ -466,47 +461,49 @@ spec: properties: archiveAge: default: 30 - description: ArchiveAge defines the minimum age of the records - in days that can be moved to the shadow tables. + description: |- + ArchiveAge defines the minimum age of the records in days that can be + moved to the shadow tables. minimum: 1 type: integer purgeAge: default: 90 - description: PurgeAge defines the minimum age of the records - in days that can be deleted from the shadow tables + description: |- + PurgeAge defines the minimum age of the records in days that can be + deleted from the shadow tables minimum: 1 type: integer schedule: default: 0 0 * * * - description: Schedule defines when to run the DB maintenance - job in a cron format. By default it runs every midnight. + description: |- + Schedule defines when to run the DB maintenance job in a cron format. + By default it runs every midnight. type: string type: object hasAPIAccess: - description: HasAPIAccess defines if this Cell is configured - to have access to the API DB and message bus. + description: |- + HasAPIAccess defines if this Cell is configured to have access to the + API DB and message bus. type: boolean memcachedInstance: - description: MemcachedInstance is the name of the Memcached - CR that the services in the cell will use. If defined then - this takes precedence over Nova.Spec.MemcachedInstance for - this cel + description: |- + MemcachedInstance is the name of the Memcached CR that the services in the cell will use. + If defined then this takes precedence over Nova.Spec.MemcachedInstance for this cel type: string metadataServiceTemplate: - description: MetadataServiceTemplate - defines the metadata - service dedicated for the cell. Note that for cell0 metadata - service should not be deployed. Also if metadata service needs - to be deployed per cell here then it should not be enabled - to be deployed on the top level via the Nova CR at the same - time. By default Nova CR deploys the metadata service at the - top level and disables it on the cell level. + description: |- + MetadataServiceTemplate - defines the metadata service dedicated for the + cell. Note that for cell0 metadata service should not be deployed. Also + if metadata service needs to be deployed per cell here then it should + not be enabled to be deployed on the top level via the Nova CR at the + same time. By default Nova CR deploys the metadata service at the top + level and disables it on the cell level. properties: customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -515,18 +512,17 @@ spec: default config files like e.g. api-paste.ini. type: object enabled: - description: Enabled - Whether NovaMetadata services should - be deployed and managed. If it is set to false then the - related NovaMetadata CR will be deleted if exists and - owned by a higher level nova CR (Nova or NovaCell). If - it exist but not owned by a higher level nova CR then - the NovaMetadata CR will not be touched. If it is set - to true the a NovaMetadata CR will be created. If there - is already a manually created NovaMetadata CR with the - relevant name then this operator will not try to update - that CR, instead the higher level nova CR will be in error - state until the manually create NovaMetadata CR is deleted - manually. + description: |- + Enabled - Whether NovaMetadata services should be deployed and managed. + If it is set to false then the related NovaMetadata CR will be deleted + if exists and owned by a higher level nova CR (Nova or NovaCell). If it + exist but not owned by a higher level nova CR then the NovaMetadata CR + will not be touched. + If it is set to true the a NovaMetadata CR will be created. + If there is already a manually created NovaMetadata CR with the relevant + name then this operator will not try to update that CR, instead + the higher level nova CR will be in error state until the manually + create NovaMetadata CR is deleted manually. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -537,148 +533,121 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes - running this service. Setting here overrides any global - NodeSelector settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated manifest of several child resources. properties: service: - description: Override configuration for the Service - created to serve traffic to the cluster for internal + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of - the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -689,38 +658,32 @@ spec: 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). + 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 + 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. - "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' + "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 type: object @@ -733,23 +696,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available + 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: @@ -766,8 +735,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -776,11 +746,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -797,31 +767,29 @@ spec: type: object type: object noVNCProxyServiceTemplate: - description: NoVNCProxyServiceTemplate - defines the novncproxy - service dedicated for the cell. Note that for cell0 novncproxy - should not be deployed so the enabled field of this template - is defaulted to false in cell0 but defaulted to true in other - cells. + description: |- + NoVNCProxyServiceTemplate - defines the novncproxy service dedicated for + the cell. Note that for cell0 novncproxy should not be deployed so + the enabled field of this template is defaulted to false in cell0 but + defaulted to true in other cells. properties: customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string enabled: - description: Enabled - Whether NovaNoVNCProxy services should - be deployed and managed. If it is set to false then the - related NovaNoVNCProxy CR will be deleted if exists and - owned by the NovaCell. If it exist but not owned by the + description: |- + Enabled - Whether NovaNoVNCProxy services should be deployed and managed. + If it is set to false then the related NovaNoVNCProxy CR will be deleted + if exists and owned by the NovaCell. If it exist but not owned by the NovaCell then the NovaNoVNCProxy will not be touched. If it is set to true the a NovaNoVNCProxy CR will be created. - If there is already a manually created NovaNoVNCProxy - CR with the relevant name then the cell will not try to - update that CR, instead the NovaCell be in error state - until the manually create NovaNoVNCProxy CR is deleted - by the operator. + If there is already a manually created NovaNoVNCProxy CR with the + relevant name then the cell will not try to update that CR, instead the + NovaCell be in error state until the manually create NovaNoVNCProxy CR + is deleted by the operator. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -846,134 +814,107 @@ spec: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of - the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -984,38 +925,32 @@ spec: 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). + 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 + 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. - "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' + "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 type: object @@ -1028,23 +963,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available + 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: @@ -1061,8 +1002,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1071,11 +1013,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -1095,13 +1037,11 @@ spec: type: string type: object vencrypt: - description: Vencrypt - cert secret containing the x509 - certificate to be presented to the VNC server. The - CommonName field should match the primary hostname - of the controller node. If using a HA deployment, - the Organization field can also be configured to a - value that is common across all console proxy instances - in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration + description: |- + Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. + The CommonName field should match the primary hostname of the controller node. If using a HA deployment, + the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. + https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration properties: secretName: description: SecretName - holding the cert, key @@ -1118,9 +1058,9 @@ spec: type: object novaComputeTemplates: additionalProperties: - description: NovaComputeTemplate defines the input parameters - specified by the user to create a NovaCompute via higher - level CRDs. + description: |- + NovaComputeTemplate defines the input parameters specified by the user to + create a NovaCompute via higher level CRDs. properties: computeDriver: description: ComputeDriver - defines which driver to use @@ -1130,11 +1070,10 @@ spec: - fake.FakeDriver type: string customServiceConfig: - description: CustomServiceConfig - customize the service - config using this parameter to change service defaults, - or overwrite rendered information using raw OpenStack - config format. The content gets added to to /etc//.conf.d - directory as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -1151,9 +1090,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes - running this service. Setting here overrides any global - NodeSelector settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -1164,25 +1103,30 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by - this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one - entry in pod.spec.resourceClaims of the Pod - where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1198,8 +1142,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1208,21 +1153,20 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object required: - computeDriver type: object - description: 'NovaComputeTemplates - map of nova computes template - with selected drivers in format compute_name: compute_template. - Key from map is arbitrary name for the compute with a limit - of 20 characters.' + description: |- + NovaComputeTemplates - map of nova computes template with selected drivers in format + compute_name: compute_template. Key from map is arbitrary name for the compute with + a limit of 20 characters. type: object required: - cellDatabaseAccount @@ -1237,11 +1181,11 @@ spec: cellDatabaseInstance: openstack-cell1 cellMessageBusInstance: rabbitmq-cell1 hasAPIAccess: true - description: Cells is a mapping of cell names to NovaCellTemplate - objects defining the cells in the deployment. The "cell0" cell is - a mandatory cell in every deployment. Moreover any real deployment - needs at least one additional normal cell as "cell0" cannot have - any computes. + description: |- + Cells is a mapping of cell names to NovaCellTemplate objects defining + the cells in the deployment. The "cell0" cell is a mandatory cell in + every deployment. Moreover any real deployment needs at least one + additional normal cell as "cell0" cannot have any computes. type: object computeContainerImageURL: description: NovaComputeContainerImageURL @@ -1251,8 +1195,9 @@ spec: type: string keystoneInstance: default: keystone - description: KeystoneInstance to name of the KeystoneAPI CR to select - the Service instance used by the Nova services to authenticate. + description: |- + KeystoneInstance to name of the KeystoneAPI CR to select the Service + instance used by the Nova services to authenticate. type: string memcachedInstance: default: memcached @@ -1265,17 +1210,17 @@ spec: metadataServiceTemplate: default: enabled: true - description: MetadataServiceTemplate - defines the metadata service - that is global for the deployment serving all the cells. Note that - if you want to deploy metadata per cell then the metadata service - should be disabled here and enabled in the cellTemplates instead. + description: |- + MetadataServiceTemplate - defines the metadata service that is global + for the deployment serving all the cells. Note that if you want to + deploy metadata per cell then the metadata service should be disabled + here and enabled in the cellTemplates instead. properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -1284,17 +1229,17 @@ spec: config files like e.g. api-paste.ini. type: object enabled: - description: Enabled - Whether NovaMetadata services should be - deployed and managed. If it is set to false then the related - NovaMetadata CR will be deleted if exists and owned by a higher - level nova CR (Nova or NovaCell). If it exist but not owned - by a higher level nova CR then the NovaMetadata CR will not - be touched. If it is set to true the a NovaMetadata CR will - be created. If there is already a manually created NovaMetadata - CR with the relevant name then this operator will not try to - update that CR, instead the higher level nova CR will be in - error state until the manually create NovaMetadata CR is deleted - manually. + description: |- + Enabled - Whether NovaMetadata services should be deployed and managed. + If it is set to false then the related NovaMetadata CR will be deleted + if exists and owned by a higher level nova CR (Nova or NovaCell). If it + exist but not owned by a higher level nova CR then the NovaMetadata CR + will not be touched. + If it is set to true the a NovaMetadata CR will be created. + If there is already a manually created NovaMetadata CR with the relevant + name then this operator will not try to update that CR, instead + the higher level nova CR will be in error state until the manually + create NovaMetadata CR is deleted manually. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -1305,136 +1250,121 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated manifest of several child resources. properties: service: - description: Override configuration for the Service created - to serve traffic to the cluster for internal communication. + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal + communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -1445,34 +1375,32 @@ spec: 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". + 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' + 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 type: object @@ -1485,23 +1413,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1517,8 +1451,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1527,11 +1462,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -1549,9 +1484,10 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting NodeSelector here acts as a default value - and can be overridden by service specific NodeSelector Settings. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting + NodeSelector here acts as a default value and can be overridden by service + specific NodeSelector Settings. type: object novncproxyContainerImageURL: description: NoVNCContainerImageURL @@ -1559,27 +1495,31 @@ spec: passwordSelectors: default: service: NovaPassword - description: PasswordSelectors - Selectors to identify the DB and - ServiceUser passwords from the Secret + description: |- + PasswordSelectors - Selectors to identify the DB and ServiceUser + passwords from the Secret properties: metadataSecret: default: MetadataSecret - description: MetadataSecret - the name of the field to get the - metadata secret from the Secret + description: |- + MetadataSecret - the name of the field to get the metadata secret from the + Secret type: string prefixMetadataCellsSecret: default: MetadataCellsSecret - description: prefixMetadataCellsSecret - the prefix name of the - field to get the metadata secret from the Secret for cells. - Vale of metadata_proxy_shared_secret information for the nova-metadata - service. This secret is shared between nova and neutron ovn-metadata - inside selected cell and if this is not defined the global metadata_proxy_shared_secret + description: |- + prefixMetadataCellsSecret - the prefix name of the field to get the metadata secret from the + Secret for cells. Vale of metadata_proxy_shared_secret + information for the nova-metadata service. This secret is shared + between nova and neutron ovn-metadata inside selected cell + and if this is not defined the global metadata_proxy_shared_secret secret will be used type: string service: default: NovaPassword - description: Service - Selector to get the keystone service user - password from the Secret + description: |- + Service - Selector to get the keystone service user password from the + Secret type: string type: object preserveJobs: @@ -1596,11 +1536,10 @@ spec: description: SchedulerServiceTemplate- define the nova-scheduler service properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -1611,9 +1550,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -1623,23 +1562,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1655,8 +1600,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1665,18 +1611,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for nova like the keystone service password - and DB passwords + description: |- + Secret is the name of the Secret instance containing password + information for nova like the keystone service password and DB passwords type: string serviceUser: default: nova @@ -1707,10 +1653,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -1722,14 +1668,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -1746,13 +1691,14 @@ spec: discoveredCells: additionalProperties: type: string - description: DiscoveredCells is a map keyed by cell names that have - discovered all kubernetes managed computes in cell value is a hash - of config from all kubernetes managed computes in cell + description: |- + DiscoveredCells is a map keyed by cell names that have discovered all kubernetes managed + computes in cell value is a hash of config from all kubernetes managed computes in cell type: object metadataServiceReadyCount: - description: MetadataReadyCount defines the number of replicas ready - from nova-metadata service + description: |- + MetadataReadyCount defines the number of replicas ready from + nova-metadata service format: int32 type: integer observedGeneration: @@ -1764,9 +1710,10 @@ spec: registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. type: object schedulerServiceReadyCount: description: SchedulerServiceReadyCount defines the number or replicas diff --git a/config/crd/bases/nova.openstack.org_novaapis.yaml b/config/crd/bases/nova.openstack.org_novaapis.yaml index 1d1c5cb4e..928487bcb 100644 --- a/config/crd/bases/nova.openstack.org_novaapis.yaml +++ b/config/crd/bases/nova.openstack.org_novaapis.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novaapis.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaAPI is the Schema for the novaapis API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -71,11 +75,10 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -84,13 +87,15 @@ spec: config files like e.g. api-paste.ini or policy.yaml. type: object keystoneAuthURL: - description: KeystoneAuthURL configures the keystone API endpoint - to be used by the service for authentication and authorization + description: |- + KeystoneAuthURL configures the keystone API endpoint to be used + by the service for authentication and authorization type: string keystonePublicAuthURL: - description: KeystonePublicAuthURL configures the public keystone - API endpoint. This can be different from KeystoneAuthURL. The service - uses this value to redirect unauthenticated users. + description: |- + KeystonePublicAuthURL configures the public keystone API endpoint. This + can be different from KeystoneAuthURL. The service uses this value + to redirect unauthenticated users. type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -114,128 +119,114 @@ spec: properties: service: additionalProperties: - description: RoutedOverrideSpec - a routed service override - configuration for the Service created to serve traffic to - the cluster. Allows for the manifest of the created Service - to be overwritten with custom configuration. + description: |- + RoutedOverrideSpec - a routed service override configuration for the Service created to serve traffic + to the cluster. Allows for the manifest of the created Service to be overwritten with custom configuration. properties: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded subset - of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. They - are not queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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. + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -246,50 +237,50 @@ spec: 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). + 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' + 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 type: object - description: Override configuration for the Service created to - serve traffic to the cluster. The key must be the endpoint type - (public, internal) + description: |- + Override configuration for the Service created to serve traffic to the cluster. + The key must be the endpoint type (public, internal) type: object type: object registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. This is used to detect when a new - cell is added or an existing cell is reconfigured to trigger refresh - of the in memory cell caches of the service. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. + This is used to detect when a new cell is added or an existing cell is + reconfigured to trigger refresh of the in memory cell caches of the + service. type: object replicas: default: 1 @@ -299,22 +290,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -330,8 +328,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -340,18 +339,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-api service. This secret is expected - to be generated by the nova-operator based on the information passed - to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-api service. This secret is expected to be + generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -359,8 +359,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -412,10 +413,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -427,14 +428,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -461,11 +461,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/config/crd/bases/nova.openstack.org_novacells.yaml b/config/crd/bases/nova.openstack.org_novacells.yaml index 996b48ea3..59223fdd2 100644 --- a/config/crd/bases/nova.openstack.org_novacells.yaml +++ b/config/crd/bases/nova.openstack.org_novacells.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novacells.nova.openstack.org spec: group: nova.openstack.org @@ -21,14 +20,19 @@ spec: description: NovaCell is the Schema for the novacells API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -41,10 +45,11 @@ spec: the API DB type: string apiDatabaseHostname: - description: 'APIDatabaseHostname - hostname to use when accessing - the API DB. If not provided then up-calls will be disabled. This - filed is Required for cell0. TODO(gibi): Add a webhook to validate - cell0 constraint' + description: |- + APIDatabaseHostname - hostname to use when accessing the API DB. If not + provided then up-calls will be disabled. This filed is Required for + cell0. + TODO(gibi): Add a webhook to validate cell0 constraint type: string cellDatabaseAccount: default: nova @@ -56,10 +61,11 @@ spec: the cell DB type: string cellName: - description: CellName is the name of the Nova Cell. The value "cell0" - has a special meaning. The "cell0" Cell cannot have compute nodes - associated and the conductor in this cell acts as the super conductor - for all the cells in the deployment. + description: |- + CellName is the name of the Nova Cell. The value "cell0" has a special + meaning. The "cell0" Cell cannot have compute nodes associated and the + conductor in this cell acts as the super conductor for all the cells in + the deployment. type: string computeContainerImageURL: description: NovaComputeContainerImageURL @@ -72,11 +78,10 @@ spec: deployment for the cell properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -87,9 +92,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -99,23 +104,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -131,8 +142,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -141,11 +153,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object type: object @@ -155,25 +167,29 @@ spec: properties: archiveAge: default: 30 - description: ArchiveAge defines the minimum age of the records - in days that can be moved to the shadow tables. + description: |- + ArchiveAge defines the minimum age of the records in days that can be + moved to the shadow tables. minimum: 1 type: integer purgeAge: default: 90 - description: PurgeAge defines the minimum age of the records in - days that can be deleted from the shadow tables + description: |- + PurgeAge defines the minimum age of the records in days that can be + deleted from the shadow tables minimum: 1 type: integer schedule: default: 0 0 * * * - description: Schedule defines when to run the DB maintenance job - in a cron format. By default it runs every midnight. + description: |- + Schedule defines when to run the DB maintenance job in a cron format. + By default it runs every midnight. type: string type: object keystoneAuthURL: - description: KeystoneAuthURL - the URL that the service in the cell - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the service in the cell can use to talk + to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -187,11 +203,10 @@ spec: dedicated for the cell. properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -200,17 +215,17 @@ spec: config files like e.g. api-paste.ini. type: object enabled: - description: Enabled - Whether NovaMetadata services should be - deployed and managed. If it is set to false then the related - NovaMetadata CR will be deleted if exists and owned by a higher - level nova CR (Nova or NovaCell). If it exist but not owned - by a higher level nova CR then the NovaMetadata CR will not - be touched. If it is set to true the a NovaMetadata CR will - be created. If there is already a manually created NovaMetadata - CR with the relevant name then this operator will not try to - update that CR, instead the higher level nova CR will be in - error state until the manually create NovaMetadata CR is deleted - manually. + description: |- + Enabled - Whether NovaMetadata services should be deployed and managed. + If it is set to false then the related NovaMetadata CR will be deleted + if exists and owned by a higher level nova CR (Nova or NovaCell). If it + exist but not owned by a higher level nova CR then the NovaMetadata CR + will not be touched. + If it is set to true the a NovaMetadata CR will be created. + If there is already a manually created NovaMetadata CR with the relevant + name then this operator will not try to update that CR, instead + the higher level nova CR will be in error state until the manually + create NovaMetadata CR is deleted manually. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -221,136 +236,121 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object override: description: Override, provides the ability to override the generated manifest of several child resources. properties: service: - description: Override configuration for the Service created - to serve traffic to the cluster for internal communication. + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal + communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -361,34 +361,32 @@ spec: 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". + 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' + 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 type: object @@ -401,23 +399,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -433,8 +437,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -443,11 +448,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -463,27 +468,27 @@ spec: type: object type: object noVNCProxyServiceTemplate: - description: NoVNCProxyServiceTemplate - defines the novncproxy service - dedicated for the cell. + description: |- + NoVNCProxyServiceTemplate - defines the novncproxy service dedicated for + the cell. properties: customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string enabled: - description: Enabled - Whether NovaNoVNCProxy services should - be deployed and managed. If it is set to false then the related - NovaNoVNCProxy CR will be deleted if exists and owned by the - NovaCell. If it exist but not owned by the NovaCell then the - NovaNoVNCProxy will not be touched. If it is set to true the - a NovaNoVNCProxy CR will be created. If there is already a manually - created NovaNoVNCProxy CR with the relevant name then the cell - will not try to update that CR, instead the NovaCell be in error - state until the manually create NovaNoVNCProxy CR is deleted - by the operator. + description: |- + Enabled - Whether NovaNoVNCProxy services should be deployed and managed. + If it is set to false then the related NovaNoVNCProxy CR will be deleted + if exists and owned by the NovaCell. If it exist but not owned by the + NovaCell then the NovaNoVNCProxy will not be touched. + If it is set to true the a NovaNoVNCProxy CR will be created. + If there is already a manually created NovaNoVNCProxy CR with the + relevant name then the cell will not try to update that CR, instead the + NovaCell be in error state until the manually create NovaNoVNCProxy CR + is deleted by the operator. type: boolean networkAttachments: description: NetworkAttachments is a list of NetworkAttachment @@ -508,123 +513,107 @@ spec: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded - subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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). + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -635,34 +624,32 @@ spec: 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". + 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' + 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 type: object @@ -675,23 +662,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a - container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -707,8 +700,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -717,11 +711,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object tls: @@ -741,12 +735,11 @@ spec: type: string type: object vencrypt: - description: Vencrypt - cert secret containing the x509 certificate - to be presented to the VNC server. The CommonName field - should match the primary hostname of the controller node. - If using a HA deployment, the Organization field can also - be configured to a value that is common across all console - proxy instances in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration + description: |- + Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. + The CommonName field should match the primary hostname of the controller node. If using a HA deployment, + the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. + https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration properties: secretName: description: SecretName - holding the cert, key for the @@ -763,8 +756,9 @@ spec: type: object novaComputeTemplates: additionalProperties: - description: NovaComputeTemplate defines the input parameters specified - by the user to create a NovaCompute via higher level CRDs. + description: |- + NovaComputeTemplate defines the input parameters specified by the user to + create a NovaCompute via higher level CRDs. properties: computeDriver: description: ComputeDriver - defines which driver to use for @@ -774,11 +768,10 @@ spec: - fake.FakeDriver type: string customServiceConfig: - description: CustomServiceConfig - customize the service config - using this parameter to change service defaults, or overwrite - rendered information using raw OpenStack config format. The - content gets added to to /etc//.conf.d directory - as custom.conf file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -795,9 +788,9 @@ spec: nodeSelector: additionalProperties: type: string - description: NodeSelector to target subset of worker nodes running - this service. Setting here overrides any global NodeSelector - settings within the Nova CR. + description: |- + NodeSelector to target subset of worker nodes running this service. Setting here overrides + any global NodeSelector settings within the Nova CR. type: object replicas: default: 1 @@ -808,22 +801,28 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this - service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where this - field is used. It makes that resource available + 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: @@ -840,8 +839,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -850,20 +850,20 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests - cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object required: - computeDriver type: object - description: 'NovaComputeTemplates - map of nova computes template - with selected drivers in format compute_name: compute_template. - Key from map is arbitrary name for the compute. because of that - there is a 20 character limit on the compute name.' + description: |- + NovaComputeTemplates - map of nova computes template with selected drivers in format + compute_name: compute_template. Key from map is arbitrary name for the compute. + because of that there is a 20 character limit on the compute name. type: object novncproxyContainerImageURL: description: NoVNCContainerImageURL @@ -874,10 +874,11 @@ spec: e.g. to check logs type: boolean secret: - description: Secret is the name of the Secret instance containing - password information for the nova cell. This secret is expected - to be generated by the nova-operator based on the information passed - to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova cell. This secret is expected to be + generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -885,8 +886,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -920,10 +922,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -935,14 +937,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -957,25 +958,29 @@ spec: type: object type: array conductorServiceReadyCount: - description: ConductorServiceReadyCount defines the number of replicas - ready from nova-conductor service in the cell + description: |- + ConductorServiceReadyCount defines the number of replicas ready from + nova-conductor service in the cell format: int32 type: integer hash: additionalProperties: type: string - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file Map of hashes to track e.g. job status' + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + Map of hashes to track e.g. job status type: object metadataServiceReadyCount: - description: MetadataServiceReadyCount defines the number of replicas - ready from nova-metadata service in the cell + description: |- + MetadataServiceReadyCount defines the number of replicas ready from + nova-metadata service in the cell format: int32 type: integer noVNCProxyServiceReadyCount: - description: NoVNCPRoxyServiceReadyCount defines the number of replicas - ready from nova-novncproxy service in the cell + description: |- + NoVNCPRoxyServiceReadyCount defines the number of replicas ready from + nova-novncproxy service in the cell format: int32 type: integer novaComputesStatus: @@ -996,19 +1001,20 @@ spec: - deployed - errors type: object - description: 'NovaComputesStatus is a map with format cell_name: NovaComputeCellStatus - where NovaComputeCellStatus tell if compute with selected name deployed - successfully and indicates if the compute is successfully mapped - to the cell in the nova_api database. When a compute is removed - from the Spec the operator will delete the related NovaCompute CR - and then remove the compute from this Status field.' + description: |- + NovaComputesStatus is a map with format cell_name: NovaComputeCellStatus + where NovaComputeCellStatus tell if compute with selected name deployed successfully + and indicates if the compute is successfully mapped to the cell in + the nova_api database. + When a compute is removed from the Spec the operator will delete the + related NovaCompute CR and then remove the compute from this Status field. type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer type: object diff --git a/config/crd/bases/nova.openstack.org_novacomputes.yaml b/config/crd/bases/nova.openstack.org_novacomputes.yaml index 1bf4096a8..626ee0ec3 100644 --- a/config/crd/bases/nova.openstack.org_novacomputes.yaml +++ b/config/crd/bases/nova.openstack.org_novacomputes.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novacomputes.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaCompute is the Schema for the NovaCompute properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -67,11 +71,10 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -101,22 +104,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -132,8 +142,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -142,18 +153,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the NovaCompute service. This secret is - expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the NovaCompute service. This secret is expected to be + generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -161,8 +173,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -190,10 +203,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -205,14 +218,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -239,11 +251,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/config/crd/bases/nova.openstack.org_novaconductors.yaml b/config/crd/bases/nova.openstack.org_novaconductors.yaml index 6abfbabbe..f4c7a225b 100644 --- a/config/crd/bases/nova.openstack.org_novaconductors.yaml +++ b/config/crd/bases/nova.openstack.org_novaconductors.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novaconductors.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaConductor is the Schema for the novaconductors API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -54,10 +58,11 @@ spec: the API DB type: string apiDatabaseHostname: - description: 'APIDatabaseHostname - hostname to use when accessing - the API DB. If not provided then up-calls will be disabled. This - filed is Required for cell0. TODO(gibi): Add a webhook to validate - cell0 constraint' + description: |- + APIDatabaseHostname - hostname to use when accessing the API DB. If not + provided then up-calls will be disabled. This filed is Required for + cell0. + TODO(gibi): Add a webhook to validate cell0 constraint type: string cellDatabaseAccount: default: nova @@ -65,8 +70,9 @@ spec: the cell DB type: string cellDatabaseHostname: - description: 'NOTE(gibi): This should be Required, see notes in KeystoneAuthURL - CellDatabaseHostname - hostname to use when accessing the cell DB' + description: |- + NOTE(gibi): This should be Required, see notes in KeystoneAuthURL + CellDatabaseHostname - hostname to use when accessing the cell DB type: string cellName: description: CellName is the name of the Nova Cell this conductor @@ -77,11 +83,10 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string dbPurge: description: DBPurge defines the parameters for the DB archiving and @@ -89,25 +94,29 @@ spec: properties: archiveAge: default: 30 - description: ArchiveAge defines the minimum age of the records - in days that can be moved to the shadow tables. + description: |- + ArchiveAge defines the minimum age of the records in days that can be + moved to the shadow tables. minimum: 1 type: integer purgeAge: default: 90 - description: PurgeAge defines the minimum age of the records in - days that can be deleted from the shadow tables + description: |- + PurgeAge defines the minimum age of the records in days that can be + deleted from the shadow tables minimum: 1 type: integer schedule: default: 0 0 * * * - description: Schedule defines when to run the DB maintenance job - in a cron format. By default it runs every midnight. + description: |- + Schedule defines when to run the DB maintenance job in a cron format. + By default it runs every midnight. type: string type: object keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-conductor service - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the nova-conductor service can use to + talk to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -138,22 +147,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -169,8 +185,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -179,18 +196,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-conductor service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-conductor service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -198,8 +216,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -226,10 +245,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -241,14 +260,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -275,11 +293,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/config/crd/bases/nova.openstack.org_novametadata.yaml b/config/crd/bases/nova.openstack.org_novametadata.yaml index 1ac0ce9c4..ba9e7c6a6 100644 --- a/config/crd/bases/nova.openstack.org_novametadata.yaml +++ b/config/crd/bases/nova.openstack.org_novametadata.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novametadata.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaMetadata is the Schema for the novametadata API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -54,9 +58,10 @@ spec: the API DB type: string apiDatabaseHostname: - description: 'APIDatabaseHostname - hostname to use when accessing - the API DB. This filed is Required if the CellName is not provided - TODO(gibi): Add a webhook to validate the CellName constraint' + description: |- + APIDatabaseHostname - hostname to use when accessing the API DB. + This filed is Required if the CellName is not provided + TODO(gibi): Add a webhook to validate the CellName constraint type: string cellDatabaseAccount: default: nova @@ -64,26 +69,26 @@ spec: the cell DB type: string cellDatabaseHostname: - description: 'CellDatabaseHostname - hostname to use when accessing - the cell DB This is unused if CellName is not provided. But if it - is provided then CellDatabaseHostName is also Required. TODO(gibi): - add webhook to validate this CellName constraint' + description: |- + CellDatabaseHostname - hostname to use when accessing the cell DB + This is unused if CellName is not provided. But if it is provided then + CellDatabaseHostName is also Required. + TODO(gibi): add webhook to validate this CellName constraint type: string cellName: - description: CellName is the name of the Nova Cell this metadata service - belongs to. If not provided then the metadata serving every cells - in the deployment + description: |- + CellName is the name of the Nova Cell this metadata service belongs to. + If not provided then the metadata serving every cells in the deployment type: string containerImage: description: The service specific Container Image URL (will be set to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string defaultConfigOverwrite: additionalProperties: @@ -92,9 +97,10 @@ spec: config files like e.g. api-paste.ini. type: object keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-metadata service - can use to talk to keystone TODO(ksambor) Add checking if dynamic - vendor data is configured + description: |- + KeystoneAuthURL - the URL that the nova-metadata service can use to talk + to keystone + TODO(ksambor) Add checking if dynamic vendor data is configured type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -117,124 +123,112 @@ spec: manifest of several child resources. properties: service: - description: Override configuration for the Service created to - serve traffic to the cluster for internal communication. + description: |- + Override configuration for the Service created to serve traffic to the cluster for internal + communication. properties: metadata: - description: EmbeddedLabelsAnnotations is an embedded subset - of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. They - are not queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be - used to organize and categorize (scope and select) objects. - May match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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 + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -245,33 +239,32 @@ spec: 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). + 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' + 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 type: object @@ -279,12 +272,14 @@ spec: registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. This is used to detect when a new - cell is added or an existing cell is reconfigured to trigger refresh - of the in memory cell caches of the service. This is empty for the - case when nova-metadata runs within the cell. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. + This is used to detect when a new cell is added or an existing cell is + reconfigured to trigger refresh of the in memory cell caches of the + service. + This is empty for the case when nova-metadata runs within the cell. type: object replicas: default: 1 @@ -294,22 +289,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -325,8 +327,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -335,18 +338,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-conductor service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-conductor service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -354,8 +358,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -384,10 +389,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -399,14 +404,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -433,11 +437,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/config/crd/bases/nova.openstack.org_novanovncproxies.yaml b/config/crd/bases/nova.openstack.org_novanovncproxies.yaml index 4090dd6eb..88f0ddb07 100644 --- a/config/crd/bases/nova.openstack.org_novanovncproxies.yaml +++ b/config/crd/bases/nova.openstack.org_novanovncproxies.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novanovncproxies.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaNoVNCProxy is the Schema for the novanovncproxies API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -66,15 +70,15 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-novncproxy service - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the nova-novncproxy service can use to + talk to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -103,120 +107,107 @@ spec: endpointURL: type: string metadata: - description: EmbeddedLabelsAnnotations is an embedded subset - of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. + description: |- + EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. They - are not queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be - used to organize and categorize (scope and select) objects. - May match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: OverrideServiceSpec is a subset of the fields - included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec - Limited to Type, SessionAffinity, LoadBalancerSourceRanges, - ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, + description: |- + OverrideServiceSpec is a subset of the fields included in https://pkg.go.dev/k8s.io/api@v0.26.6/core/v1#ServiceSpec + Limited to Type, SessionAffinity, LoadBalancerSourceRanges, ExternalName, ExternalTrafficPolicy, SessionAffinityConfig, IPFamilyPolicy, LoadBalancerClass and InternalTrafficPolicy properties: 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". + 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 + 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 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 + 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 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. + 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. + 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 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/' + 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 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' + 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 @@ -227,33 +218,32 @@ spec: 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). + 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' + 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 type: object @@ -266,22 +256,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -297,8 +294,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -307,18 +305,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-novncproxy service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-novncproxy service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -326,8 +325,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -345,12 +345,11 @@ spec: type: string type: object vencrypt: - description: Vencrypt - cert secret containing the x509 certificate - to be presented to the VNC server. The CommonName field should - match the primary hostname of the controller node. If using - a HA deployment, the Organization field can also be configured - to a value that is common across all console proxy instances - in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration + description: |- + Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. + The CommonName field should match the primary hostname of the controller node. If using a HA deployment, + the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. + https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration properties: secretName: description: SecretName - holding the cert, key for the service @@ -375,10 +374,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -390,14 +389,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -424,11 +422,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/config/crd/bases/nova.openstack.org_novaschedulers.yaml b/config/crd/bases/nova.openstack.org_novaschedulers.yaml index 206d1e763..813031300 100644 --- a/config/crd/bases/nova.openstack.org_novaschedulers.yaml +++ b/config/crd/bases/nova.openstack.org_novaschedulers.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: novaschedulers.nova.openstack.org spec: group: nova.openstack.org @@ -34,14 +33,19 @@ spec: description: NovaScheduler is the Schema for the novaschedulers API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -71,15 +75,15 @@ spec: to environmental default if empty) type: string customServiceConfig: - description: CustomServiceConfig - customize the service config using - this parameter to change service defaults, or overwrite rendered - information using raw OpenStack config format. The content gets - added to to /etc//.conf.d directory as custom.conf - file. + description: |- + CustomServiceConfig - customize the service config using this parameter to change service defaults, + or overwrite rendered information using raw OpenStack config format. The content gets added to + to /etc//.conf.d directory as custom.conf file. type: string keystoneAuthURL: - description: KeystoneAuthURL - the URL that the nova-scheduler service - can use to talk to keystone + description: |- + KeystoneAuthURL - the URL that the nova-scheduler service can use to + talk to keystone type: string memcachedInstance: description: MemcachedInstance is the name of the Memcached CR that @@ -100,11 +104,13 @@ spec: registeredCells: additionalProperties: type: string - description: RegisteredCells is a map keyed by cell names that are - registered in the nova_api database with a value that is the hash - of the given cell configuration. This is used to detect when a new - cell is added or an existing cell is reconfigured to trigger refresh - of the in memory cell caches of the service. + description: |- + RegisteredCells is a map keyed by cell names that are registered in the + nova_api database with a value that is the hash of the given cell + configuration. + This is used to detect when a new cell is added or an existing cell is + reconfigured to trigger refresh of the in memory cell caches of the + service. type: object replicas: default: 1 @@ -114,22 +120,29 @@ spec: minimum: 0 type: integer resources: - description: Resources - Compute Resources required by this service - (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + description: |- + Resources - Compute Resources required by this service (Limits/Requests). + 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -145,8 +158,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -155,18 +169,19 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secret: - description: Secret is the name of the Secret instance containing - password information for the nova-scheduler service. This secret - is expected to be generated by the nova-operator based on the information - passed to the Nova CR. + description: |- + Secret is the name of the Secret instance containing password + information for the nova-scheduler service. This secret is expected to + be generated by the nova-operator based on the information passed to the + Nova CR. type: string serviceAccount: description: ServiceAccount - service account name used internally @@ -174,8 +189,9 @@ spec: type: string serviceUser: default: nova - description: ServiceUser - optional username used for this service - to register in keystone + description: |- + ServiceUser - optional username used for this service to register in + keystone type: string tls: description: TLS - Parameters related to the TLS @@ -204,10 +220,10 @@ spec: operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status - to another. This should be when the underlying condition changed. - If that is not known, then using the time when the API field - changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: @@ -219,14 +235,13 @@ spec: in CamelCase. type: string severity: - description: Severity provides a classification of Reason code, - so the current situation is immediately understandable and - could act accordingly. It is meant for situations where Status=False - and it should be indicated if it is just informational, warning - (next reconciliation might fix it) or an error (e.g. DB create - issue and no actions to automatically resolve the issue can/should - be done). For conditions where Status=Unknown or Status=True - the Severity should be SeverityNone. + description: |- + Severity provides a classification of Reason code, so the current situation is immediately + understandable and could act accordingly. + It is meant for situations where Status=False and it should be indicated if it is just + informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue + and no actions to automatically resolve the issue can/should be done). + For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. @@ -243,9 +258,10 @@ spec: hash: additionalProperties: type: string - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file Map of hashes to track e.g. job status' + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + Map of hashes to track e.g. job status type: object networkAttachments: additionalProperties: @@ -255,11 +271,11 @@ spec: description: NetworkAttachments status of the deployment pods type: object observedGeneration: - description: ObservedGeneration - the most recent generation observed - for this service. If the observed generation is less than the spec - generation, then the controller has not processed the latest changes - injected by the opentack-operator in the top-level CR (e.g. the - ContainerImage) + description: |- + ObservedGeneration - the most recent generation observed for this + service. If the observed generation is less than the spec generation, + then the controller has not processed the latest changes injected by + the opentack-operator in the top-level CR (e.g. the ContainerImage) format: int64 type: integer readyCount: diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 93d461364..9fe774742 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -2,7 +2,6 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - creationTimestamp: null name: manager-role rules: - apiGroups: diff --git a/config/webhook/manifests.yaml b/config/webhook/manifests.yaml index babd413d4..ac5f1acc1 100644 --- a/config/webhook/manifests.yaml +++ b/config/webhook/manifests.yaml @@ -2,7 +2,6 @@ apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: - creationTimestamp: null name: mutating-webhook-configuration webhooks: - admissionReviewVersions: @@ -169,7 +168,6 @@ webhooks: apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: - creationTimestamp: null name: validating-webhook-configuration webhooks: - admissionReviewVersions: