Browse Source

chore: downgrade to 0.30.3

Thomas Zhang 2 months ago
parent
commit
e4f1973541

+ 64 - 322
config/crd/bases/locostack.com_agents.yaml

@@ -560,6 +560,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -574,6 +575,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -741,6 +743,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -755,6 +758,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -848,8 +852,8 @@ spec:
                                   most preferred is the one with the greatest sum of weights, i.e.
                                   for each node that meets all of the scheduling requirements (resource
                                   request, requiredDuringScheduling anti-affinity expressions, etc.),
-                                  compute a sum by iterating through the elements of this field and subtracting
-                                  "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
+                                  compute a sum by iterating through the elements of this field and adding
+                                  "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                                   node(s) with the highest sum are the most preferred.
                                 items:
                                   description: The weights of all of the matched WeightedPodAffinityTerm
@@ -920,6 +924,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -934,6 +939,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -1101,6 +1107,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -1115,6 +1122,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -1211,7 +1219,7 @@ spec:
                               Claims lists the names of resources, defined in spec.resourceClaims,
                               that are used by this container.
 
-                              This field depends on the
+                              This is an alpha field and requires enabling the
                               DynamicResourceAllocation feature gate.
 
                               This field is immutable. It can only be set for containers.
@@ -1224,12 +1232,6 @@ spec:
                                     the Pod where this field is used. It makes that resource available
                                     inside a container.
                                   type: string
-                                request:
-                                  description: |-
-                                    Request is the name chosen for a request in the referenced claim.
-                                    If empty, everything from the claim is made available, otherwise
-                                    only the result of this request.
-                                  type: string
                               required:
                               - name
                               type: object
@@ -1306,9 +1308,8 @@ spec:
                                 present in a Container.
                               properties:
                                 name:
-                                  description: |-
-                                    Name of the environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: Name of the environment variable. Must
+                                    be a C_IDENTIFIER.
                                   type: string
                                 value:
                                   description: |-
@@ -1366,43 +1367,6 @@ spec:
                                       - fieldPath
                                       type: object
                                       x-kubernetes-map-type: atomic
-                                    fileKeyRef:
-                                      description: |-
-                                        FileKeyRef selects a key of the env file.
-                                        Requires the EnvFiles feature gate to be enabled.
-                                      properties:
-                                        key:
-                                          description: |-
-                                            The key within the env file. An invalid key will prevent the pod from starting.
-                                            The keys defined within a source may consist of any printable ASCII characters except '='.
-                                            During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                          type: string
-                                        optional:
-                                          default: false
-                                          description: |-
-                                            Specify whether the file or its key must be defined. If the file or key
-                                            does not exist, then the env var is not published.
-                                            If optional is set to true and the specified key does not exist,
-                                            the environment variable will not be set in the Pod's containers.
-
-                                            If optional is set to false and the specified key does not exist,
-                                            an error will be returned during Pod creation.
-                                          type: boolean
-                                        path:
-                                          description: |-
-                                            The path within the volume from which to select the file.
-                                            Must be relative and may not contain the '..' path or start with '..'.
-                                          type: string
-                                        volumeName:
-                                          description: The name of the volume mount
-                                            containing the env file.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      - volumeName
-                                      type: object
-                                      x-kubernetes-map-type: atomic
                                     resourceFieldRef:
                                       description: |-
                                         Selects a resource of the container: only resources limits and requests
@@ -1463,7 +1427,7 @@ spec:
                               whose key-value pairs are injected as environment variables.
                             items:
                               description: EnvFromSource represents the source of
-                                a set of ConfigMaps or Secrets
+                                a set of ConfigMaps
                               properties:
                                 configMapRef:
                                   description: The ConfigMap to select from
@@ -1484,9 +1448,8 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 prefix:
-                                  description: |-
-                                    Optional text to prepend to the name of each environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: An optional identifier to prepend to
+                                    each key in the ConfigMap. Must be a C_IDENTIFIER.
                                   type: string
                                 secretRef:
                                   description: The Secret to select from
@@ -1673,32 +1636,6 @@ spec:
                               Note that this field cannot be set when spec.os.name is windows.
                             format: int64
                             type: integer
-                          seLinuxChangePolicy:
-                            description: |-
-                              seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
-                              It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
-                              Valid values are "MountOption" and "Recursive".
-
-                              "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
-                              This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
-
-                              "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
-                              This requires all Pods that share the same volume to use the same SELinux label.
-                              It is not possible to share the same volume among privileged and unprivileged Pods.
-                              Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
-                              whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
-                              CSIDriver instance. Other volumes are always re-labelled recursively.
-                              "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
-
-                              If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
-                              If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
-                              and "Recursive" for all other volumes.
-
-                              This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
-
-                              All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           seLinuxOptions:
                             description: |-
                               The SELinux context to be applied to all containers.
@@ -1751,28 +1688,18 @@ spec:
                             type: object
                           supplementalGroups:
                             description: |-
-                              A list of groups applied to the first process run in each container, in
-                              addition to the container's primary GID and fsGroup (if specified).  If
-                              the SupplementalGroupsPolicy feature is enabled, the
-                              supplementalGroupsPolicy field determines whether these are in addition
-                              to or instead of any group memberships defined in the container image.
-                              If unspecified, no additional groups are added, though group memberships
-                              defined in the container image may still be used, depending on the
-                              supplementalGroupsPolicy field.
+                              A list of groups applied to the first process run in each container, in addition
+                              to the container's primary GID, the fsGroup (if specified), and group memberships
+                              defined in the container image for the uid of the container process. If unspecified,
+                              no additional groups are added to any container. Note that group memberships
+                              defined in the container image for the uid of the container process are still effective,
+                              even if they are not included in this list.
                               Note that this field cannot be set when spec.os.name is windows.
                             items:
                               format: int64
                               type: integer
                             type: array
                             x-kubernetes-list-type: atomic
-                          supplementalGroupsPolicy:
-                            description: |-
-                              Defines how supplemental groups of the first container processes are calculated.
-                              Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
-                              (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
-                              and the container runtime must implement support for this feature.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           sysctls:
                             description: |-
                               Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
@@ -1848,10 +1775,9 @@ spec:
                             operator:
                               description: |-
                                 Operator represents a key's relationship to the value.
-                                Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
+                                Valid operators are Exists and Equal. Defaults to Equal.
                                 Exists is equivalent to wildcard for value, so that a pod can
                                 tolerate all taints of a particular category.
-                                Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
                               type: string
                             tolerationSeconds:
                               description: |-
@@ -1993,6 +1919,7 @@ spec:
                                 - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
 
                                 If this value is nil, the behavior is equivalent to the Honor policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             nodeTaintsPolicy:
                               description: |-
@@ -2003,6 +1930,7 @@ spec:
                                 - Ignore: node taints are ignored. All nodes are included.
 
                                 If this value is nil, the behavior is equivalent to the Ignore policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             topologyKey:
                               description: |-
@@ -2055,8 +1983,6 @@ spec:
                               description: |-
                                 awsElasticBlockStore represents an AWS Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
-                                awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                               properties:
                                 fsType:
@@ -2088,10 +2014,8 @@ spec:
                               - volumeID
                               type: object
                             azureDisk:
-                              description: |-
-                                azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
-                                Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
-                                are redirected to the disk.csi.azure.com CSI driver.
+                              description: azureDisk represents an Azure Data Disk
+                                mount on the host and bind mount to the pod.
                               properties:
                                 cachingMode:
                                   description: 'cachingMode is the Host Caching mode:
@@ -2106,7 +2030,6 @@ spec:
                                     the blob storage
                                   type: string
                                 fsType:
-                                  default: ext4
                                   description: |-
                                     fsType is Filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -2120,7 +2043,6 @@ spec:
                                     set). defaults to shared'
                                   type: string
                                 readOnly:
-                                  default: false
                                   description: |-
                                     readOnly Defaults to false (read/write). ReadOnly here will force
                                     the ReadOnly setting in VolumeMounts.
@@ -2130,10 +2052,8 @@ spec:
                               - diskURI
                               type: object
                             azureFile:
-                              description: |-
-                                azureFile represents an Azure File Service mount on the host and bind mount to the pod.
-                                Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
-                                are redirected to the file.csi.azure.com CSI driver.
+                              description: azureFile represents an Azure File Service
+                                mount on the host and bind mount to the pod.
                               properties:
                                 readOnly:
                                   description: |-
@@ -2152,9 +2072,8 @@ spec:
                               - shareName
                               type: object
                             cephfs:
-                              description: |-
-                                cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
-                                Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
+                              description: cephFS represents a Ceph FS mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 monitors:
                                   description: |-
@@ -2207,8 +2126,6 @@ spec:
                             cinder:
                               description: |-
                                 cinder represents a cinder volume attached and mounted on kubelets host machine.
-                                Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
-                                are redirected to the cinder.csi.openstack.org CSI driver.
                                 More info: https://examples.k8s.io/mysql-cinder-pd/README.md
                               properties:
                                 fsType:
@@ -2320,7 +2237,7 @@ spec:
                             csi:
                               description: csi (Container Storage Interface) represents
                                 ephemeral storage that is handled by certain external
-                                CSI drivers.
+                                CSI drivers (Beta feature).
                               properties:
                                 driver:
                                   description: |-
@@ -2638,7 +2555,7 @@ spec:
                                         resources:
                                           description: |-
                                             resources represents the minimum resources the volume should have.
-                                            Users are allowed to specify resource requirements
+                                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
                                             that are lower than previous value but must still be higher than capacity recorded in the
                                             status field of the claim.
                                             More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
@@ -2727,13 +2644,15 @@ spec:
                                             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 or nil value indicates that no
-                                            VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
-                                            this field can be reset to its previous value (including nil) to cancel the modification.
+                                            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/volume-attributes-classes/
+                                            (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
                                           type: string
                                         volumeMode:
                                           description: |-
@@ -2789,7 +2708,6 @@ spec:
                               description: |-
                                 flexVolume represents a generic volume resource that is
                                 provisioned/attached using an exec based plugin.
-                                Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
                               properties:
                                 driver:
                                   description: driver is the name of the driver to
@@ -2835,9 +2753,9 @@ spec:
                               - driver
                               type: object
                             flocker:
-                              description: |-
-                                flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
-                                Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
+                              description: flocker represents a Flocker volume attached
+                                to a kubelet's host machine. This depends on the Flocker
+                                control service being running
                               properties:
                                 datasetName:
                                   description: |-
@@ -2853,8 +2771,6 @@ spec:
                               description: |-
                                 gcePersistentDisk represents a GCE Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
-                                gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                               properties:
                                 fsType:
@@ -2890,7 +2806,7 @@ spec:
                             gitRepo:
                               description: |-
                                 gitRepo represents a git repository at a particular revision.
-                                Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
+                                DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
                                 EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
                                 into the Pod's container.
                               properties:
@@ -2914,11 +2830,12 @@ spec:
                             glusterfs:
                               description: |-
                                 glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
-                                Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/glusterfs/README.md
                               properties:
                                 endpoints:
-                                  description: endpoints is the endpoint name that
-                                    details Glusterfs topology.
+                                  description: |-
+                                    endpoints is the endpoint name that details Glusterfs topology.
+                                    More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
                                   type: string
                                 path:
                                   description: |-
@@ -2958,46 +2875,11 @@ spec:
                               required:
                               - path
                               type: object
-                            image:
-                              description: |-
-                                image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
-                                The volume is resolved at pod startup depending on which PullPolicy value is provided:
-
-                                - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-
-                                The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
-                                A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
-                                The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
-                                The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
-                                The volume will be mounted read-only (ro) and non-executable files (noexec).
-                                Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
-                                The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
-                              properties:
-                                pullPolicy:
-                                  description: |-
-                                    Policy for pulling OCI objects. Possible values are:
-                                    Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                    Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                    IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-                                    Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
-                                  type: string
-                                reference:
-                                  description: |-
-                                    Required: Image or artifact reference to be used.
-                                    Behaves in the same way as pod.spec.containers[*].image.
-                                    Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
-                                    More info: https://kubernetes.io/docs/concepts/containers/images
-                                    This field is optional to allow higher level config management to default or override
-                                    container images in workload controllers like Deployments and StatefulSets.
-                                  type: string
-                              type: object
                             iscsi:
                               description: |-
                                 iscsi represents an ISCSI Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
+                                More info: https://examples.k8s.io/volumes/iscsi/README.md
                               properties:
                                 chapAuthDiscovery:
                                   description: chapAuthDiscovery defines whether support
@@ -3024,7 +2906,6 @@ spec:
                                   description: iqn is the target iSCSI Qualified Name.
                                   type: string
                                 iscsiInterface:
-                                  default: default
                                   description: |-
                                     iscsiInterface is the interface Name that uses an iSCSI transport.
                                     Defaults to 'default' (tcp).
@@ -3122,9 +3003,9 @@ spec:
                               - claimName
                               type: object
                             photonPersistentDisk:
-                              description: |-
-                                photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
-                                Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
+                              description: photonPersistentDisk represents a PhotonController
+                                persistent disk attached and mounted on kubelets host
+                                machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3140,11 +3021,8 @@ spec:
                               - pdID
                               type: object
                             portworxVolume:
-                              description: |-
-                                portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
-                                Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
-                                are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
-                                is on.
+                              description: portworxVolume represents a portworx volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3179,13 +3057,10 @@ spec:
                                   format: int32
                                   type: integer
                                 sources:
-                                  description: |-
-                                    sources is the list of volume projections. Each entry in this list
-                                    handles one source.
+                                  description: sources is the list of volume projections
                                   items:
-                                    description: |-
-                                      Projection that may be projected along with other supported volume types.
-                                      Exactly one of these fields must be set.
+                                    description: Projection that may be projected
+                                      along with other supported volume types
                                     properties:
                                       clusterTrustBundle:
                                         description: |-
@@ -3423,129 +3298,6 @@ spec:
                                             type: array
                                             x-kubernetes-list-type: atomic
                                         type: object
-                                      podCertificate:
-                                        description: |-
-                                          Projects an auto-rotating credential bundle (private key and certificate
-                                          chain) that the pod can use either as a TLS client or server.
-
-                                          Kubelet generates a private key and uses it to send a
-                                          PodCertificateRequest to the named signer.  Once the signer approves the
-                                          request and issues a certificate chain, Kubelet writes the key and
-                                          certificate chain to the pod filesystem.  The pod does not start until
-                                          certificates have been issued for each podCertificate projected volume
-                                          source in its spec.
-
-                                          Kubelet will begin trying to rotate the certificate at the time indicated
-                                          by the signer using the PodCertificateRequest.Status.BeginRefreshAt
-                                          timestamp.
-
-                                          Kubelet can write a single file, indicated by the credentialBundlePath
-                                          field, or separate files, indicated by the keyPath and
-                                          certificateChainPath fields.
-
-                                          The credential bundle is a single file in PEM format.  The first PEM
-                                          entry is the private key (in PKCS#8 format), and the remaining PEM
-                                          entries are the certificate chain issued by the signer (typically,
-                                          signers will return their certificate chain in leaf-to-root order).
-
-                                          Prefer using the credential bundle format, since your application code
-                                          can read it atomically.  If you use keyPath and certificateChainPath,
-                                          your application must make two separate file reads. If these coincide
-                                          with a certificate rotation, it is possible that the private key and leaf
-                                          certificate you read may not correspond to each other.  Your application
-                                          will need to check for this condition, and re-read until they are
-                                          consistent.
-
-                                          The named signer controls chooses the format of the certificate it
-                                          issues; consult the signer implementation's documentation to learn how to
-                                          use the certificates it issues.
-                                        properties:
-                                          certificateChainPath:
-                                            description: |-
-                                              Write the certificate chain at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          credentialBundlePath:
-                                            description: |-
-                                              Write the credential bundle at this path in the projected volume.
-
-                                              The credential bundle is a single file that contains multiple PEM blocks.
-                                              The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
-                                              key.
-
-                                              The remaining blocks are CERTIFICATE blocks, containing the issued
-                                              certificate chain from the signer (leaf and any intermediates).
-
-                                              Using credentialBundlePath lets your Pod's application code make a single
-                                              atomic read that retrieves a consistent key and certificate chain.  If you
-                                              project them to separate files, your application code will need to
-                                              additionally check that the leaf certificate was issued to the key.
-                                            type: string
-                                          keyPath:
-                                            description: |-
-                                              Write the key at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          keyType:
-                                            description: |-
-                                              The type of keypair Kubelet will generate for the pod.
-
-                                              Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
-                                              "ECDSAP521", and "ED25519".
-                                            type: string
-                                          maxExpirationSeconds:
-                                            description: |-
-                                              maxExpirationSeconds is the maximum lifetime permitted for the
-                                              certificate.
-
-                                              Kubelet copies this value verbatim into the PodCertificateRequests it
-                                              generates for this projection.
-
-                                              If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
-                                              will reject values shorter than 3600 (1 hour).  The maximum allowable
-                                              value is 7862400 (91 days).
-
-                                              The signer implementation is then free to issue a certificate with any
-                                              lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
-                                              seconds (1 hour).  This constraint is enforced by kube-apiserver.
-                                              `kubernetes.io` signers will never issue certificates with a lifetime
-                                              longer than 24 hours.
-                                            format: int32
-                                            type: integer
-                                          signerName:
-                                            description: Kubelet's generated CSRs
-                                              will be addressed to this signer.
-                                            type: string
-                                          userAnnotations:
-                                            additionalProperties:
-                                              type: string
-                                            description: |-
-                                              userAnnotations allow pod authors to pass additional information to
-                                              the signer implementation.  Kubernetes does not restrict or validate this
-                                              metadata in any way.
-
-                                              These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
-                                              the PodCertificateRequest objects that Kubelet creates.
-
-                                              Entries are subject to the same validation as object metadata annotations,
-                                              with the addition that all keys must be domain-prefixed. No restrictions
-                                              are placed on values, except an overall size limitation on the entire field.
-
-                                              Signers should document the keys and values they support. Signers should
-                                              deny requests that contain keys they do not recognize.
-                                            type: object
-                                        required:
-                                        - keyType
-                                        - signerName
-                                        type: object
                                       secret:
                                         description: secret information about the
                                           secret data to project
@@ -3638,9 +3390,8 @@ spec:
                                   x-kubernetes-list-type: atomic
                               type: object
                             quobyte:
-                              description: |-
-                                quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
-                                Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
+                              description: quobyte represents a Quobyte mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 group:
                                   description: |-
@@ -3679,7 +3430,7 @@ spec:
                             rbd:
                               description: |-
                                 rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
-                                Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/rbd/README.md
                               properties:
                                 fsType:
                                   description: |-
@@ -3694,7 +3445,6 @@ spec:
                                     More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
                                   type: string
                                 keyring:
-                                  default: /etc/ceph/keyring
                                   description: |-
                                     keyring is the path to key ring for RBDUser.
                                     Default is /etc/ceph/keyring.
@@ -3709,7 +3459,6 @@ spec:
                                   type: array
                                   x-kubernetes-list-type: atomic
                                 pool:
-                                  default: rbd
                                   description: |-
                                     pool is the rados pool name.
                                     Default is rbd.
@@ -3740,7 +3489,6 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 user:
-                                  default: admin
                                   description: |-
                                     user is the rados user name.
                                     Default is admin.
@@ -3751,12 +3499,10 @@ spec:
                               - monitors
                               type: object
                             scaleIO:
-                              description: |-
-                                scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
-                                Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
+                              description: scaleIO represents a ScaleIO persistent
+                                volume attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
-                                  default: xfs
                                   description: |-
                                     fsType is the filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -3797,7 +3543,6 @@ spec:
                                     communication with Gateway, default false
                                   type: boolean
                                 storageMode:
-                                  default: ThinProvisioned
                                   description: |-
                                     storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
                                     Default is ThinProvisioned.
@@ -3886,9 +3631,8 @@ spec:
                                   type: string
                               type: object
                             storageos:
-                              description: |-
-                                storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
-                                Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
+                              description: storageOS represents a StorageOS volume
+                                attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
                                   description: |-
@@ -3933,10 +3677,8 @@ spec:
                                   type: string
                               type: object
                             vsphereVolume:
-                              description: |-
-                                vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
-                                Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
-                                are redirected to the csi.vsphere.vmware.com CSI driver.
+                              description: vsphereVolume represents a vSphere volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-

+ 64 - 322
config/crd/bases/locostack.com_components.yaml

@@ -423,6 +423,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -437,6 +438,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -604,6 +606,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -618,6 +621,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -711,8 +715,8 @@ spec:
                                   most preferred is the one with the greatest sum of weights, i.e.
                                   for each node that meets all of the scheduling requirements (resource
                                   request, requiredDuringScheduling anti-affinity expressions, etc.),
-                                  compute a sum by iterating through the elements of this field and subtracting
-                                  "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
+                                  compute a sum by iterating through the elements of this field and adding
+                                  "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                                   node(s) with the highest sum are the most preferred.
                                 items:
                                   description: The weights of all of the matched WeightedPodAffinityTerm
@@ -783,6 +787,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -797,6 +802,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -964,6 +970,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -978,6 +985,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -1074,7 +1082,7 @@ spec:
                               Claims lists the names of resources, defined in spec.resourceClaims,
                               that are used by this container.
 
-                              This field depends on the
+                              This is an alpha field and requires enabling the
                               DynamicResourceAllocation feature gate.
 
                               This field is immutable. It can only be set for containers.
@@ -1087,12 +1095,6 @@ spec:
                                     the Pod where this field is used. It makes that resource available
                                     inside a container.
                                   type: string
-                                request:
-                                  description: |-
-                                    Request is the name chosen for a request in the referenced claim.
-                                    If empty, everything from the claim is made available, otherwise
-                                    only the result of this request.
-                                  type: string
                               required:
                               - name
                               type: object
@@ -1169,9 +1171,8 @@ spec:
                                 present in a Container.
                               properties:
                                 name:
-                                  description: |-
-                                    Name of the environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: Name of the environment variable. Must
+                                    be a C_IDENTIFIER.
                                   type: string
                                 value:
                                   description: |-
@@ -1229,43 +1230,6 @@ spec:
                                       - fieldPath
                                       type: object
                                       x-kubernetes-map-type: atomic
-                                    fileKeyRef:
-                                      description: |-
-                                        FileKeyRef selects a key of the env file.
-                                        Requires the EnvFiles feature gate to be enabled.
-                                      properties:
-                                        key:
-                                          description: |-
-                                            The key within the env file. An invalid key will prevent the pod from starting.
-                                            The keys defined within a source may consist of any printable ASCII characters except '='.
-                                            During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                          type: string
-                                        optional:
-                                          default: false
-                                          description: |-
-                                            Specify whether the file or its key must be defined. If the file or key
-                                            does not exist, then the env var is not published.
-                                            If optional is set to true and the specified key does not exist,
-                                            the environment variable will not be set in the Pod's containers.
-
-                                            If optional is set to false and the specified key does not exist,
-                                            an error will be returned during Pod creation.
-                                          type: boolean
-                                        path:
-                                          description: |-
-                                            The path within the volume from which to select the file.
-                                            Must be relative and may not contain the '..' path or start with '..'.
-                                          type: string
-                                        volumeName:
-                                          description: The name of the volume mount
-                                            containing the env file.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      - volumeName
-                                      type: object
-                                      x-kubernetes-map-type: atomic
                                     resourceFieldRef:
                                       description: |-
                                         Selects a resource of the container: only resources limits and requests
@@ -1326,7 +1290,7 @@ spec:
                               whose key-value pairs are injected as environment variables.
                             items:
                               description: EnvFromSource represents the source of
-                                a set of ConfigMaps or Secrets
+                                a set of ConfigMaps
                               properties:
                                 configMapRef:
                                   description: The ConfigMap to select from
@@ -1347,9 +1311,8 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 prefix:
-                                  description: |-
-                                    Optional text to prepend to the name of each environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: An optional identifier to prepend to
+                                    each key in the ConfigMap. Must be a C_IDENTIFIER.
                                   type: string
                                 secretRef:
                                   description: The Secret to select from
@@ -1536,32 +1499,6 @@ spec:
                               Note that this field cannot be set when spec.os.name is windows.
                             format: int64
                             type: integer
-                          seLinuxChangePolicy:
-                            description: |-
-                              seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
-                              It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
-                              Valid values are "MountOption" and "Recursive".
-
-                              "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
-                              This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
-
-                              "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
-                              This requires all Pods that share the same volume to use the same SELinux label.
-                              It is not possible to share the same volume among privileged and unprivileged Pods.
-                              Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
-                              whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
-                              CSIDriver instance. Other volumes are always re-labelled recursively.
-                              "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
-
-                              If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
-                              If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
-                              and "Recursive" for all other volumes.
-
-                              This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
-
-                              All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           seLinuxOptions:
                             description: |-
                               The SELinux context to be applied to all containers.
@@ -1614,28 +1551,18 @@ spec:
                             type: object
                           supplementalGroups:
                             description: |-
-                              A list of groups applied to the first process run in each container, in
-                              addition to the container's primary GID and fsGroup (if specified).  If
-                              the SupplementalGroupsPolicy feature is enabled, the
-                              supplementalGroupsPolicy field determines whether these are in addition
-                              to or instead of any group memberships defined in the container image.
-                              If unspecified, no additional groups are added, though group memberships
-                              defined in the container image may still be used, depending on the
-                              supplementalGroupsPolicy field.
+                              A list of groups applied to the first process run in each container, in addition
+                              to the container's primary GID, the fsGroup (if specified), and group memberships
+                              defined in the container image for the uid of the container process. If unspecified,
+                              no additional groups are added to any container. Note that group memberships
+                              defined in the container image for the uid of the container process are still effective,
+                              even if they are not included in this list.
                               Note that this field cannot be set when spec.os.name is windows.
                             items:
                               format: int64
                               type: integer
                             type: array
                             x-kubernetes-list-type: atomic
-                          supplementalGroupsPolicy:
-                            description: |-
-                              Defines how supplemental groups of the first container processes are calculated.
-                              Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
-                              (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
-                              and the container runtime must implement support for this feature.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           sysctls:
                             description: |-
                               Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
@@ -1711,10 +1638,9 @@ spec:
                             operator:
                               description: |-
                                 Operator represents a key's relationship to the value.
-                                Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
+                                Valid operators are Exists and Equal. Defaults to Equal.
                                 Exists is equivalent to wildcard for value, so that a pod can
                                 tolerate all taints of a particular category.
-                                Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
                               type: string
                             tolerationSeconds:
                               description: |-
@@ -1856,6 +1782,7 @@ spec:
                                 - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
 
                                 If this value is nil, the behavior is equivalent to the Honor policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             nodeTaintsPolicy:
                               description: |-
@@ -1866,6 +1793,7 @@ spec:
                                 - Ignore: node taints are ignored. All nodes are included.
 
                                 If this value is nil, the behavior is equivalent to the Ignore policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             topologyKey:
                               description: |-
@@ -1918,8 +1846,6 @@ spec:
                               description: |-
                                 awsElasticBlockStore represents an AWS Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
-                                awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                               properties:
                                 fsType:
@@ -1951,10 +1877,8 @@ spec:
                               - volumeID
                               type: object
                             azureDisk:
-                              description: |-
-                                azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
-                                Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
-                                are redirected to the disk.csi.azure.com CSI driver.
+                              description: azureDisk represents an Azure Data Disk
+                                mount on the host and bind mount to the pod.
                               properties:
                                 cachingMode:
                                   description: 'cachingMode is the Host Caching mode:
@@ -1969,7 +1893,6 @@ spec:
                                     the blob storage
                                   type: string
                                 fsType:
-                                  default: ext4
                                   description: |-
                                     fsType is Filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -1983,7 +1906,6 @@ spec:
                                     set). defaults to shared'
                                   type: string
                                 readOnly:
-                                  default: false
                                   description: |-
                                     readOnly Defaults to false (read/write). ReadOnly here will force
                                     the ReadOnly setting in VolumeMounts.
@@ -1993,10 +1915,8 @@ spec:
                               - diskURI
                               type: object
                             azureFile:
-                              description: |-
-                                azureFile represents an Azure File Service mount on the host and bind mount to the pod.
-                                Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
-                                are redirected to the file.csi.azure.com CSI driver.
+                              description: azureFile represents an Azure File Service
+                                mount on the host and bind mount to the pod.
                               properties:
                                 readOnly:
                                   description: |-
@@ -2015,9 +1935,8 @@ spec:
                               - shareName
                               type: object
                             cephfs:
-                              description: |-
-                                cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
-                                Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
+                              description: cephFS represents a Ceph FS mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 monitors:
                                   description: |-
@@ -2070,8 +1989,6 @@ spec:
                             cinder:
                               description: |-
                                 cinder represents a cinder volume attached and mounted on kubelets host machine.
-                                Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
-                                are redirected to the cinder.csi.openstack.org CSI driver.
                                 More info: https://examples.k8s.io/mysql-cinder-pd/README.md
                               properties:
                                 fsType:
@@ -2183,7 +2100,7 @@ spec:
                             csi:
                               description: csi (Container Storage Interface) represents
                                 ephemeral storage that is handled by certain external
-                                CSI drivers.
+                                CSI drivers (Beta feature).
                               properties:
                                 driver:
                                   description: |-
@@ -2501,7 +2418,7 @@ spec:
                                         resources:
                                           description: |-
                                             resources represents the minimum resources the volume should have.
-                                            Users are allowed to specify resource requirements
+                                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
                                             that are lower than previous value but must still be higher than capacity recorded in the
                                             status field of the claim.
                                             More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
@@ -2590,13 +2507,15 @@ spec:
                                             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 or nil value indicates that no
-                                            VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
-                                            this field can be reset to its previous value (including nil) to cancel the modification.
+                                            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/volume-attributes-classes/
+                                            (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
                                           type: string
                                         volumeMode:
                                           description: |-
@@ -2652,7 +2571,6 @@ spec:
                               description: |-
                                 flexVolume represents a generic volume resource that is
                                 provisioned/attached using an exec based plugin.
-                                Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
                               properties:
                                 driver:
                                   description: driver is the name of the driver to
@@ -2698,9 +2616,9 @@ spec:
                               - driver
                               type: object
                             flocker:
-                              description: |-
-                                flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
-                                Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
+                              description: flocker represents a Flocker volume attached
+                                to a kubelet's host machine. This depends on the Flocker
+                                control service being running
                               properties:
                                 datasetName:
                                   description: |-
@@ -2716,8 +2634,6 @@ spec:
                               description: |-
                                 gcePersistentDisk represents a GCE Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
-                                gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                               properties:
                                 fsType:
@@ -2753,7 +2669,7 @@ spec:
                             gitRepo:
                               description: |-
                                 gitRepo represents a git repository at a particular revision.
-                                Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
+                                DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
                                 EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
                                 into the Pod's container.
                               properties:
@@ -2777,11 +2693,12 @@ spec:
                             glusterfs:
                               description: |-
                                 glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
-                                Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/glusterfs/README.md
                               properties:
                                 endpoints:
-                                  description: endpoints is the endpoint name that
-                                    details Glusterfs topology.
+                                  description: |-
+                                    endpoints is the endpoint name that details Glusterfs topology.
+                                    More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
                                   type: string
                                 path:
                                   description: |-
@@ -2821,46 +2738,11 @@ spec:
                               required:
                               - path
                               type: object
-                            image:
-                              description: |-
-                                image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
-                                The volume is resolved at pod startup depending on which PullPolicy value is provided:
-
-                                - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-
-                                The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
-                                A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
-                                The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
-                                The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
-                                The volume will be mounted read-only (ro) and non-executable files (noexec).
-                                Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
-                                The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
-                              properties:
-                                pullPolicy:
-                                  description: |-
-                                    Policy for pulling OCI objects. Possible values are:
-                                    Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                    Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                    IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-                                    Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
-                                  type: string
-                                reference:
-                                  description: |-
-                                    Required: Image or artifact reference to be used.
-                                    Behaves in the same way as pod.spec.containers[*].image.
-                                    Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
-                                    More info: https://kubernetes.io/docs/concepts/containers/images
-                                    This field is optional to allow higher level config management to default or override
-                                    container images in workload controllers like Deployments and StatefulSets.
-                                  type: string
-                              type: object
                             iscsi:
                               description: |-
                                 iscsi represents an ISCSI Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
+                                More info: https://examples.k8s.io/volumes/iscsi/README.md
                               properties:
                                 chapAuthDiscovery:
                                   description: chapAuthDiscovery defines whether support
@@ -2887,7 +2769,6 @@ spec:
                                   description: iqn is the target iSCSI Qualified Name.
                                   type: string
                                 iscsiInterface:
-                                  default: default
                                   description: |-
                                     iscsiInterface is the interface Name that uses an iSCSI transport.
                                     Defaults to 'default' (tcp).
@@ -2985,9 +2866,9 @@ spec:
                               - claimName
                               type: object
                             photonPersistentDisk:
-                              description: |-
-                                photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
-                                Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
+                              description: photonPersistentDisk represents a PhotonController
+                                persistent disk attached and mounted on kubelets host
+                                machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3003,11 +2884,8 @@ spec:
                               - pdID
                               type: object
                             portworxVolume:
-                              description: |-
-                                portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
-                                Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
-                                are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
-                                is on.
+                              description: portworxVolume represents a portworx volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3042,13 +2920,10 @@ spec:
                                   format: int32
                                   type: integer
                                 sources:
-                                  description: |-
-                                    sources is the list of volume projections. Each entry in this list
-                                    handles one source.
+                                  description: sources is the list of volume projections
                                   items:
-                                    description: |-
-                                      Projection that may be projected along with other supported volume types.
-                                      Exactly one of these fields must be set.
+                                    description: Projection that may be projected
+                                      along with other supported volume types
                                     properties:
                                       clusterTrustBundle:
                                         description: |-
@@ -3286,129 +3161,6 @@ spec:
                                             type: array
                                             x-kubernetes-list-type: atomic
                                         type: object
-                                      podCertificate:
-                                        description: |-
-                                          Projects an auto-rotating credential bundle (private key and certificate
-                                          chain) that the pod can use either as a TLS client or server.
-
-                                          Kubelet generates a private key and uses it to send a
-                                          PodCertificateRequest to the named signer.  Once the signer approves the
-                                          request and issues a certificate chain, Kubelet writes the key and
-                                          certificate chain to the pod filesystem.  The pod does not start until
-                                          certificates have been issued for each podCertificate projected volume
-                                          source in its spec.
-
-                                          Kubelet will begin trying to rotate the certificate at the time indicated
-                                          by the signer using the PodCertificateRequest.Status.BeginRefreshAt
-                                          timestamp.
-
-                                          Kubelet can write a single file, indicated by the credentialBundlePath
-                                          field, or separate files, indicated by the keyPath and
-                                          certificateChainPath fields.
-
-                                          The credential bundle is a single file in PEM format.  The first PEM
-                                          entry is the private key (in PKCS#8 format), and the remaining PEM
-                                          entries are the certificate chain issued by the signer (typically,
-                                          signers will return their certificate chain in leaf-to-root order).
-
-                                          Prefer using the credential bundle format, since your application code
-                                          can read it atomically.  If you use keyPath and certificateChainPath,
-                                          your application must make two separate file reads. If these coincide
-                                          with a certificate rotation, it is possible that the private key and leaf
-                                          certificate you read may not correspond to each other.  Your application
-                                          will need to check for this condition, and re-read until they are
-                                          consistent.
-
-                                          The named signer controls chooses the format of the certificate it
-                                          issues; consult the signer implementation's documentation to learn how to
-                                          use the certificates it issues.
-                                        properties:
-                                          certificateChainPath:
-                                            description: |-
-                                              Write the certificate chain at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          credentialBundlePath:
-                                            description: |-
-                                              Write the credential bundle at this path in the projected volume.
-
-                                              The credential bundle is a single file that contains multiple PEM blocks.
-                                              The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
-                                              key.
-
-                                              The remaining blocks are CERTIFICATE blocks, containing the issued
-                                              certificate chain from the signer (leaf and any intermediates).
-
-                                              Using credentialBundlePath lets your Pod's application code make a single
-                                              atomic read that retrieves a consistent key and certificate chain.  If you
-                                              project them to separate files, your application code will need to
-                                              additionally check that the leaf certificate was issued to the key.
-                                            type: string
-                                          keyPath:
-                                            description: |-
-                                              Write the key at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          keyType:
-                                            description: |-
-                                              The type of keypair Kubelet will generate for the pod.
-
-                                              Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
-                                              "ECDSAP521", and "ED25519".
-                                            type: string
-                                          maxExpirationSeconds:
-                                            description: |-
-                                              maxExpirationSeconds is the maximum lifetime permitted for the
-                                              certificate.
-
-                                              Kubelet copies this value verbatim into the PodCertificateRequests it
-                                              generates for this projection.
-
-                                              If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
-                                              will reject values shorter than 3600 (1 hour).  The maximum allowable
-                                              value is 7862400 (91 days).
-
-                                              The signer implementation is then free to issue a certificate with any
-                                              lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
-                                              seconds (1 hour).  This constraint is enforced by kube-apiserver.
-                                              `kubernetes.io` signers will never issue certificates with a lifetime
-                                              longer than 24 hours.
-                                            format: int32
-                                            type: integer
-                                          signerName:
-                                            description: Kubelet's generated CSRs
-                                              will be addressed to this signer.
-                                            type: string
-                                          userAnnotations:
-                                            additionalProperties:
-                                              type: string
-                                            description: |-
-                                              userAnnotations allow pod authors to pass additional information to
-                                              the signer implementation.  Kubernetes does not restrict or validate this
-                                              metadata in any way.
-
-                                              These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
-                                              the PodCertificateRequest objects that Kubelet creates.
-
-                                              Entries are subject to the same validation as object metadata annotations,
-                                              with the addition that all keys must be domain-prefixed. No restrictions
-                                              are placed on values, except an overall size limitation on the entire field.
-
-                                              Signers should document the keys and values they support. Signers should
-                                              deny requests that contain keys they do not recognize.
-                                            type: object
-                                        required:
-                                        - keyType
-                                        - signerName
-                                        type: object
                                       secret:
                                         description: secret information about the
                                           secret data to project
@@ -3501,9 +3253,8 @@ spec:
                                   x-kubernetes-list-type: atomic
                               type: object
                             quobyte:
-                              description: |-
-                                quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
-                                Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
+                              description: quobyte represents a Quobyte mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 group:
                                   description: |-
@@ -3542,7 +3293,7 @@ spec:
                             rbd:
                               description: |-
                                 rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
-                                Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/rbd/README.md
                               properties:
                                 fsType:
                                   description: |-
@@ -3557,7 +3308,6 @@ spec:
                                     More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
                                   type: string
                                 keyring:
-                                  default: /etc/ceph/keyring
                                   description: |-
                                     keyring is the path to key ring for RBDUser.
                                     Default is /etc/ceph/keyring.
@@ -3572,7 +3322,6 @@ spec:
                                   type: array
                                   x-kubernetes-list-type: atomic
                                 pool:
-                                  default: rbd
                                   description: |-
                                     pool is the rados pool name.
                                     Default is rbd.
@@ -3603,7 +3352,6 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 user:
-                                  default: admin
                                   description: |-
                                     user is the rados user name.
                                     Default is admin.
@@ -3614,12 +3362,10 @@ spec:
                               - monitors
                               type: object
                             scaleIO:
-                              description: |-
-                                scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
-                                Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
+                              description: scaleIO represents a ScaleIO persistent
+                                volume attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
-                                  default: xfs
                                   description: |-
                                     fsType is the filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -3660,7 +3406,6 @@ spec:
                                     communication with Gateway, default false
                                   type: boolean
                                 storageMode:
-                                  default: ThinProvisioned
                                   description: |-
                                     storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
                                     Default is ThinProvisioned.
@@ -3749,9 +3494,8 @@ spec:
                                   type: string
                               type: object
                             storageos:
-                              description: |-
-                                storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
-                                Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
+                              description: storageOS represents a StorageOS volume
+                                attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
                                   description: |-
@@ -3796,10 +3540,8 @@ spec:
                                   type: string
                               type: object
                             vsphereVolume:
-                              description: |-
-                                vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
-                                Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
-                                are redirected to the csi.vsphere.vmware.com CSI driver.
+                              description: vsphereVolume represents a vSphere volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-

+ 0 - 37
config/crd/bases/locostack.com_externalmodels.yaml

@@ -185,43 +185,6 @@ spec:
                               - fieldPath
                               type: object
                               x-kubernetes-map-type: atomic
-                            fileKeyRef:
-                              description: |-
-                                FileKeyRef selects a key of the env file.
-                                Requires the EnvFiles feature gate to be enabled.
-                              properties:
-                                key:
-                                  description: |-
-                                    The key within the env file. An invalid key will prevent the pod from starting.
-                                    The keys defined within a source may consist of any printable ASCII characters except '='.
-                                    During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                  type: string
-                                optional:
-                                  default: false
-                                  description: |-
-                                    Specify whether the file or its key must be defined. If the file or key
-                                    does not exist, then the env var is not published.
-                                    If optional is set to true and the specified key does not exist,
-                                    the environment variable will not be set in the Pod's containers.
-
-                                    If optional is set to false and the specified key does not exist,
-                                    an error will be returned during Pod creation.
-                                  type: boolean
-                                path:
-                                  description: |-
-                                    The path within the volume from which to select the file.
-                                    Must be relative and may not contain the '..' path or start with '..'.
-                                  type: string
-                                volumeName:
-                                  description: The name of the volume mount containing
-                                    the env file.
-                                  type: string
-                              required:
-                              - key
-                              - path
-                              - volumeName
-                              type: object
-                              x-kubernetes-map-type: atomic
                             resourceFieldRef:
                               description: |-
                                 Selects a resource of the container: only resources limits and requests

+ 0 - 37
config/crd/bases/locostack.com_externaltools.yaml

@@ -170,43 +170,6 @@ spec:
                               - fieldPath
                               type: object
                               x-kubernetes-map-type: atomic
-                            fileKeyRef:
-                              description: |-
-                                FileKeyRef selects a key of the env file.
-                                Requires the EnvFiles feature gate to be enabled.
-                              properties:
-                                key:
-                                  description: |-
-                                    The key within the env file. An invalid key will prevent the pod from starting.
-                                    The keys defined within a source may consist of any printable ASCII characters except '='.
-                                    During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                  type: string
-                                optional:
-                                  default: false
-                                  description: |-
-                                    Specify whether the file or its key must be defined. If the file or key
-                                    does not exist, then the env var is not published.
-                                    If optional is set to true and the specified key does not exist,
-                                    the environment variable will not be set in the Pod's containers.
-
-                                    If optional is set to false and the specified key does not exist,
-                                    an error will be returned during Pod creation.
-                                  type: boolean
-                                path:
-                                  description: |-
-                                    The path within the volume from which to select the file.
-                                    Must be relative and may not contain the '..' path or start with '..'.
-                                  type: string
-                                volumeName:
-                                  description: The name of the volume mount containing
-                                    the env file.
-                                  type: string
-                              required:
-                              - key
-                              - path
-                              - volumeName
-                              type: object
-                              x-kubernetes-map-type: atomic
                             resourceFieldRef:
                               description: |-
                                 Selects a resource of the container: only resources limits and requests

File diff suppressed because it is too large
+ 87 - 419
config/crd/bases/locostack.com_managedknowledgebases.yaml


+ 64 - 322
config/crd/bases/locostack.com_managedmodels.yaml

@@ -412,6 +412,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -426,6 +427,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -593,6 +595,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -607,6 +610,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -700,8 +704,8 @@ spec:
                                   most preferred is the one with the greatest sum of weights, i.e.
                                   for each node that meets all of the scheduling requirements (resource
                                   request, requiredDuringScheduling anti-affinity expressions, etc.),
-                                  compute a sum by iterating through the elements of this field and subtracting
-                                  "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
+                                  compute a sum by iterating through the elements of this field and adding
+                                  "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                                   node(s) with the highest sum are the most preferred.
                                 items:
                                   description: The weights of all of the matched WeightedPodAffinityTerm
@@ -772,6 +776,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -786,6 +791,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -953,6 +959,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -967,6 +974,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -1063,7 +1071,7 @@ spec:
                               Claims lists the names of resources, defined in spec.resourceClaims,
                               that are used by this container.
 
-                              This field depends on the
+                              This is an alpha field and requires enabling the
                               DynamicResourceAllocation feature gate.
 
                               This field is immutable. It can only be set for containers.
@@ -1076,12 +1084,6 @@ spec:
                                     the Pod where this field is used. It makes that resource available
                                     inside a container.
                                   type: string
-                                request:
-                                  description: |-
-                                    Request is the name chosen for a request in the referenced claim.
-                                    If empty, everything from the claim is made available, otherwise
-                                    only the result of this request.
-                                  type: string
                               required:
                               - name
                               type: object
@@ -1158,9 +1160,8 @@ spec:
                                 present in a Container.
                               properties:
                                 name:
-                                  description: |-
-                                    Name of the environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: Name of the environment variable. Must
+                                    be a C_IDENTIFIER.
                                   type: string
                                 value:
                                   description: |-
@@ -1218,43 +1219,6 @@ spec:
                                       - fieldPath
                                       type: object
                                       x-kubernetes-map-type: atomic
-                                    fileKeyRef:
-                                      description: |-
-                                        FileKeyRef selects a key of the env file.
-                                        Requires the EnvFiles feature gate to be enabled.
-                                      properties:
-                                        key:
-                                          description: |-
-                                            The key within the env file. An invalid key will prevent the pod from starting.
-                                            The keys defined within a source may consist of any printable ASCII characters except '='.
-                                            During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                          type: string
-                                        optional:
-                                          default: false
-                                          description: |-
-                                            Specify whether the file or its key must be defined. If the file or key
-                                            does not exist, then the env var is not published.
-                                            If optional is set to true and the specified key does not exist,
-                                            the environment variable will not be set in the Pod's containers.
-
-                                            If optional is set to false and the specified key does not exist,
-                                            an error will be returned during Pod creation.
-                                          type: boolean
-                                        path:
-                                          description: |-
-                                            The path within the volume from which to select the file.
-                                            Must be relative and may not contain the '..' path or start with '..'.
-                                          type: string
-                                        volumeName:
-                                          description: The name of the volume mount
-                                            containing the env file.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      - volumeName
-                                      type: object
-                                      x-kubernetes-map-type: atomic
                                     resourceFieldRef:
                                       description: |-
                                         Selects a resource of the container: only resources limits and requests
@@ -1315,7 +1279,7 @@ spec:
                               whose key-value pairs are injected as environment variables.
                             items:
                               description: EnvFromSource represents the source of
-                                a set of ConfigMaps or Secrets
+                                a set of ConfigMaps
                               properties:
                                 configMapRef:
                                   description: The ConfigMap to select from
@@ -1336,9 +1300,8 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 prefix:
-                                  description: |-
-                                    Optional text to prepend to the name of each environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: An optional identifier to prepend to
+                                    each key in the ConfigMap. Must be a C_IDENTIFIER.
                                   type: string
                                 secretRef:
                                   description: The Secret to select from
@@ -1525,32 +1488,6 @@ spec:
                               Note that this field cannot be set when spec.os.name is windows.
                             format: int64
                             type: integer
-                          seLinuxChangePolicy:
-                            description: |-
-                              seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
-                              It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
-                              Valid values are "MountOption" and "Recursive".
-
-                              "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
-                              This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
-
-                              "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
-                              This requires all Pods that share the same volume to use the same SELinux label.
-                              It is not possible to share the same volume among privileged and unprivileged Pods.
-                              Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
-                              whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
-                              CSIDriver instance. Other volumes are always re-labelled recursively.
-                              "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
-
-                              If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
-                              If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
-                              and "Recursive" for all other volumes.
-
-                              This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
-
-                              All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           seLinuxOptions:
                             description: |-
                               The SELinux context to be applied to all containers.
@@ -1603,28 +1540,18 @@ spec:
                             type: object
                           supplementalGroups:
                             description: |-
-                              A list of groups applied to the first process run in each container, in
-                              addition to the container's primary GID and fsGroup (if specified).  If
-                              the SupplementalGroupsPolicy feature is enabled, the
-                              supplementalGroupsPolicy field determines whether these are in addition
-                              to or instead of any group memberships defined in the container image.
-                              If unspecified, no additional groups are added, though group memberships
-                              defined in the container image may still be used, depending on the
-                              supplementalGroupsPolicy field.
+                              A list of groups applied to the first process run in each container, in addition
+                              to the container's primary GID, the fsGroup (if specified), and group memberships
+                              defined in the container image for the uid of the container process. If unspecified,
+                              no additional groups are added to any container. Note that group memberships
+                              defined in the container image for the uid of the container process are still effective,
+                              even if they are not included in this list.
                               Note that this field cannot be set when spec.os.name is windows.
                             items:
                               format: int64
                               type: integer
                             type: array
                             x-kubernetes-list-type: atomic
-                          supplementalGroupsPolicy:
-                            description: |-
-                              Defines how supplemental groups of the first container processes are calculated.
-                              Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
-                              (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
-                              and the container runtime must implement support for this feature.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           sysctls:
                             description: |-
                               Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
@@ -1700,10 +1627,9 @@ spec:
                             operator:
                               description: |-
                                 Operator represents a key's relationship to the value.
-                                Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
+                                Valid operators are Exists and Equal. Defaults to Equal.
                                 Exists is equivalent to wildcard for value, so that a pod can
                                 tolerate all taints of a particular category.
-                                Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
                               type: string
                             tolerationSeconds:
                               description: |-
@@ -1845,6 +1771,7 @@ spec:
                                 - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
 
                                 If this value is nil, the behavior is equivalent to the Honor policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             nodeTaintsPolicy:
                               description: |-
@@ -1855,6 +1782,7 @@ spec:
                                 - Ignore: node taints are ignored. All nodes are included.
 
                                 If this value is nil, the behavior is equivalent to the Ignore policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             topologyKey:
                               description: |-
@@ -1907,8 +1835,6 @@ spec:
                               description: |-
                                 awsElasticBlockStore represents an AWS Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
-                                awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                               properties:
                                 fsType:
@@ -1940,10 +1866,8 @@ spec:
                               - volumeID
                               type: object
                             azureDisk:
-                              description: |-
-                                azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
-                                Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
-                                are redirected to the disk.csi.azure.com CSI driver.
+                              description: azureDisk represents an Azure Data Disk
+                                mount on the host and bind mount to the pod.
                               properties:
                                 cachingMode:
                                   description: 'cachingMode is the Host Caching mode:
@@ -1958,7 +1882,6 @@ spec:
                                     the blob storage
                                   type: string
                                 fsType:
-                                  default: ext4
                                   description: |-
                                     fsType is Filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -1972,7 +1895,6 @@ spec:
                                     set). defaults to shared'
                                   type: string
                                 readOnly:
-                                  default: false
                                   description: |-
                                     readOnly Defaults to false (read/write). ReadOnly here will force
                                     the ReadOnly setting in VolumeMounts.
@@ -1982,10 +1904,8 @@ spec:
                               - diskURI
                               type: object
                             azureFile:
-                              description: |-
-                                azureFile represents an Azure File Service mount on the host and bind mount to the pod.
-                                Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
-                                are redirected to the file.csi.azure.com CSI driver.
+                              description: azureFile represents an Azure File Service
+                                mount on the host and bind mount to the pod.
                               properties:
                                 readOnly:
                                   description: |-
@@ -2004,9 +1924,8 @@ spec:
                               - shareName
                               type: object
                             cephfs:
-                              description: |-
-                                cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
-                                Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
+                              description: cephFS represents a Ceph FS mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 monitors:
                                   description: |-
@@ -2059,8 +1978,6 @@ spec:
                             cinder:
                               description: |-
                                 cinder represents a cinder volume attached and mounted on kubelets host machine.
-                                Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
-                                are redirected to the cinder.csi.openstack.org CSI driver.
                                 More info: https://examples.k8s.io/mysql-cinder-pd/README.md
                               properties:
                                 fsType:
@@ -2172,7 +2089,7 @@ spec:
                             csi:
                               description: csi (Container Storage Interface) represents
                                 ephemeral storage that is handled by certain external
-                                CSI drivers.
+                                CSI drivers (Beta feature).
                               properties:
                                 driver:
                                   description: |-
@@ -2490,7 +2407,7 @@ spec:
                                         resources:
                                           description: |-
                                             resources represents the minimum resources the volume should have.
-                                            Users are allowed to specify resource requirements
+                                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
                                             that are lower than previous value but must still be higher than capacity recorded in the
                                             status field of the claim.
                                             More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
@@ -2579,13 +2496,15 @@ spec:
                                             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 or nil value indicates that no
-                                            VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
-                                            this field can be reset to its previous value (including nil) to cancel the modification.
+                                            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/volume-attributes-classes/
+                                            (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
                                           type: string
                                         volumeMode:
                                           description: |-
@@ -2641,7 +2560,6 @@ spec:
                               description: |-
                                 flexVolume represents a generic volume resource that is
                                 provisioned/attached using an exec based plugin.
-                                Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
                               properties:
                                 driver:
                                   description: driver is the name of the driver to
@@ -2687,9 +2605,9 @@ spec:
                               - driver
                               type: object
                             flocker:
-                              description: |-
-                                flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
-                                Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
+                              description: flocker represents a Flocker volume attached
+                                to a kubelet's host machine. This depends on the Flocker
+                                control service being running
                               properties:
                                 datasetName:
                                   description: |-
@@ -2705,8 +2623,6 @@ spec:
                               description: |-
                                 gcePersistentDisk represents a GCE Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
-                                gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                               properties:
                                 fsType:
@@ -2742,7 +2658,7 @@ spec:
                             gitRepo:
                               description: |-
                                 gitRepo represents a git repository at a particular revision.
-                                Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
+                                DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
                                 EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
                                 into the Pod's container.
                               properties:
@@ -2766,11 +2682,12 @@ spec:
                             glusterfs:
                               description: |-
                                 glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
-                                Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/glusterfs/README.md
                               properties:
                                 endpoints:
-                                  description: endpoints is the endpoint name that
-                                    details Glusterfs topology.
+                                  description: |-
+                                    endpoints is the endpoint name that details Glusterfs topology.
+                                    More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
                                   type: string
                                 path:
                                   description: |-
@@ -2810,46 +2727,11 @@ spec:
                               required:
                               - path
                               type: object
-                            image:
-                              description: |-
-                                image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
-                                The volume is resolved at pod startup depending on which PullPolicy value is provided:
-
-                                - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-
-                                The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
-                                A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
-                                The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
-                                The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
-                                The volume will be mounted read-only (ro) and non-executable files (noexec).
-                                Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
-                                The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
-                              properties:
-                                pullPolicy:
-                                  description: |-
-                                    Policy for pulling OCI objects. Possible values are:
-                                    Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                    Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                    IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-                                    Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
-                                  type: string
-                                reference:
-                                  description: |-
-                                    Required: Image or artifact reference to be used.
-                                    Behaves in the same way as pod.spec.containers[*].image.
-                                    Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
-                                    More info: https://kubernetes.io/docs/concepts/containers/images
-                                    This field is optional to allow higher level config management to default or override
-                                    container images in workload controllers like Deployments and StatefulSets.
-                                  type: string
-                              type: object
                             iscsi:
                               description: |-
                                 iscsi represents an ISCSI Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
+                                More info: https://examples.k8s.io/volumes/iscsi/README.md
                               properties:
                                 chapAuthDiscovery:
                                   description: chapAuthDiscovery defines whether support
@@ -2876,7 +2758,6 @@ spec:
                                   description: iqn is the target iSCSI Qualified Name.
                                   type: string
                                 iscsiInterface:
-                                  default: default
                                   description: |-
                                     iscsiInterface is the interface Name that uses an iSCSI transport.
                                     Defaults to 'default' (tcp).
@@ -2974,9 +2855,9 @@ spec:
                               - claimName
                               type: object
                             photonPersistentDisk:
-                              description: |-
-                                photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
-                                Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
+                              description: photonPersistentDisk represents a PhotonController
+                                persistent disk attached and mounted on kubelets host
+                                machine
                               properties:
                                 fsType:
                                   description: |-
@@ -2992,11 +2873,8 @@ spec:
                               - pdID
                               type: object
                             portworxVolume:
-                              description: |-
-                                portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
-                                Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
-                                are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
-                                is on.
+                              description: portworxVolume represents a portworx volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3031,13 +2909,10 @@ spec:
                                   format: int32
                                   type: integer
                                 sources:
-                                  description: |-
-                                    sources is the list of volume projections. Each entry in this list
-                                    handles one source.
+                                  description: sources is the list of volume projections
                                   items:
-                                    description: |-
-                                      Projection that may be projected along with other supported volume types.
-                                      Exactly one of these fields must be set.
+                                    description: Projection that may be projected
+                                      along with other supported volume types
                                     properties:
                                       clusterTrustBundle:
                                         description: |-
@@ -3275,129 +3150,6 @@ spec:
                                             type: array
                                             x-kubernetes-list-type: atomic
                                         type: object
-                                      podCertificate:
-                                        description: |-
-                                          Projects an auto-rotating credential bundle (private key and certificate
-                                          chain) that the pod can use either as a TLS client or server.
-
-                                          Kubelet generates a private key and uses it to send a
-                                          PodCertificateRequest to the named signer.  Once the signer approves the
-                                          request and issues a certificate chain, Kubelet writes the key and
-                                          certificate chain to the pod filesystem.  The pod does not start until
-                                          certificates have been issued for each podCertificate projected volume
-                                          source in its spec.
-
-                                          Kubelet will begin trying to rotate the certificate at the time indicated
-                                          by the signer using the PodCertificateRequest.Status.BeginRefreshAt
-                                          timestamp.
-
-                                          Kubelet can write a single file, indicated by the credentialBundlePath
-                                          field, or separate files, indicated by the keyPath and
-                                          certificateChainPath fields.
-
-                                          The credential bundle is a single file in PEM format.  The first PEM
-                                          entry is the private key (in PKCS#8 format), and the remaining PEM
-                                          entries are the certificate chain issued by the signer (typically,
-                                          signers will return their certificate chain in leaf-to-root order).
-
-                                          Prefer using the credential bundle format, since your application code
-                                          can read it atomically.  If you use keyPath and certificateChainPath,
-                                          your application must make two separate file reads. If these coincide
-                                          with a certificate rotation, it is possible that the private key and leaf
-                                          certificate you read may not correspond to each other.  Your application
-                                          will need to check for this condition, and re-read until they are
-                                          consistent.
-
-                                          The named signer controls chooses the format of the certificate it
-                                          issues; consult the signer implementation's documentation to learn how to
-                                          use the certificates it issues.
-                                        properties:
-                                          certificateChainPath:
-                                            description: |-
-                                              Write the certificate chain at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          credentialBundlePath:
-                                            description: |-
-                                              Write the credential bundle at this path in the projected volume.
-
-                                              The credential bundle is a single file that contains multiple PEM blocks.
-                                              The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
-                                              key.
-
-                                              The remaining blocks are CERTIFICATE blocks, containing the issued
-                                              certificate chain from the signer (leaf and any intermediates).
-
-                                              Using credentialBundlePath lets your Pod's application code make a single
-                                              atomic read that retrieves a consistent key and certificate chain.  If you
-                                              project them to separate files, your application code will need to
-                                              additionally check that the leaf certificate was issued to the key.
-                                            type: string
-                                          keyPath:
-                                            description: |-
-                                              Write the key at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          keyType:
-                                            description: |-
-                                              The type of keypair Kubelet will generate for the pod.
-
-                                              Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
-                                              "ECDSAP521", and "ED25519".
-                                            type: string
-                                          maxExpirationSeconds:
-                                            description: |-
-                                              maxExpirationSeconds is the maximum lifetime permitted for the
-                                              certificate.
-
-                                              Kubelet copies this value verbatim into the PodCertificateRequests it
-                                              generates for this projection.
-
-                                              If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
-                                              will reject values shorter than 3600 (1 hour).  The maximum allowable
-                                              value is 7862400 (91 days).
-
-                                              The signer implementation is then free to issue a certificate with any
-                                              lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
-                                              seconds (1 hour).  This constraint is enforced by kube-apiserver.
-                                              `kubernetes.io` signers will never issue certificates with a lifetime
-                                              longer than 24 hours.
-                                            format: int32
-                                            type: integer
-                                          signerName:
-                                            description: Kubelet's generated CSRs
-                                              will be addressed to this signer.
-                                            type: string
-                                          userAnnotations:
-                                            additionalProperties:
-                                              type: string
-                                            description: |-
-                                              userAnnotations allow pod authors to pass additional information to
-                                              the signer implementation.  Kubernetes does not restrict or validate this
-                                              metadata in any way.
-
-                                              These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
-                                              the PodCertificateRequest objects that Kubelet creates.
-
-                                              Entries are subject to the same validation as object metadata annotations,
-                                              with the addition that all keys must be domain-prefixed. No restrictions
-                                              are placed on values, except an overall size limitation on the entire field.
-
-                                              Signers should document the keys and values they support. Signers should
-                                              deny requests that contain keys they do not recognize.
-                                            type: object
-                                        required:
-                                        - keyType
-                                        - signerName
-                                        type: object
                                       secret:
                                         description: secret information about the
                                           secret data to project
@@ -3490,9 +3242,8 @@ spec:
                                   x-kubernetes-list-type: atomic
                               type: object
                             quobyte:
-                              description: |-
-                                quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
-                                Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
+                              description: quobyte represents a Quobyte mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 group:
                                   description: |-
@@ -3531,7 +3282,7 @@ spec:
                             rbd:
                               description: |-
                                 rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
-                                Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/rbd/README.md
                               properties:
                                 fsType:
                                   description: |-
@@ -3546,7 +3297,6 @@ spec:
                                     More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
                                   type: string
                                 keyring:
-                                  default: /etc/ceph/keyring
                                   description: |-
                                     keyring is the path to key ring for RBDUser.
                                     Default is /etc/ceph/keyring.
@@ -3561,7 +3311,6 @@ spec:
                                   type: array
                                   x-kubernetes-list-type: atomic
                                 pool:
-                                  default: rbd
                                   description: |-
                                     pool is the rados pool name.
                                     Default is rbd.
@@ -3592,7 +3341,6 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 user:
-                                  default: admin
                                   description: |-
                                     user is the rados user name.
                                     Default is admin.
@@ -3603,12 +3351,10 @@ spec:
                               - monitors
                               type: object
                             scaleIO:
-                              description: |-
-                                scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
-                                Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
+                              description: scaleIO represents a ScaleIO persistent
+                                volume attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
-                                  default: xfs
                                   description: |-
                                     fsType is the filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -3649,7 +3395,6 @@ spec:
                                     communication with Gateway, default false
                                   type: boolean
                                 storageMode:
-                                  default: ThinProvisioned
                                   description: |-
                                     storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
                                     Default is ThinProvisioned.
@@ -3738,9 +3483,8 @@ spec:
                                   type: string
                               type: object
                             storageos:
-                              description: |-
-                                storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
-                                Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
+                              description: storageOS represents a StorageOS volume
+                                attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
                                   description: |-
@@ -3785,10 +3529,8 @@ spec:
                                   type: string
                               type: object
                             vsphereVolume:
-                              description: |-
-                                vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
-                                Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
-                                are redirected to the csi.vsphere.vmware.com CSI driver.
+                              description: vsphereVolume represents a vSphere volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-

+ 64 - 359
config/crd/bases/locostack.com_managedtools.yaml

@@ -176,43 +176,6 @@ spec:
                               - fieldPath
                               type: object
                               x-kubernetes-map-type: atomic
-                            fileKeyRef:
-                              description: |-
-                                FileKeyRef selects a key of the env file.
-                                Requires the EnvFiles feature gate to be enabled.
-                              properties:
-                                key:
-                                  description: |-
-                                    The key within the env file. An invalid key will prevent the pod from starting.
-                                    The keys defined within a source may consist of any printable ASCII characters except '='.
-                                    During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                  type: string
-                                optional:
-                                  default: false
-                                  description: |-
-                                    Specify whether the file or its key must be defined. If the file or key
-                                    does not exist, then the env var is not published.
-                                    If optional is set to true and the specified key does not exist,
-                                    the environment variable will not be set in the Pod's containers.
-
-                                    If optional is set to false and the specified key does not exist,
-                                    an error will be returned during Pod creation.
-                                  type: boolean
-                                path:
-                                  description: |-
-                                    The path within the volume from which to select the file.
-                                    Must be relative and may not contain the '..' path or start with '..'.
-                                  type: string
-                                volumeName:
-                                  description: The name of the volume mount containing
-                                    the env file.
-                                  type: string
-                              required:
-                              - key
-                              - path
-                              - volumeName
-                              type: object
-                              x-kubernetes-map-type: atomic
                             resourceFieldRef:
                               description: |-
                                 Selects a resource of the container: only resources limits and requests
@@ -584,6 +547,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -598,6 +562,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -765,6 +730,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -779,6 +745,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -872,8 +839,8 @@ spec:
                                   most preferred is the one with the greatest sum of weights, i.e.
                                   for each node that meets all of the scheduling requirements (resource
                                   request, requiredDuringScheduling anti-affinity expressions, etc.),
-                                  compute a sum by iterating through the elements of this field and subtracting
-                                  "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
+                                  compute a sum by iterating through the elements of this field and adding
+                                  "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                                   node(s) with the highest sum are the most preferred.
                                 items:
                                   description: The weights of all of the matched WeightedPodAffinityTerm
@@ -944,6 +911,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                             Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -958,6 +926,7 @@ spec:
                                             pod labels will be ignored. The default value is empty.
                                             The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                             Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                            This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                           items:
                                             type: string
                                           type: array
@@ -1125,6 +1094,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                         Also, matchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -1139,6 +1109,7 @@ spec:
                                         pod labels will be ignored. The default value is empty.
                                         The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                         Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
+                                        This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
                                       items:
                                         type: string
                                       type: array
@@ -1235,7 +1206,7 @@ spec:
                               Claims lists the names of resources, defined in spec.resourceClaims,
                               that are used by this container.
 
-                              This field depends on the
+                              This is an alpha field and requires enabling the
                               DynamicResourceAllocation feature gate.
 
                               This field is immutable. It can only be set for containers.
@@ -1248,12 +1219,6 @@ spec:
                                     the Pod where this field is used. It makes that resource available
                                     inside a container.
                                   type: string
-                                request:
-                                  description: |-
-                                    Request is the name chosen for a request in the referenced claim.
-                                    If empty, everything from the claim is made available, otherwise
-                                    only the result of this request.
-                                  type: string
                               required:
                               - name
                               type: object
@@ -1330,9 +1295,8 @@ spec:
                                 present in a Container.
                               properties:
                                 name:
-                                  description: |-
-                                    Name of the environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: Name of the environment variable. Must
+                                    be a C_IDENTIFIER.
                                   type: string
                                 value:
                                   description: |-
@@ -1390,43 +1354,6 @@ spec:
                                       - fieldPath
                                       type: object
                                       x-kubernetes-map-type: atomic
-                                    fileKeyRef:
-                                      description: |-
-                                        FileKeyRef selects a key of the env file.
-                                        Requires the EnvFiles feature gate to be enabled.
-                                      properties:
-                                        key:
-                                          description: |-
-                                            The key within the env file. An invalid key will prevent the pod from starting.
-                                            The keys defined within a source may consist of any printable ASCII characters except '='.
-                                            During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
-                                          type: string
-                                        optional:
-                                          default: false
-                                          description: |-
-                                            Specify whether the file or its key must be defined. If the file or key
-                                            does not exist, then the env var is not published.
-                                            If optional is set to true and the specified key does not exist,
-                                            the environment variable will not be set in the Pod's containers.
-
-                                            If optional is set to false and the specified key does not exist,
-                                            an error will be returned during Pod creation.
-                                          type: boolean
-                                        path:
-                                          description: |-
-                                            The path within the volume from which to select the file.
-                                            Must be relative and may not contain the '..' path or start with '..'.
-                                          type: string
-                                        volumeName:
-                                          description: The name of the volume mount
-                                            containing the env file.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      - volumeName
-                                      type: object
-                                      x-kubernetes-map-type: atomic
                                     resourceFieldRef:
                                       description: |-
                                         Selects a resource of the container: only resources limits and requests
@@ -1487,7 +1414,7 @@ spec:
                               whose key-value pairs are injected as environment variables.
                             items:
                               description: EnvFromSource represents the source of
-                                a set of ConfigMaps or Secrets
+                                a set of ConfigMaps
                               properties:
                                 configMapRef:
                                   description: The ConfigMap to select from
@@ -1508,9 +1435,8 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 prefix:
-                                  description: |-
-                                    Optional text to prepend to the name of each environment variable.
-                                    May consist of any printable ASCII characters except '='.
+                                  description: An optional identifier to prepend to
+                                    each key in the ConfigMap. Must be a C_IDENTIFIER.
                                   type: string
                                 secretRef:
                                   description: The Secret to select from
@@ -1697,32 +1623,6 @@ spec:
                               Note that this field cannot be set when spec.os.name is windows.
                             format: int64
                             type: integer
-                          seLinuxChangePolicy:
-                            description: |-
-                              seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
-                              It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
-                              Valid values are "MountOption" and "Recursive".
-
-                              "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
-                              This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
-
-                              "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
-                              This requires all Pods that share the same volume to use the same SELinux label.
-                              It is not possible to share the same volume among privileged and unprivileged Pods.
-                              Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
-                              whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
-                              CSIDriver instance. Other volumes are always re-labelled recursively.
-                              "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
-
-                              If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
-                              If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
-                              and "Recursive" for all other volumes.
-
-                              This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
-
-                              All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           seLinuxOptions:
                             description: |-
                               The SELinux context to be applied to all containers.
@@ -1775,28 +1675,18 @@ spec:
                             type: object
                           supplementalGroups:
                             description: |-
-                              A list of groups applied to the first process run in each container, in
-                              addition to the container's primary GID and fsGroup (if specified).  If
-                              the SupplementalGroupsPolicy feature is enabled, the
-                              supplementalGroupsPolicy field determines whether these are in addition
-                              to or instead of any group memberships defined in the container image.
-                              If unspecified, no additional groups are added, though group memberships
-                              defined in the container image may still be used, depending on the
-                              supplementalGroupsPolicy field.
+                              A list of groups applied to the first process run in each container, in addition
+                              to the container's primary GID, the fsGroup (if specified), and group memberships
+                              defined in the container image for the uid of the container process. If unspecified,
+                              no additional groups are added to any container. Note that group memberships
+                              defined in the container image for the uid of the container process are still effective,
+                              even if they are not included in this list.
                               Note that this field cannot be set when spec.os.name is windows.
                             items:
                               format: int64
                               type: integer
                             type: array
                             x-kubernetes-list-type: atomic
-                          supplementalGroupsPolicy:
-                            description: |-
-                              Defines how supplemental groups of the first container processes are calculated.
-                              Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
-                              (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
-                              and the container runtime must implement support for this feature.
-                              Note that this field cannot be set when spec.os.name is windows.
-                            type: string
                           sysctls:
                             description: |-
                               Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
@@ -1872,10 +1762,9 @@ spec:
                             operator:
                               description: |-
                                 Operator represents a key's relationship to the value.
-                                Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
+                                Valid operators are Exists and Equal. Defaults to Equal.
                                 Exists is equivalent to wildcard for value, so that a pod can
                                 tolerate all taints of a particular category.
-                                Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
                               type: string
                             tolerationSeconds:
                               description: |-
@@ -2017,6 +1906,7 @@ spec:
                                 - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
 
                                 If this value is nil, the behavior is equivalent to the Honor policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             nodeTaintsPolicy:
                               description: |-
@@ -2027,6 +1917,7 @@ spec:
                                 - Ignore: node taints are ignored. All nodes are included.
 
                                 If this value is nil, the behavior is equivalent to the Ignore policy.
+                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                               type: string
                             topologyKey:
                               description: |-
@@ -2079,8 +1970,6 @@ spec:
                               description: |-
                                 awsElasticBlockStore represents an AWS Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
-                                awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                               properties:
                                 fsType:
@@ -2112,10 +2001,8 @@ spec:
                               - volumeID
                               type: object
                             azureDisk:
-                              description: |-
-                                azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
-                                Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
-                                are redirected to the disk.csi.azure.com CSI driver.
+                              description: azureDisk represents an Azure Data Disk
+                                mount on the host and bind mount to the pod.
                               properties:
                                 cachingMode:
                                   description: 'cachingMode is the Host Caching mode:
@@ -2130,7 +2017,6 @@ spec:
                                     the blob storage
                                   type: string
                                 fsType:
-                                  default: ext4
                                   description: |-
                                     fsType is Filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -2144,7 +2030,6 @@ spec:
                                     set). defaults to shared'
                                   type: string
                                 readOnly:
-                                  default: false
                                   description: |-
                                     readOnly Defaults to false (read/write). ReadOnly here will force
                                     the ReadOnly setting in VolumeMounts.
@@ -2154,10 +2039,8 @@ spec:
                               - diskURI
                               type: object
                             azureFile:
-                              description: |-
-                                azureFile represents an Azure File Service mount on the host and bind mount to the pod.
-                                Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
-                                are redirected to the file.csi.azure.com CSI driver.
+                              description: azureFile represents an Azure File Service
+                                mount on the host and bind mount to the pod.
                               properties:
                                 readOnly:
                                   description: |-
@@ -2176,9 +2059,8 @@ spec:
                               - shareName
                               type: object
                             cephfs:
-                              description: |-
-                                cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
-                                Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
+                              description: cephFS represents a Ceph FS mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 monitors:
                                   description: |-
@@ -2231,8 +2113,6 @@ spec:
                             cinder:
                               description: |-
                                 cinder represents a cinder volume attached and mounted on kubelets host machine.
-                                Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
-                                are redirected to the cinder.csi.openstack.org CSI driver.
                                 More info: https://examples.k8s.io/mysql-cinder-pd/README.md
                               properties:
                                 fsType:
@@ -2344,7 +2224,7 @@ spec:
                             csi:
                               description: csi (Container Storage Interface) represents
                                 ephemeral storage that is handled by certain external
-                                CSI drivers.
+                                CSI drivers (Beta feature).
                               properties:
                                 driver:
                                   description: |-
@@ -2662,7 +2542,7 @@ spec:
                                         resources:
                                           description: |-
                                             resources represents the minimum resources the volume should have.
-                                            Users are allowed to specify resource requirements
+                                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
                                             that are lower than previous value but must still be higher than capacity recorded in the
                                             status field of the claim.
                                             More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
@@ -2751,13 +2631,15 @@ spec:
                                             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 or nil value indicates that no
-                                            VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
-                                            this field can be reset to its previous value (including nil) to cancel the modification.
+                                            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/volume-attributes-classes/
+                                            (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
                                           type: string
                                         volumeMode:
                                           description: |-
@@ -2813,7 +2695,6 @@ spec:
                               description: |-
                                 flexVolume represents a generic volume resource that is
                                 provisioned/attached using an exec based plugin.
-                                Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
                               properties:
                                 driver:
                                   description: driver is the name of the driver to
@@ -2859,9 +2740,9 @@ spec:
                               - driver
                               type: object
                             flocker:
-                              description: |-
-                                flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
-                                Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
+                              description: flocker represents a Flocker volume attached
+                                to a kubelet's host machine. This depends on the Flocker
+                                control service being running
                               properties:
                                 datasetName:
                                   description: |-
@@ -2877,8 +2758,6 @@ spec:
                               description: |-
                                 gcePersistentDisk represents a GCE Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
-                                gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
                                 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                               properties:
                                 fsType:
@@ -2914,7 +2793,7 @@ spec:
                             gitRepo:
                               description: |-
                                 gitRepo represents a git repository at a particular revision.
-                                Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
+                                DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
                                 EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
                                 into the Pod's container.
                               properties:
@@ -2938,11 +2817,12 @@ spec:
                             glusterfs:
                               description: |-
                                 glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
-                                Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/glusterfs/README.md
                               properties:
                                 endpoints:
-                                  description: endpoints is the endpoint name that
-                                    details Glusterfs topology.
+                                  description: |-
+                                    endpoints is the endpoint name that details Glusterfs topology.
+                                    More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
                                   type: string
                                 path:
                                   description: |-
@@ -2982,46 +2862,11 @@ spec:
                               required:
                               - path
                               type: object
-                            image:
-                              description: |-
-                                image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
-                                The volume is resolved at pod startup depending on which PullPolicy value is provided:
-
-                                - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-
-                                The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
-                                A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
-                                The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
-                                The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
-                                The volume will be mounted read-only (ro) and non-executable files (noexec).
-                                Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
-                                The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
-                              properties:
-                                pullPolicy:
-                                  description: |-
-                                    Policy for pulling OCI objects. Possible values are:
-                                    Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
-                                    Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
-                                    IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
-                                    Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
-                                  type: string
-                                reference:
-                                  description: |-
-                                    Required: Image or artifact reference to be used.
-                                    Behaves in the same way as pod.spec.containers[*].image.
-                                    Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
-                                    More info: https://kubernetes.io/docs/concepts/containers/images
-                                    This field is optional to allow higher level config management to default or override
-                                    container images in workload controllers like Deployments and StatefulSets.
-                                  type: string
-                              type: object
                             iscsi:
                               description: |-
                                 iscsi represents an ISCSI Disk resource that is attached to a
                                 kubelet's host machine and then exposed to the pod.
-                                More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
+                                More info: https://examples.k8s.io/volumes/iscsi/README.md
                               properties:
                                 chapAuthDiscovery:
                                   description: chapAuthDiscovery defines whether support
@@ -3048,7 +2893,6 @@ spec:
                                   description: iqn is the target iSCSI Qualified Name.
                                   type: string
                                 iscsiInterface:
-                                  default: default
                                   description: |-
                                     iscsiInterface is the interface Name that uses an iSCSI transport.
                                     Defaults to 'default' (tcp).
@@ -3146,9 +2990,9 @@ spec:
                               - claimName
                               type: object
                             photonPersistentDisk:
-                              description: |-
-                                photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
-                                Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
+                              description: photonPersistentDisk represents a PhotonController
+                                persistent disk attached and mounted on kubelets host
+                                machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3164,11 +3008,8 @@ spec:
                               - pdID
                               type: object
                             portworxVolume:
-                              description: |-
-                                portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
-                                Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
-                                are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
-                                is on.
+                              description: portworxVolume represents a portworx volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-
@@ -3203,13 +3044,10 @@ spec:
                                   format: int32
                                   type: integer
                                 sources:
-                                  description: |-
-                                    sources is the list of volume projections. Each entry in this list
-                                    handles one source.
+                                  description: sources is the list of volume projections
                                   items:
-                                    description: |-
-                                      Projection that may be projected along with other supported volume types.
-                                      Exactly one of these fields must be set.
+                                    description: Projection that may be projected
+                                      along with other supported volume types
                                     properties:
                                       clusterTrustBundle:
                                         description: |-
@@ -3447,129 +3285,6 @@ spec:
                                             type: array
                                             x-kubernetes-list-type: atomic
                                         type: object
-                                      podCertificate:
-                                        description: |-
-                                          Projects an auto-rotating credential bundle (private key and certificate
-                                          chain) that the pod can use either as a TLS client or server.
-
-                                          Kubelet generates a private key and uses it to send a
-                                          PodCertificateRequest to the named signer.  Once the signer approves the
-                                          request and issues a certificate chain, Kubelet writes the key and
-                                          certificate chain to the pod filesystem.  The pod does not start until
-                                          certificates have been issued for each podCertificate projected volume
-                                          source in its spec.
-
-                                          Kubelet will begin trying to rotate the certificate at the time indicated
-                                          by the signer using the PodCertificateRequest.Status.BeginRefreshAt
-                                          timestamp.
-
-                                          Kubelet can write a single file, indicated by the credentialBundlePath
-                                          field, or separate files, indicated by the keyPath and
-                                          certificateChainPath fields.
-
-                                          The credential bundle is a single file in PEM format.  The first PEM
-                                          entry is the private key (in PKCS#8 format), and the remaining PEM
-                                          entries are the certificate chain issued by the signer (typically,
-                                          signers will return their certificate chain in leaf-to-root order).
-
-                                          Prefer using the credential bundle format, since your application code
-                                          can read it atomically.  If you use keyPath and certificateChainPath,
-                                          your application must make two separate file reads. If these coincide
-                                          with a certificate rotation, it is possible that the private key and leaf
-                                          certificate you read may not correspond to each other.  Your application
-                                          will need to check for this condition, and re-read until they are
-                                          consistent.
-
-                                          The named signer controls chooses the format of the certificate it
-                                          issues; consult the signer implementation's documentation to learn how to
-                                          use the certificates it issues.
-                                        properties:
-                                          certificateChainPath:
-                                            description: |-
-                                              Write the certificate chain at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          credentialBundlePath:
-                                            description: |-
-                                              Write the credential bundle at this path in the projected volume.
-
-                                              The credential bundle is a single file that contains multiple PEM blocks.
-                                              The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
-                                              key.
-
-                                              The remaining blocks are CERTIFICATE blocks, containing the issued
-                                              certificate chain from the signer (leaf and any intermediates).
-
-                                              Using credentialBundlePath lets your Pod's application code make a single
-                                              atomic read that retrieves a consistent key and certificate chain.  If you
-                                              project them to separate files, your application code will need to
-                                              additionally check that the leaf certificate was issued to the key.
-                                            type: string
-                                          keyPath:
-                                            description: |-
-                                              Write the key at this path in the projected volume.
-
-                                              Most applications should use credentialBundlePath.  When using keyPath
-                                              and certificateChainPath, your application needs to check that the key
-                                              and leaf certificate are consistent, because it is possible to read the
-                                              files mid-rotation.
-                                            type: string
-                                          keyType:
-                                            description: |-
-                                              The type of keypair Kubelet will generate for the pod.
-
-                                              Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
-                                              "ECDSAP521", and "ED25519".
-                                            type: string
-                                          maxExpirationSeconds:
-                                            description: |-
-                                              maxExpirationSeconds is the maximum lifetime permitted for the
-                                              certificate.
-
-                                              Kubelet copies this value verbatim into the PodCertificateRequests it
-                                              generates for this projection.
-
-                                              If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
-                                              will reject values shorter than 3600 (1 hour).  The maximum allowable
-                                              value is 7862400 (91 days).
-
-                                              The signer implementation is then free to issue a certificate with any
-                                              lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
-                                              seconds (1 hour).  This constraint is enforced by kube-apiserver.
-                                              `kubernetes.io` signers will never issue certificates with a lifetime
-                                              longer than 24 hours.
-                                            format: int32
-                                            type: integer
-                                          signerName:
-                                            description: Kubelet's generated CSRs
-                                              will be addressed to this signer.
-                                            type: string
-                                          userAnnotations:
-                                            additionalProperties:
-                                              type: string
-                                            description: |-
-                                              userAnnotations allow pod authors to pass additional information to
-                                              the signer implementation.  Kubernetes does not restrict or validate this
-                                              metadata in any way.
-
-                                              These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
-                                              the PodCertificateRequest objects that Kubelet creates.
-
-                                              Entries are subject to the same validation as object metadata annotations,
-                                              with the addition that all keys must be domain-prefixed. No restrictions
-                                              are placed on values, except an overall size limitation on the entire field.
-
-                                              Signers should document the keys and values they support. Signers should
-                                              deny requests that contain keys they do not recognize.
-                                            type: object
-                                        required:
-                                        - keyType
-                                        - signerName
-                                        type: object
                                       secret:
                                         description: secret information about the
                                           secret data to project
@@ -3662,9 +3377,8 @@ spec:
                                   x-kubernetes-list-type: atomic
                               type: object
                             quobyte:
-                              description: |-
-                                quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
-                                Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
+                              description: quobyte represents a Quobyte mount on the
+                                host that shares a pod's lifetime
                               properties:
                                 group:
                                   description: |-
@@ -3703,7 +3417,7 @@ spec:
                             rbd:
                               description: |-
                                 rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
-                                Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
+                                More info: https://examples.k8s.io/volumes/rbd/README.md
                               properties:
                                 fsType:
                                   description: |-
@@ -3718,7 +3432,6 @@ spec:
                                     More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
                                   type: string
                                 keyring:
-                                  default: /etc/ceph/keyring
                                   description: |-
                                     keyring is the path to key ring for RBDUser.
                                     Default is /etc/ceph/keyring.
@@ -3733,7 +3446,6 @@ spec:
                                   type: array
                                   x-kubernetes-list-type: atomic
                                 pool:
-                                  default: rbd
                                   description: |-
                                     pool is the rados pool name.
                                     Default is rbd.
@@ -3764,7 +3476,6 @@ spec:
                                   type: object
                                   x-kubernetes-map-type: atomic
                                 user:
-                                  default: admin
                                   description: |-
                                     user is the rados user name.
                                     Default is admin.
@@ -3775,12 +3486,10 @@ spec:
                               - monitors
                               type: object
                             scaleIO:
-                              description: |-
-                                scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
-                                Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
+                              description: scaleIO represents a ScaleIO persistent
+                                volume attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
-                                  default: xfs
                                   description: |-
                                     fsType is the filesystem type to mount.
                                     Must be a filesystem type supported by the host operating system.
@@ -3821,7 +3530,6 @@ spec:
                                     communication with Gateway, default false
                                   type: boolean
                                 storageMode:
-                                  default: ThinProvisioned
                                   description: |-
                                     storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
                                     Default is ThinProvisioned.
@@ -3910,9 +3618,8 @@ spec:
                                   type: string
                               type: object
                             storageos:
-                              description: |-
-                                storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
-                                Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
+                              description: storageOS represents a StorageOS volume
+                                attached and mounted on Kubernetes nodes.
                               properties:
                                 fsType:
                                   description: |-
@@ -3957,10 +3664,8 @@ spec:
                                   type: string
                               type: object
                             vsphereVolume:
-                              description: |-
-                                vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
-                                Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
-                                are redirected to the csi.vsphere.vmware.com CSI driver.
+                              description: vsphereVolume represents a vSphere volume
+                                attached and mounted on kubelets host machine
                               properties:
                                 fsType:
                                   description: |-

File diff suppressed because it is too large
+ 88 - 419
config/crd/bases/locostack.com_stacks.yaml


+ 19 - 22
go.mod

@@ -6,17 +6,16 @@ require (
 	github.com/onsi/ginkgo/v2 v2.27.2
 	github.com/onsi/gomega v1.38.2
 	go.yaml.in/yaml/v2 v2.4.3
-	k8s.io/api v0.35.0
-	k8s.io/apimachinery v0.35.0
-	k8s.io/client-go v0.35.0
-	k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
-	sigs.k8s.io/controller-runtime v0.23.3
+	k8s.io/api v0.30.3
+	k8s.io/apimachinery v0.30.3
+	k8s.io/client-go v0.30.3
+	k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
+	sigs.k8s.io/controller-runtime v0.18.7
 )
 
 require (
-	cel.dev/expr v0.24.0 // indirect
 	github.com/Masterminds/semver/v3 v3.4.0 // indirect
-	github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
+	github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/blang/semver/v4 v4.0.0 // indirect
 	github.com/cenkalti/backoff/v4 v4.3.0 // indirect
@@ -26,7 +25,6 @@ require (
 	github.com/evanphx/json-patch/v5 v5.9.11 // indirect
 	github.com/felixge/httpsnoop v1.0.4 // indirect
 	github.com/fsnotify/fsnotify v1.9.0 // indirect
-	github.com/fxamacker/cbor/v2 v2.9.0 // indirect
 	github.com/go-logr/logr v1.4.3 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
 	github.com/go-logr/zapr v1.3.0 // indirect
@@ -34,29 +32,29 @@ require (
 	github.com/go-openapi/jsonreference v0.20.2 // indirect
 	github.com/go-openapi/swag v0.23.0 // indirect
 	github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
-	github.com/google/btree v1.1.3 // indirect
-	github.com/google/cel-go v0.26.0 // indirect
-	github.com/google/gnostic-models v0.7.0 // indirect
+	github.com/gogo/protobuf v1.3.2 // indirect
+	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
+	github.com/golang/protobuf v1.5.4 // indirect
+	github.com/google/cel-go v0.17.8 // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.7.0 // indirect
+	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
 	github.com/google/uuid v1.6.0 // indirect
 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
-	github.com/inconshreveable/mousetrap v1.1.0 // indirect
+	github.com/imdario/mergo v0.3.6 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
-	github.com/pmezard/go-difflib v1.0.0 // indirect
 	github.com/prometheus/client_golang v1.23.2 // indirect
 	github.com/prometheus/client_model v0.6.2 // indirect
 	github.com/prometheus/common v0.66.1 // indirect
 	github.com/prometheus/procfs v0.16.1 // indirect
-	github.com/spf13/cobra v1.10.0 // indirect
 	github.com/spf13/pflag v1.0.9 // indirect
 	github.com/stoewer/go-strcase v1.3.0 // indirect
-	github.com/x448/float16 v0.8.4 // indirect
 	go.opentelemetry.io/auto/sdk v1.1.0 // indirect
 	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
 	go.opentelemetry.io/otel v1.36.0 // indirect
@@ -84,17 +82,16 @@ require (
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect
 	google.golang.org/grpc v1.72.2 // indirect
 	google.golang.org/protobuf v1.36.8 // indirect
-	gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
+	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	k8s.io/apiextensions-apiserver v0.35.0 // indirect
-	k8s.io/apiserver v0.35.0 // indirect
-	k8s.io/component-base v0.35.0 // indirect
+	k8s.io/apiextensions-apiserver v0.30.3 // indirect
+	k8s.io/apiserver v0.30.3 // indirect
+	k8s.io/component-base v0.30.3 // indirect
 	k8s.io/klog/v2 v2.130.1 // indirect
-	k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
+	k8s.io/kube-openapi v0.0.0-20240827152857-f7e401e7b4c2 // indirect
 	sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
 	sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
-	sigs.k8s.io/randfill v1.0.0 // indirect
-	sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
 	sigs.k8s.io/yaml v1.6.0 // indirect
 )

+ 69 - 51
go.sum

@@ -1,9 +1,7 @@
-cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
-cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
 github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
 github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
-github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
-github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
 github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
@@ -12,23 +10,20 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3
 github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
 github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
 github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
 github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
-github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k=
-github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ=
+github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
+github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
 github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM=
 github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
 github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
 github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
-github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
-github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
 github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs=
 github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo=
 github.com/gkampitakis/go-diff v1.3.2 h1:Qyn0J9XJSDTgnsgHRdz9Zp24RaJeKMUHg2+PDZZdC4M=
@@ -54,14 +49,17 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v
 github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
 github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
 github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
 github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
-github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
-github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI=
-github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM=
-github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
-github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
+github.com/google/cel-go v0.17.8 h1:j9m730pMZt1Fc4oKhCLUHfjj6527LuhYcYw0Rl8gqto=
+github.com/google/cel-go v0.17.8/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
+github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -73,14 +71,16 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo=
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI=
-github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
-github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
+github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/joshdk/go-junit v1.0.0 h1:S86cUKIdwBHWwA6xCmFlf3RTLfVXYQfvanM5Uh+K6GE=
 github.com/joshdk/go-junit v1.0.0/go.mod h1:TiiV0PqkaNfFXjEiyjWM3XXrhVyCa1K4Zfga6W52ung=
 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
 github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@@ -122,12 +122,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z
 github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
 github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
 github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
-github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
-github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
-github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0=
-github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE=
-github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
 github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
 github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs=
@@ -135,8 +131,6 @@ github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8w
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
-github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
-github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@@ -151,8 +145,8 @@ github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
 github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
 github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
 github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
-github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
-github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
 go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
@@ -183,26 +177,51 @@ go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
 go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
 go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
 go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
 golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
 golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
 golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
 golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
 golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
 golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
 golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
 golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
 golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
 golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
 golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
 golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
 gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
 google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950=
@@ -216,40 +235,39 @@ google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXn
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo=
-gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/api v0.35.0 h1:iBAU5LTyBI9vw3L5glmat1njFK34srdLmktWwLTprlY=
-k8s.io/api v0.35.0/go.mod h1:AQ0SNTzm4ZAczM03QH42c7l3bih1TbAXYo0DkF8ktnA=
-k8s.io/apiextensions-apiserver v0.35.0 h1:3xHk2rTOdWXXJM+RDQZJvdx0yEOgC0FgQ1PlJatA5T4=
-k8s.io/apiextensions-apiserver v0.35.0/go.mod h1:E1Ahk9SADaLQ4qtzYFkwUqusXTcaV2uw3l14aqpL2LU=
-k8s.io/apimachinery v0.35.0 h1:Z2L3IHvPVv/MJ7xRxHEtk6GoJElaAqDCCU0S6ncYok8=
-k8s.io/apimachinery v0.35.0/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns=
-k8s.io/apiserver v0.35.0 h1:CUGo5o+7hW9GcAEF3x3usT3fX4f9r8xmgQeCBDaOgX4=
-k8s.io/apiserver v0.35.0/go.mod h1:QUy1U4+PrzbJaM3XGu2tQ7U9A4udRRo5cyxkFX0GEds=
-k8s.io/client-go v0.35.0 h1:IAW0ifFbfQQwQmga0UdoH0yvdqrbwMdq9vIFEhRpxBE=
-k8s.io/client-go v0.35.0/go.mod h1:q2E5AAyqcbeLGPdoRB+Nxe3KYTfPce1Dnu1myQdqz9o=
-k8s.io/component-base v0.35.0 h1:+yBrOhzri2S1BVqyVSvcM3PtPyx5GUxCK2tinZz1G94=
-k8s.io/component-base v0.35.0/go.mod h1:85SCX4UCa6SCFt6p3IKAPej7jSnF3L8EbfSyMZayJR0=
+k8s.io/api v0.30.3 h1:ImHwK9DCsPA9uoU3rVh4QHAHHK5dTSv1nxJUapx8hoQ=
+k8s.io/api v0.30.3/go.mod h1:GPc8jlzoe5JG3pb0KJCSLX5oAFIW3/qNJITlDj8BH04=
+k8s.io/apiextensions-apiserver v0.30.3 h1:oChu5li2vsZHx2IvnGP3ah8Nj3KyqG3kRSaKmijhB9U=
+k8s.io/apiextensions-apiserver v0.30.3/go.mod h1:uhXxYDkMAvl6CJw4lrDN4CPbONkF3+XL9cacCT44kV4=
+k8s.io/apimachinery v0.30.3 h1:q1laaWCmrszyQuSQCfNB8cFgCuDAoPszKY4ucAjDwHc=
+k8s.io/apimachinery v0.30.3/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
+k8s.io/apiserver v0.30.3 h1:QZJndA9k2MjFqpnyYv/PH+9PE0SHhx3hBho4X0vE65g=
+k8s.io/apiserver v0.30.3/go.mod h1:6Oa88y1CZqnzetd2JdepO0UXzQX4ZnOekx2/PtEjrOg=
+k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k=
+k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U=
+k8s.io/component-base v0.30.3 h1:Ci0UqKWf4oiwy8hr1+E3dsnliKnkMLZMVbWzeorlk7s=
+k8s.io/component-base v0.30.3/go.mod h1:C1SshT3rGPCuNtBs14RmVD2xW0EhRSeLvBh7AGk1quA=
 k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
 k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
-k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
-k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
-k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/kube-openapi v0.0.0-20240827152857-f7e401e7b4c2 h1:GKE9U8BH16uynoxQii0auTjmmmuZ3O0LFMN6S0lPPhI=
+k8s.io/kube-openapi v0.0.0-20240827152857-f7e401e7b4c2/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM=
 sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
-sigs.k8s.io/controller-runtime v0.23.3 h1:VjB/vhoPoA9l1kEKZHBMnQF33tdCLQKJtydy4iqwZ80=
-sigs.k8s.io/controller-runtime v0.23.3/go.mod h1:B6COOxKptp+YaUT5q4l6LqUJTRpizbgf9KSRNdQGns0=
+sigs.k8s.io/controller-runtime v0.18.7 h1:WDnx8LTRY8Fn1j/7B+S/R9MeDjWNAzpDBoaSvMSrQME=
+sigs.k8s.io/controller-runtime v0.18.7/go.mod h1:L9r3fUZhID7Q9eK9mseNskpaTg2n11f/tlb8odyzJ4Y=
 sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
 sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
-sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
-sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
-sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 h1:2WOzJpHUBVrrkDjU4KBT8n5LDcj824eX0I5UKcgeRUs=
-sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
 sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
 sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=

Some files were not shown because too many files changed in this diff