diff --git a/pkg/templates/charts/toggle/assisted-service/templates/infrastructure-operator.yaml b/pkg/templates/charts/toggle/assisted-service/templates/infrastructure-operator.yaml index d2c238241..7279210bf 100644 --- a/pkg/templates/charts/toggle/assisted-service/templates/infrastructure-operator.yaml +++ b/pkg/templates/charts/toggle/assisted-service/templates/infrastructure-operator.yaml @@ -62,7 +62,7 @@ spec: - name: INSTALLER_IMAGE value: '{{ .Values.global.imageOverrides.assisted_installer }}' - name: OS_IMAGES - value: '[{"openshift_version":"4.9","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.9/4.9.45/rhcos-4.9.45-x86_64-live.x86_64.iso","version":"49.84.202207192205-0"},{"openshift_version":"4.10","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.37/rhcos-4.10.37-x86_64-live.x86_64.iso","version":"410.84.202210040010-0"},{"openshift_version":"4.10","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.10/4.10.37/rhcos-4.10.37-aarch64-live.aarch64.iso","version":"410.84.202210040011-0"},{"openshift_version":"4.11","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-x86_64-live.x86_64.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.11","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-aarch64-live.aarch64.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.11","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-s390x-live.s390x.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.11","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-ppc64le-live.ppc64le.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.12","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-x86_64-live.x86_64.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.12","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-aarch64-live.aarch64.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.12","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-s390x-live.s390x.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.12","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-ppc64le-live.ppc64le.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.13","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-x86_64-live.x86_64.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.13","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-aarch64-live.aarch64.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.13","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-ppc64le-live.ppc64le.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.13","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-s390x-live.s390x.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.14","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-x86_64-live.x86_64.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.14","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-aarch64-live.aarch64.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.14","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-ppc64le-live.ppc64le.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.14","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-s390x-live.s390x.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.15","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-x86_64-live.x86_64.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.15","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-aarch64-live.aarch64.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.15","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-ppc64le-live.ppc64le.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.15","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-s390x-live.s390x.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.16","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/pre-release/4.16.0-ec.4/rhcos-4.16.0-ec.4-x86_64-live.x86_64.iso","version":"416.94.202403071059-0"},{"openshift_version":"4.16","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-aarch64-live.aarch64.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.16","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-ppc64le-live.ppc64le.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.16","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-s390x-live.s390x.iso","version":"415.92.202402130021-0"}]' + value: '[{"openshift_version":"4.9","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.9/4.9.45/rhcos-4.9.45-x86_64-live.x86_64.iso","version":"49.84.202207192205-0"},{"openshift_version":"4.10","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.37/rhcos-4.10.37-x86_64-live.x86_64.iso","version":"410.84.202210040010-0"},{"openshift_version":"4.10","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.10/4.10.37/rhcos-4.10.37-aarch64-live.aarch64.iso","version":"410.84.202210040011-0"},{"openshift_version":"4.11","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-x86_64-live.x86_64.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.11","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-aarch64-live.aarch64.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.11","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-s390x-live.s390x.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.11","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.11/4.11.48/rhcos-4.11.48-ppc64le-live.ppc64le.iso","version":"411.86.202308081056-0"},{"openshift_version":"4.12","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-x86_64-live.x86_64.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.12","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-aarch64-live.aarch64.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.12","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-s390x-live.s390x.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.12","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.12/4.12.30/rhcos-4.12.30-ppc64le-live.ppc64le.iso","version":"412.86.202308081039-0"},{"openshift_version":"4.13","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-x86_64-live.x86_64.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.13","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-aarch64-live.aarch64.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.13","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-ppc64le-live.ppc64le.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.13","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.13/4.13.10/rhcos-4.13.10-s390x-live.s390x.iso","version":"413.92.202307260246-0"},{"openshift_version":"4.14","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-x86_64-live.x86_64.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.14","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-aarch64-live.aarch64.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.14","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-ppc64le-live.ppc64le.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.14","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.14/4.14.15/rhcos-4.14.15-s390x-live.s390x.iso","version":"414.92.202402130420-0"},{"openshift_version":"4.15","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-x86_64-live.x86_64.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.15","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-aarch64-live.aarch64.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.15","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-ppc64le-live.ppc64le.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.15","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-s390x-live.s390x.iso","version":"415.92.202402130021-0"},{"openshift_version":"4.16","cpu_architecture":"x86_64","url":"https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/pre-release/4.16.0-ec.4/rhcos-4.16.0-ec.4-x86_64-live.x86_64.iso","version":"416.94.202403071059-0"},{"openshift_version":"4.16","cpu_architecture":"arm64","url":"https://mirror.openshift.com/pub/openshift-v4/aarch64/dependencies/rhcos/pre-release/4.16.0-ec.5/rhcos-4.16.0-ec.5-aarch64-live.aarch64.iso","version":"416.94.202403071059-0"},{"openshift_version":"4.16","cpu_architecture":"ppc64le","url":"https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/pre-release/4.16.0-ec.5/rhcos-4.16.0-ec.5-ppc64le-live.ppc64le.iso","version":"416.94.202403071059-0"},{"openshift_version":"4.16","cpu_architecture":"s390x","url":"https://mirror.openshift.com/pub/openshift-v4/s390x/dependencies/rhcos/pre-release/4.16.0-ec.5/rhcos-4.16.0-ec.5-s390x-live.s390x.iso","version":"416.94.202403071059-0"}]' - name: SERVICE_ACCOUNT_NAME valueFrom: fieldRef: diff --git a/pkg/templates/crds/assisted-service/agent-install.openshift.io_agentserviceconfigs.yaml b/pkg/templates/crds/assisted-service/agent-install.openshift.io_agentserviceconfigs.yaml index 81d3b0679..13e5a39b3 100644 --- a/pkg/templates/crds/assisted-service/agent-install.openshift.io_agentserviceconfigs.yaml +++ b/pkg/templates/crds/assisted-service/agent-install.openshift.io_agentserviceconfigs.yaml @@ -75,9 +75,11 @@ spec: * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified - data source. If the AnyVolumeDataSource feature gate is enabled, - this field will always have the same contents as the DataSourceRef - field.' + data source. When the AnyVolumeDataSource feature gate is enabled, + dataSource contents will be copied to dataSourceRef, and dataSourceRef + contents will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then dataSourceRef + will not be copied to dataSource.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -98,23 +100,29 @@ spec: dataSourceRef: description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. - This may be any local object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator - or dynamic provisioner. This field will replace the functionality - of the DataSource field and as such if both fields are non-empty, + This may be any object from a non-empty API group (non core + object) or a PersistentVolumeClaim object. When this field is + specified, volume binding will only succeed if the type of the + specified object matches some installed volume populator or + dynamic provisioner. This field will replace the functionality + of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, - both fields (DataSource and DataSourceRef) will be set to the - same value automatically if one of them is empty and the other - is non-empty. There are two important differences between DataSource - and DataSourceRef: * While DataSource only allows two specific - types of objects, DataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves - all values, and generates an error if a disallowed value is specified. - (Beta) Using this field requires the AnyVolumeDataSource feature - gate to be enabled.' + when namespace isn''t specified in dataSourceRef, both fields + (dataSource and dataSourceRef) will be set to the same value + automatically if one of them is empty and the other is non-empty. + When namespace is specified in dataSourceRef, dataSource isn''t + set to the same value and must be empty. There are three important + differences between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef allows + any non-core object, as well as PersistentVolumeClaim objects. + * While dataSource ignores disallowed values (dropping them), + dataSourceRef preserves all values, and generates an error + if a disallowed value is specified. * While dataSource only + allows local objects, dataSourceRef allows objects in any + namespaces. (Beta) Using this field requires the AnyVolumeDataSource + feature gate to be enabled. (Alpha) Using the namespace field + of dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -128,6 +136,14 @@ spec: name: description: Name is the name of resource being referenced type: string + namespace: + description: Namespace is the namespace of resource being + referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant + object is required in the referent namespace to allow that + namespace's owner to accept the reference. See the ReferenceGrant + documentation for details. (Alpha) This field requires the + CrossNamespaceVolumeDataSource feature gate to be enabled. + type: string required: - kind - name @@ -159,7 +175,8 @@ spec: description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + to an implementation-defined value. Requests cannot exceed + Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: @@ -211,6 +228,24 @@ spec: description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string + volumeAttributesClassName: + description: 'volumeAttributesClassName may be used to set the + VolumeAttributesClass used by this claim. If specified, the + CSI driver will create or update the volume with the attributes + defined in the corresponding VolumeAttributesClass. This has + a different purpose than storageClassName, it can be changed + after the claim is created. An empty string value means that + no VolumeAttributesClass will be applied to the claim but it''s + not allowed to reset this field to empty string once it is set. + If unspecified and the PersistentVolumeClaim is unbound, the + default VolumeAttributesClass will be set by the persistentvolume + controller if it exists. If the resource referred to by volumeAttributesClass + does not exist, this PersistentVolumeClaim will be set to a + Pending state, as reflected by the modifyVolumeStatus field, + until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + (Alpha) Using this field requires the VolumeAttributesClass + feature gate to be enabled.' + type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included @@ -241,9 +276,11 @@ spec: * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified - data source. If the AnyVolumeDataSource feature gate is enabled, - this field will always have the same contents as the DataSourceRef - field.' + data source. When the AnyVolumeDataSource feature gate is enabled, + dataSource contents will be copied to dataSourceRef, and dataSourceRef + contents will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then dataSourceRef + will not be copied to dataSource.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -264,23 +301,29 @@ spec: dataSourceRef: description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. - This may be any local object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator - or dynamic provisioner. This field will replace the functionality - of the DataSource field and as such if both fields are non-empty, + This may be any object from a non-empty API group (non core + object) or a PersistentVolumeClaim object. When this field is + specified, volume binding will only succeed if the type of the + specified object matches some installed volume populator or + dynamic provisioner. This field will replace the functionality + of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, - both fields (DataSource and DataSourceRef) will be set to the - same value automatically if one of them is empty and the other - is non-empty. There are two important differences between DataSource - and DataSourceRef: * While DataSource only allows two specific - types of objects, DataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves - all values, and generates an error if a disallowed value is specified. - (Beta) Using this field requires the AnyVolumeDataSource feature - gate to be enabled.' + when namespace isn''t specified in dataSourceRef, both fields + (dataSource and dataSourceRef) will be set to the same value + automatically if one of them is empty and the other is non-empty. + When namespace is specified in dataSourceRef, dataSource isn''t + set to the same value and must be empty. There are three important + differences between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef allows + any non-core object, as well as PersistentVolumeClaim objects. + * While dataSource ignores disallowed values (dropping them), + dataSourceRef preserves all values, and generates an error + if a disallowed value is specified. * While dataSource only + allows local objects, dataSourceRef allows objects in any + namespaces. (Beta) Using this field requires the AnyVolumeDataSource + feature gate to be enabled. (Alpha) Using the namespace field + of dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -294,6 +337,14 @@ spec: name: description: Name is the name of resource being referenced type: string + namespace: + description: Namespace is the namespace of resource being + referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant + object is required in the referent namespace to allow that + namespace's owner to accept the reference. See the ReferenceGrant + documentation for details. (Alpha) This field requires the + CrossNamespaceVolumeDataSource feature gate to be enabled. + type: string required: - kind - name @@ -325,7 +376,8 @@ spec: description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + to an implementation-defined value. Requests cannot exceed + Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: @@ -377,6 +429,24 @@ spec: description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string + volumeAttributesClassName: + description: 'volumeAttributesClassName may be used to set the + VolumeAttributesClass used by this claim. If specified, the + CSI driver will create or update the volume with the attributes + defined in the corresponding VolumeAttributesClass. This has + a different purpose than storageClassName, it can be changed + after the claim is created. An empty string value means that + no VolumeAttributesClass will be applied to the claim but it''s + not allowed to reset this field to empty string once it is set. + If unspecified and the PersistentVolumeClaim is unbound, the + default VolumeAttributesClass will be set by the persistentvolume + controller if it exists. If the resource referred to by volumeAttributesClass + does not exist, this PersistentVolumeClaim will be set to a + Pending state, as reflected by the modifyVolumeStatus field, + until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + (Alpha) Using this field requires the VolumeAttributesClass + feature gate to be enabled.' + type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included @@ -416,9 +486,11 @@ spec: * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified - data source. If the AnyVolumeDataSource feature gate is enabled, - this field will always have the same contents as the DataSourceRef - field.' + data source. When the AnyVolumeDataSource feature gate is enabled, + dataSource contents will be copied to dataSourceRef, and dataSourceRef + contents will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then dataSourceRef + will not be copied to dataSource.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -439,23 +511,29 @@ spec: dataSourceRef: description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. - This may be any local object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator - or dynamic provisioner. This field will replace the functionality - of the DataSource field and as such if both fields are non-empty, + This may be any object from a non-empty API group (non core + object) or a PersistentVolumeClaim object. When this field is + specified, volume binding will only succeed if the type of the + specified object matches some installed volume populator or + dynamic provisioner. This field will replace the functionality + of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, - both fields (DataSource and DataSourceRef) will be set to the - same value automatically if one of them is empty and the other - is non-empty. There are two important differences between DataSource - and DataSourceRef: * While DataSource only allows two specific - types of objects, DataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves - all values, and generates an error if a disallowed value is specified. - (Beta) Using this field requires the AnyVolumeDataSource feature - gate to be enabled.' + when namespace isn''t specified in dataSourceRef, both fields + (dataSource and dataSourceRef) will be set to the same value + automatically if one of them is empty and the other is non-empty. + When namespace is specified in dataSourceRef, dataSource isn''t + set to the same value and must be empty. There are three important + differences between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef allows + any non-core object, as well as PersistentVolumeClaim objects. + * While dataSource ignores disallowed values (dropping them), + dataSourceRef preserves all values, and generates an error + if a disallowed value is specified. * While dataSource only + allows local objects, dataSourceRef allows objects in any + namespaces. (Beta) Using this field requires the AnyVolumeDataSource + feature gate to be enabled. (Alpha) Using the namespace field + of dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -469,6 +547,14 @@ spec: name: description: Name is the name of resource being referenced type: string + namespace: + description: Namespace is the namespace of resource being + referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant + object is required in the referent namespace to allow that + namespace's owner to accept the reference. See the ReferenceGrant + documentation for details. (Alpha) This field requires the + CrossNamespaceVolumeDataSource feature gate to be enabled. + type: string required: - kind - name @@ -500,7 +586,8 @@ spec: description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + to an implementation-defined value. Requests cannot exceed + Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: @@ -552,6 +639,24 @@ spec: description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string + volumeAttributesClassName: + description: 'volumeAttributesClassName may be used to set the + VolumeAttributesClass used by this claim. If specified, the + CSI driver will create or update the volume with the attributes + defined in the corresponding VolumeAttributesClass. This has + a different purpose than storageClassName, it can be changed + after the claim is created. An empty string value means that + no VolumeAttributesClass will be applied to the claim but it''s + not allowed to reset this field to empty string once it is set. + If unspecified and the PersistentVolumeClaim is unbound, the + default VolumeAttributesClass will be set by the persistentvolume + controller if it exists. If the resource referred to by volumeAttributesClass + does not exist, this PersistentVolumeClaim will be set to a + Pending state, as reflected by the modifyVolumeStatus field, + until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + (Alpha) Using this field requires the VolumeAttributesClass + feature gate to be enabled.' + type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included diff --git a/pkg/templates/crds/assisted-service/agent-install.openshift.io_hypershiftagentserviceconfigs.yaml b/pkg/templates/crds/assisted-service/agent-install.openshift.io_hypershiftagentserviceconfigs.yaml index c4dbbd2b7..0a765bc84 100644 --- a/pkg/templates/crds/assisted-service/agent-install.openshift.io_hypershiftagentserviceconfigs.yaml +++ b/pkg/templates/crds/assisted-service/agent-install.openshift.io_hypershiftagentserviceconfigs.yaml @@ -78,9 +78,11 @@ spec: * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified - data source. If the AnyVolumeDataSource feature gate is enabled, - this field will always have the same contents as the DataSourceRef - field.' + data source. When the AnyVolumeDataSource feature gate is enabled, + dataSource contents will be copied to dataSourceRef, and dataSourceRef + contents will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then dataSourceRef + will not be copied to dataSource.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -101,23 +103,29 @@ spec: dataSourceRef: description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. - This may be any local object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator - or dynamic provisioner. This field will replace the functionality - of the DataSource field and as such if both fields are non-empty, + This may be any object from a non-empty API group (non core + object) or a PersistentVolumeClaim object. When this field is + specified, volume binding will only succeed if the type of the + specified object matches some installed volume populator or + dynamic provisioner. This field will replace the functionality + of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, - both fields (DataSource and DataSourceRef) will be set to the - same value automatically if one of them is empty and the other - is non-empty. There are two important differences between DataSource - and DataSourceRef: * While DataSource only allows two specific - types of objects, DataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves - all values, and generates an error if a disallowed value is specified. - (Beta) Using this field requires the AnyVolumeDataSource feature - gate to be enabled.' + when namespace isn''t specified in dataSourceRef, both fields + (dataSource and dataSourceRef) will be set to the same value + automatically if one of them is empty and the other is non-empty. + When namespace is specified in dataSourceRef, dataSource isn''t + set to the same value and must be empty. There are three important + differences between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef allows + any non-core object, as well as PersistentVolumeClaim objects. + * While dataSource ignores disallowed values (dropping them), + dataSourceRef preserves all values, and generates an error + if a disallowed value is specified. * While dataSource only + allows local objects, dataSourceRef allows objects in any + namespaces. (Beta) Using this field requires the AnyVolumeDataSource + feature gate to be enabled. (Alpha) Using the namespace field + of dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -131,6 +139,14 @@ spec: name: description: Name is the name of resource being referenced type: string + namespace: + description: Namespace is the namespace of resource being + referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant + object is required in the referent namespace to allow that + namespace's owner to accept the reference. See the ReferenceGrant + documentation for details. (Alpha) This field requires the + CrossNamespaceVolumeDataSource feature gate to be enabled. + type: string required: - kind - name @@ -162,7 +178,8 @@ spec: description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + to an implementation-defined value. Requests cannot exceed + Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: @@ -214,6 +231,24 @@ spec: description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string + volumeAttributesClassName: + description: 'volumeAttributesClassName may be used to set the + VolumeAttributesClass used by this claim. If specified, the + CSI driver will create or update the volume with the attributes + defined in the corresponding VolumeAttributesClass. This has + a different purpose than storageClassName, it can be changed + after the claim is created. An empty string value means that + no VolumeAttributesClass will be applied to the claim but it''s + not allowed to reset this field to empty string once it is set. + If unspecified and the PersistentVolumeClaim is unbound, the + default VolumeAttributesClass will be set by the persistentvolume + controller if it exists. If the resource referred to by volumeAttributesClass + does not exist, this PersistentVolumeClaim will be set to a + Pending state, as reflected by the modifyVolumeStatus field, + until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + (Alpha) Using this field requires the VolumeAttributesClass + feature gate to be enabled.' + type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included @@ -244,9 +279,11 @@ spec: * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified - data source. If the AnyVolumeDataSource feature gate is enabled, - this field will always have the same contents as the DataSourceRef - field.' + data source. When the AnyVolumeDataSource feature gate is enabled, + dataSource contents will be copied to dataSourceRef, and dataSourceRef + contents will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then dataSourceRef + will not be copied to dataSource.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -267,23 +304,29 @@ spec: dataSourceRef: description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. - This may be any local object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator - or dynamic provisioner. This field will replace the functionality - of the DataSource field and as such if both fields are non-empty, + This may be any object from a non-empty API group (non core + object) or a PersistentVolumeClaim object. When this field is + specified, volume binding will only succeed if the type of the + specified object matches some installed volume populator or + dynamic provisioner. This field will replace the functionality + of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, - both fields (DataSource and DataSourceRef) will be set to the - same value automatically if one of them is empty and the other - is non-empty. There are two important differences between DataSource - and DataSourceRef: * While DataSource only allows two specific - types of objects, DataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves - all values, and generates an error if a disallowed value is specified. - (Beta) Using this field requires the AnyVolumeDataSource feature - gate to be enabled.' + when namespace isn''t specified in dataSourceRef, both fields + (dataSource and dataSourceRef) will be set to the same value + automatically if one of them is empty and the other is non-empty. + When namespace is specified in dataSourceRef, dataSource isn''t + set to the same value and must be empty. There are three important + differences between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef allows + any non-core object, as well as PersistentVolumeClaim objects. + * While dataSource ignores disallowed values (dropping them), + dataSourceRef preserves all values, and generates an error + if a disallowed value is specified. * While dataSource only + allows local objects, dataSourceRef allows objects in any + namespaces. (Beta) Using this field requires the AnyVolumeDataSource + feature gate to be enabled. (Alpha) Using the namespace field + of dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -297,6 +340,14 @@ spec: name: description: Name is the name of resource being referenced type: string + namespace: + description: Namespace is the namespace of resource being + referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant + object is required in the referent namespace to allow that + namespace's owner to accept the reference. See the ReferenceGrant + documentation for details. (Alpha) This field requires the + CrossNamespaceVolumeDataSource feature gate to be enabled. + type: string required: - kind - name @@ -328,7 +379,8 @@ spec: description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + to an implementation-defined value. Requests cannot exceed + Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: @@ -380,6 +432,24 @@ spec: description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string + volumeAttributesClassName: + description: 'volumeAttributesClassName may be used to set the + VolumeAttributesClass used by this claim. If specified, the + CSI driver will create or update the volume with the attributes + defined in the corresponding VolumeAttributesClass. This has + a different purpose than storageClassName, it can be changed + after the claim is created. An empty string value means that + no VolumeAttributesClass will be applied to the claim but it''s + not allowed to reset this field to empty string once it is set. + If unspecified and the PersistentVolumeClaim is unbound, the + default VolumeAttributesClass will be set by the persistentvolume + controller if it exists. If the resource referred to by volumeAttributesClass + does not exist, this PersistentVolumeClaim will be set to a + Pending state, as reflected by the modifyVolumeStatus field, + until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + (Alpha) Using this field requires the VolumeAttributesClass + feature gate to be enabled.' + type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included @@ -419,9 +489,11 @@ spec: * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified - data source. If the AnyVolumeDataSource feature gate is enabled, - this field will always have the same contents as the DataSourceRef - field.' + data source. When the AnyVolumeDataSource feature gate is enabled, + dataSource contents will be copied to dataSourceRef, and dataSourceRef + contents will be copied to dataSource when dataSourceRef.namespace + is not specified. If the namespace is specified, then dataSourceRef + will not be copied to dataSource.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -442,23 +514,29 @@ spec: dataSourceRef: description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. - This may be any local object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator - or dynamic provisioner. This field will replace the functionality - of the DataSource field and as such if both fields are non-empty, + This may be any object from a non-empty API group (non core + object) or a PersistentVolumeClaim object. When this field is + specified, volume binding will only succeed if the type of the + specified object matches some installed volume populator or + dynamic provisioner. This field will replace the functionality + of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, - both fields (DataSource and DataSourceRef) will be set to the - same value automatically if one of them is empty and the other - is non-empty. There are two important differences between DataSource - and DataSourceRef: * While DataSource only allows two specific - types of objects, DataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. * While DataSource - ignores disallowed values (dropping them), DataSourceRef preserves - all values, and generates an error if a disallowed value is specified. - (Beta) Using this field requires the AnyVolumeDataSource feature - gate to be enabled.' + when namespace isn''t specified in dataSourceRef, both fields + (dataSource and dataSourceRef) will be set to the same value + automatically if one of them is empty and the other is non-empty. + When namespace is specified in dataSourceRef, dataSource isn''t + set to the same value and must be empty. There are three important + differences between dataSource and dataSourceRef: * While dataSource + only allows two specific types of objects, dataSourceRef allows + any non-core object, as well as PersistentVolumeClaim objects. + * While dataSource ignores disallowed values (dropping them), + dataSourceRef preserves all values, and generates an error + if a disallowed value is specified. * While dataSource only + allows local objects, dataSourceRef allows objects in any + namespaces. (Beta) Using this field requires the AnyVolumeDataSource + feature gate to be enabled. (Alpha) Using the namespace field + of dataSourceRef requires the CrossNamespaceVolumeDataSource + feature gate to be enabled.' properties: apiGroup: description: APIGroup is the group for the resource being @@ -472,6 +550,14 @@ spec: name: description: Name is the name of resource being referenced type: string + namespace: + description: Namespace is the namespace of resource being + referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant + object is required in the referent namespace to allow that + namespace's owner to accept the reference. See the ReferenceGrant + documentation for details. (Alpha) This field requires the + CrossNamespaceVolumeDataSource feature gate to be enabled. + type: string required: - kind - name @@ -503,7 +589,8 @@ spec: description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + to an implementation-defined value. Requests cannot exceed + Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: @@ -555,6 +642,24 @@ spec: description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string + volumeAttributesClassName: + description: 'volumeAttributesClassName may be used to set the + VolumeAttributesClass used by this claim. If specified, the + CSI driver will create or update the volume with the attributes + defined in the corresponding VolumeAttributesClass. This has + a different purpose than storageClassName, it can be changed + after the claim is created. An empty string value means that + no VolumeAttributesClass will be applied to the claim but it''s + not allowed to reset this field to empty string once it is set. + If unspecified and the PersistentVolumeClaim is unbound, the + default VolumeAttributesClass will be set by the persistentvolume + controller if it exists. If the resource referred to by volumeAttributesClass + does not exist, this PersistentVolumeClaim will be set to a + Pending state, as reflected by the modifyVolumeStatus field, + until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass + (Alpha) Using this field requires the VolumeAttributesClass + feature gate to be enabled.' + type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included