--- - branch: MAIN date: Sun Aug 27 03:28:28 UTC 2023 files: - new: '1.3' old: '1.2' path: pkgsrc/sysutils/py-kubernetes/Makefile pathrev: pkgsrc/sysutils/py-kubernetes/Makefile@1.3 type: modified - new: '1.3' old: '1.2' path: pkgsrc/sysutils/py-kubernetes/PLIST pathrev: pkgsrc/sysutils/py-kubernetes/PLIST@1.3 type: modified - new: '1.3' old: '1.2' path: pkgsrc/sysutils/py-kubernetes/distinfo pathrev: pkgsrc/sysutils/py-kubernetes/distinfo@1.3 type: modified id: 20230827T032828Z.f1f3f16000a2c07b8a029231c3fd4a40f3cc35fe log: "py-kubernetes: updated to 27.2.0\n\nv27.2.0\n\nKubernetes API Version: v1.27.3\n\nDocumentation\n- Fix request_timeout example and doc. Arg name should be _request_timeout. Single value type should be int or long.\n\nv27.2.0b1\n\nKubernetes API Version: v1.27.2\n\nv27.2.0a1\n\nKubernetes API Version: v1.27.2\n\nAPI Change\n- Added error handling for seccomp localhost configurations that do not properly set a localhostProfile\n- Fixed an issue where kubelet does not set case-insensitive headers for http probes.\n- Revised the comment about the feature-gate level for PodFailurePolicy from alpha to beta\n- A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) \".status.reservedFor: element 0: associative list without keys has an element that's a map type\" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries.\n- A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node\n - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler`\n- API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext.\n- Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost\n restrictions that already apply to CustomResourceDefinition.\n If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the\n admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy\n determines the outcome.\n- Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events.\n Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions.\n- Added `messageExpression` field to `ValidationRule`.\n- Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression.\n- Added a new IPAddress object kind\n - Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64\n- Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\n A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster.\n- Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer`\n variable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`.\n- Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria.\n- Added new option to the `InterPodAffinity` scheduler plugin to ignore existing\n pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod\n affinities. This option can be used as an optimization for higher scheduling throughput\n (at the cost of an occasional pod being scheduled non-optimally/violating existing\n pods preferred inter-pod affinities). To enable this scheduler option, set the\n `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true`\n- Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis.\n\n The `AdmissionWebhookMatchConditions` featuregate is now in Alpha\n- Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used.\n- Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels.\n- Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node.\n- Api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid.\n- Bump default API QPS limits for Kubelet.\n- Enabled the `StatefulSetStartOrdinal` feature gate in beta\n- Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging\n verbosity at runtime for JSON output.\n- Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources.\n- Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources.\n- Forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints\n- GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP)\n- GRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now.\n- Graduated `Kubelet Topology Manager` to GA.\n- Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default.\n- Graduated seccomp profile defaulting to GA.\n\n Set the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile.\n\n Enabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use.\n\n Guidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp).\n- Graduated the container resource metrics feature on `HPA` to beta.\n- Implemented API streaming for the `watch-cache`\n\n When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.\n- Introduced API for streaming.\n\n Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.\n- Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers.\n- Introduces new alpha functionality to the reflector, allowing user to enable API streaming.\n\n To activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable.\n It is important to note that the server must support streaming for this feature to function properly.\n If streaming is not supported by the server, the reflector will revert to the previous method\n of obtaining data through LIST/WATCH semantics.\n- K8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine.\n- K8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message\n- Kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical`\n- Kubelet: a \"maxParallelImagePulls\" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel.\n- Kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high`\n- Kubernetes components that perform leader election now only support using `Leases` for this.\n- Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)\n- New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation.\n - `service.kubernetes.io/topology-aware-hints` annotation has been deprecated.\n - kube-proxy now accepts any value that is not \"disabled\" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used.\n- Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`.\n The legacy labels `job-name` and `controller-uid` are still added for compatibility.\n- Promoted `CronJobTimeZone` feature to GA\n- Promoted `SelfSubjectReview` to Beta\n- Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations).\n- Remove `kubernetes.io/grpc` standard appProtocol\n- Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI\n- Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly.\n- The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions.\n- The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted.\n- The `DownwardAPIHugePages` kubelet feature graduated to stable / GA.\n- The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes`\n- The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply.\n- Updated API reference for Requests, specifying they must not exceed limits\n- Updated `KMSv2` to beta\n- Updated: Redefine AppProtocol field description and add new standard values\n- `/metrics/slis` is now available for control plane components allowing you to scrape health check metrics.\n- `APIServerTracing` feature gate is now enabled by default. Tracing in the API\n Server is still disabled by default, and requires a config file to enable.\n- `NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore`\n extension point for a more performant calculation.\n- `PodSchedulingReadiness` is graduated to beta.\n- `PodSpec.Container.Resources` became mutable for CPU and memory resource types.\n - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized.\n - `PodStatus.Resize` status describes the state of a requested Pod resize.\n - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod.\n - `PodStatus.Resources` describes node resources applied to running containers by CRI.\n - `UpdateContainerResources` CRI API now supports both Linux and Windows.\n- `SELinuxMountReadWriteOncePod` graduated to Beta.\n- `StatefulSetAutoDeletePVC` feature gate promoted to beta.\n- `StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet`\n which took advantage of subdomain validation (by having dots in the name) can't\n possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`,\n and that is validated as a DNS label.\n- `ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression.\n The type checking is fully informational, and the behavior of the policy is unchanged.\n- `cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider\n- `k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`.\n- `kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint`\n to kubelet config\n- `resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before\n upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate,\n ResourceClass, PodScheduling) must be deleted. The changes are internal, so\n YAML files which create pods and resource claims don't need changes except for\n the newer `apiVersion`.\n- `volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect.\n- Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\n A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster.\n- Remove `kubernetes.io/grpc` standard appProtocol\n- API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext.\n- APIServerTracing feature gate is now enabled by default. Tracing in the API Server is still disabled by default, and requires a config file to enable.\n- Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost\n restrictions that already apply to CustomResourceDefinition.\n If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the\n admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy\n determines the outcome.\n- Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression.\n- Added a new IPAddress object kind\n - Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64\n- Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\n A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster.\n- Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer`\n variable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`.\n- Added matchConditions field to ValidatingAdmissionPolicy, enabled support for CEL based custom match criteria.\n- Added messageExpression field to ValidationRule.\n- Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis.\n\n The `AdmissionWebhookMatchConditions` featuregate is now in Alpha\n- Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.\n - Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used.\n- Adds auditAnnotations to ValidatingAdmissionPolicy, enabling CEL to be used to add audit annotations to request audit events.\n Adds validationActions to ValidatingAdmissionPolicyBinding, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions.\n- Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node.\n- Api: validation of a PodSpec now rejects invalid ResourceClaim and ResourceClaimTemplate names. For a pod, the name generated for the ResourceClaim when using a template also must be valid.\n- Bump default API QPS limits for Kubelet.\n- Enable the \"StatefulSetStartOrdinal\" feature gate in beta\n- Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources.\n- Forbid to set matchLabelKeys when labelSelector isn窶å\x86² set in topologySpreadConstraints\n- GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP)\n- GRPC probes are now a GA feature. GRPCContainerProbe feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now.\n- Graduate Kubelet Topology Manager to GA.\n- Graduate `KubeletTracing` to beta, which means that the feature gate is now enabled by default.\n- Graduate the container resource metrics feature on HPA to beta.\n- Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers.\n- Introduces new alpha functionality to the reflector, allowing user to enable API streaming.\n\n To activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable.\n It is important to note that the server must support streaming for this feature to function properly.\n If streaming is not supported by the server, the reflector will revert to the previous method\n of obtaining data through LIST/WATCH semantics.\n- Kubelet: change MemoryThrottlingFactor default value to 0.9 and formulas to calculate memory.high\n- Migrated the DaemonSet controller (within `kube-controller-manager) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)\n- New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation.\n - `service.kubernetes.io/topology-aware-hints` annotation has been deprecated.\n - kube-proxy now accepts any value that is not \"disabled\" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used.\n- NodeResourceFit and NodeResourcesBalancedAllocation implement the PreScore extension point for a more performant calculation.\n- Pods owned by a Job will now use the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`.\n The legacy labels `job-name` and `controller-uid` are still added for compatibility.\n- Promote CronJobTimeZone feature to GA\n- Promoted `SelfSubjectReview` to Beta\n- Relax API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations).\n- Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI flags\n- Resource.k8s.io/v1alpha1 was replaced with resource.k8s.io/v1alpha2. Before upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate, ResourceClass, PodScheduling) must be deleted. The changes will be internal, so YAML files which create pods and resource claims don't need changes except for the newer `apiVersion`.\n- SELinuxMountReadWriteOncePod graduated to Beta.\n- StatefulSetAutoDeletePVC feature gate promoted to beta.\n- The API server now re-uses data encryption keys while the kms v2 plugin's key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions.\n- The API server's encryption at rest configuration now allows the use of wildcards in the list of resources. For example, '*.*' can be used to encrypt all resources, including all current and future custom resources.\n- Update KMSv2 to beta\n- Updated: Redefine AppProtocol field description and add new standard values\n- ValidatingAdmissionPolicy now provides a status field that contains results of type checking the validation expression.\n The type checking is fully informational, and the behavior of the policy is unchanged.\n- We have removed support for the v1alpha1 kubeletplugin API of DynamicResourceManagement. All plugins must update to v1alpha2 in order to function properly going forward.\n- Graduated seccomp profile defaulting to GA.\n\n Set the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile.\n\n Enabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use.\n\n Guidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp).\n- Implements API for streaming for the watch-cache\n\n When sendInitialEvents ListOption is set together with watch=true, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.\n- Introduce API for streaming.\n\n Add SendInitialEvents field to the ListOptions. When the new option is set together with watch=true, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.\n- Kubelet: a \"maxParallelImagePulls\" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel.\n- PodSchedulingReadiness is graduated to beta.\n- In-place resize feature for Kubernetes Pods\n - Changed the Pod API so that the `resources` defined for containers are mutable for `cpu` and `memory` resource types.\n - Added `resizePolicy` for containers in a pod to allow users control over how their containers are resized.\n - Added `allocatedResources` field to container status in pod status that describes the node resources allocated to a pod.\n - Added `resources` field to container status that reports actual resources applied to running containers.\n - Added `resize` field to pod status that describes the state of a requested pod resize.\n For details, see KEPs below.\n- The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted.\n- The `DownwardAPIHugePages` kubelet feature graduated to stable / GA.\n- Volumes: `resource.claims` gets cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect.\n- A fix in the resource.k8s.io/v1alpha1/ResourceClaim API avoids harmless (?) \".status.reservedFor: element 0: associative list without keys has an element that's a map type\" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries.\n- CacheSize field in EncryptionConfiguration is not supported for KMSv2 provider\n- K8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine.\n- K8s.io/component-base/logs now also supports adding command line flags to a flag.FlagSet.\n- Update API reference for Requests, specifying they must not exceed limits\n- `/metrics/slis` is made available for control plane components allowing you to scrape health check metrics.\n- A terminating pod on a node that is not caused by preemption won't prevent kube-scheduler from preempting pods on that node\n- Rename 'PreemptionByKubeScheduler' to 'PreemptionByScheduler'\n- Added new option to the InterPodAffinity scheduler plugin to ignore existing pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod affinities. This option can be used as an optimization for higher scheduling throughput (at the cost of an occasional pod being scheduled non-optimally/violating existing pods' preferred inter-pod affinities). To enable this scheduler option, set the InterPodAffinity scheduler plugin arg \"ignorePreferredTermsOfExistingPods: true\".\n- Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels.\n- K8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message\n- Kube-proxy, kube-scheduler and kubelet have HTTP APIs for changing the logging verbosity at runtime. This now also works for JSON output.\n- Kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical`\n- Kubelet: migrate \"--container-runtime-endpoint\" and \"--image-service-endpoint\" to kubelet config\n- Kubernetes components that perform leader election now only support using Leases for this.\n- StatefulSet names must be DNS labels, rather than subdomains. Any StatefulSet which took advantage of subdomain validation (by having dots in the name) can't possibly have worked, because we eventually set `pod.spec.hostname` from the StatefulSetName, and that is validated as a DNS label.\n- The following feature gates for volume expansion GA features have been removed and must no longer be referenced in `--feature-gates` flags: ExpandCSIVolumes, ExpandInUsePersistentVolumes, ExpandPersistentVolumes\n- The list-type of the alpha resourceClaims field introduced to Pods in 1.26.0 was modified from \"set\" to \"map\", resolving an incompatibility with use of this schema in CustomResourceDefinitions and with server-side apply.\n" module: pkgsrc subject: 'CVS commit: pkgsrc/sysutils/py-kubernetes' unixtime: '1693106908' user: adam