Commit Graph

4066 Commits

Author SHA1 Message Date
Patrick Ohly
bde9b64cdf DRA: remove "source" indirection from v1 Pod API
This makes the API nicer:

    resourceClaims:
    - name: with-template
      resourceClaimTemplateName: test-inline-claim-template
    - name: with-claim
      resourceClaimName: test-shared-claim

Previously, this was:

    resourceClaims:
    - name: with-template
      source:
        resourceClaimTemplateName: test-inline-claim-template
    - name: with-claim
      source:
        resourceClaimName: test-shared-claim

A more long-term benefit is that other, future alternatives
might not make sense under the "source" umbrella.

This is a breaking change. It's justified because DRA is still
alpha and will have several other API breaks in 1.31.
2024-06-27 17:53:24 +02:00
Kubernetes Prow Robot
44b2c363f2
Merge pull request #125549 from liggitt/validate-controller-revision
Ensure controller revision data is valid json
2024-06-18 08:58:38 -07:00
Jordan Liggitt
d6d78c5581
Ensure controller revision data is valid json 2024-06-17 14:32:51 -04:00
Kubernetes Prow Robot
ba28796e77
Merge pull request #125218 from carlory/fix-125216
add apiGroup validation
2024-06-13 13:27:50 -07:00
carlory
bce0335ea6 DRA: enhance validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules:
1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com').
2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters.
2024-06-07 17:18:10 +08:00
Kubernetes Prow Robot
9e2075b3c8
Merge pull request #125189 from mimowo/improve-ready-comment
Improve the Job API comment for ready field
2024-06-05 11:37:07 -07:00
Antonio Ojea
59adf3f833 remove unused function LoadBalancerStatusEqual
It is duplicated in the cloud provider package, and is only used
there for the service load balancer controller.
2024-05-30 23:03:54 +00:00
Shingo Omura
552fd7e850
KEP-3619: Fine-grained SupplementalGroups control (#117842)
* Add `Linux{Sandbox,Container}SecurityContext.SupplementalGroupsPolicy` and `ContainerStatus.user` in cri-api

* Add `PodSecurityContext.SupplementalGroupsPolicy`, `ContainerStatus.User` and its featuregate

* Implement DropDisabledPodFields for PodSecurityContext.SupplementalGroupsPolicy and ContainerStatus.User fields

* Implement kubelet so to wire between SecurityContext.SupplementalGroupsPolicy/ContainerStatus.User and cri-api in kubelet

* Clarify `SupplementalGroupsPolicy` is an OS depdendent field.

* Make `ContainerStatus.User` is initially attached user identity to the first process in the ContainerStatus

It is because, the process identity can be dynamic if the initially attached identity
has enough privilege calling setuid/setgid/setgroups syscalls in Linux.

* Rewording suggestion applied

* Add TODO comment for updating SupplementalGroupsPolicy default value in v1.34

* Added validations for SupplementalGroupsPolicy and ContainerUser

* No need featuregate check in validation when adding new field with no default value

* fix typo: identitiy -> identity
2024-05-29 15:40:29 -07:00
Michal Wozniak
551464fe53 Improve the Job API comment for ready field 2024-05-29 14:01:28 +02:00
Kubernetes Prow Robot
073c1596f2
Merge pull request #124602 from Iceber/fix_discovery_prioritized_versions
fix the version order of 'discovery.k8s.io'
2024-05-20 09:12:20 -07:00
Kubernetes Prow Robot
2a003648b0
Merge pull request #124793 from mimowo/fix-managed-by-comment
Fix the comment for the Job managedBy field
2024-05-16 10:50:57 -07:00
Kubernetes Prow Robot
119f9b3e7c
Merge pull request #124675 from cici37/fgForCost
Adding a deprecating featurer gate to fix cost
2024-05-13 08:52:04 -07:00
Michal Wozniak
a517b4dcdf Fix the comment for the Job managedBy field 2024-05-13 13:31:58 +02:00
Kensei Nakada
2ea7d8f523 graduate MatchLabelKeysInPodAffinity to Beta 2024-05-11 10:40:28 +00:00
Cici Huang
d6e4115ead Adding the feature gates to fix cost for VAP and webhook matchConditions. 2024-05-10 22:07:40 +00:00
Iceber Gu
498bebee6d fix the version order of 'discovery.k8s.io'
Signed-off-by: Iceber Gu <caiwei95@hotmail.com>
2024-04-29 14:31:58 +08:00
Marek Siarkowicz
3ee8178768 Cleanup defer from SetFeatureGateDuringTest function call 2024-04-24 20:25:29 +02:00
Kubernetes Prow Robot
6289589509
Merge pull request #124075 from pohly/dra-api-comments
DRA: API cleanup + fix
2024-04-23 15:07:50 -07:00
Patrick Ohly
acfaf8c275 DRA: sync internal API doc comments
This had been done before for types.go, but namedresources.go still had one
small diff.

While at it, fix some typos.
2024-04-22 14:18:45 +02:00
Kubernetes Prow Robot
74877bb43b
Merge pull request #124417 from thockin/remove_gate_DefaultHostNetworkHostPortsInPodTemplates
Remove gate DefaultHostNetworkHostPortsInPodTemplates
2024-04-21 18:39:33 -07:00
Kubernetes Prow Robot
534d7cbc1a
Merge pull request #123905 from aojea/field_selector
Field selector for Services based on ClusterIP and Type
2024-04-19 15:30:55 -07:00
Tim Hockin
a2fb1b51ac
Remove DefaultHostNetworkHostPortsInPodTemplates gate
This behavior was deprecated in 1.28.
2024-04-19 15:24:15 -07:00
Kubernetes Prow Robot
2f2c1fb811
Merge pull request #124210 from thockin/remove_gate_SkipReadOnlyValidationGCE
Remove the gate "SkipReadOnlyValidationGCE"
2024-04-18 06:31:39 -07:00
Kubernetes Prow Robot
dbaf5d667f
Merge pull request #124062 from alculquicondor/nodename-api-comment
Update API comment for nodeName to match system behavior
2024-04-18 02:11:56 -07:00
Kubernetes Prow Robot
c43b733dd6
Merge pull request #123736 from thockin/cleanup_manual_conversions
Cleanup manual conversions
2024-04-18 01:03:27 -07:00
Antonio Ojea
8f306d8046 services fielse selector for type
Change-Id: I57e934c520713713d4b0616a52519ec51c49e0fc
2024-04-11 13:09:36 +00:00
Antonio Ojea
c37e14364c implement field selector for clusterIP on services
This will allow components that don't need to watch headless services
(heavily used on ai/ml workloads) to filter them server side.

Specially useful for kubelet and kube-proxy

Change-Id: If36c2c27f2ec80db400c9133c61428d14e124f3e
2024-04-11 13:09:33 +00:00
Tim Hockin
ae01c2126f
Remove the gate "SkipReadOnlyValidationGCE"
One less GCE-specifc wart in the codebase.
2024-04-06 15:11:20 -07:00
Aldo Culquicondor
1a2dba426f Update API comment for nodeName to match system behavior
Change-Id: I039b441f4525d280b1ea693d782fe0f43794d9f7
2024-03-26 19:04:48 +00:00
Kubernetes Prow Robot
d194e6d06c
Merge pull request #123932 from pohly/dra-api-resource-model-rename
dra api: NodeResourceModel -> ResourceModel
2024-03-14 12:11:35 -07:00
Patrick Ohly
a0add8d2c7 dra api: NodeResourceModel -> ResourceModel
When renaming NodeResourceSlice to ResourceSlice, the embedded
[Node]ResourceModel also should have been renamed.
2024-03-14 18:07:36 +01:00
Akihiro Suda
1dc05009fe
api: NodeStatus: rename RuntimeClasses to RuntimeHandlers
The runtime classes are apiserver's concept, while the handlers are kubelet's concept.
For NodeStatus, it makes more sense to return the latter ones here.

This commit modifies the following files:

- pkg/apis/core/types.go
- staging/src/k8s.io/api/core/v1/types.go
- pkg/kubelet/nodestatus/setters.go
- pkg/kubelet/kubelet_node_status.go
- pkg/registry/core/node/strategy.go
- test/e2e_node/mount_rro_linux_test.go

Other changes were auto-generated by running `make update`.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2024-03-14 08:06:39 +09:00
Antonio Ojea
7ab1ef644e
Revert "Implement a field selector for ClusterIP on Services" 2024-03-12 12:20:27 +00:00
Kubernetes Prow Robot
57c89abb45
Merge pull request #123792 from mimowo/propose-api-comments-fix
Adjust the Job field API comments and validation to the current state
2024-03-11 11:26:04 -07:00
Akihiro Suda
8db07446f1
api: validate RecursiveReadOnlyMounts
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2024-03-10 02:59:30 +09:00
Akihiro Suda
d940886d0a
api: KEP-3857: Recursive Read-only (RRO) mounts
This commit modifies the following files:

- pkg/apis/core/types.go
- staging/src/k8s.io/api/core/v1/types.go

Other changes were auto-generated by running `make update`.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2024-03-09 09:48:12 +09:00
Michal Wozniak
79fe37537c Adjust the validation to the current state 2024-03-08 17:43:24 +01:00
Michal Wozniak
1163c7ed9c Adjust the API comments to the current state 2024-03-08 17:29:49 +01:00
Nilekh Chaudhari
91a7708cdc
feat: implements Storage Version Migration API in-tree
Signed-off-by: Nilekh Chaudhari <1626598+nilekhc@users.noreply.github.com>
2024-03-08 04:18:56 +00:00
Kubernetes Prow Robot
7ea3d0245a
Merge pull request #123516 from pohly/dra-structured-parameters
DRA: structured parameters
2024-03-07 19:24:48 -08:00
Kubernetes Prow Robot
9ad2aabc64
Merge pull request #123520 from haircommander/proc-mount-rely-userns-2
KEP-4265: Update Unmasked ProcMountType to fail validation without a pod level user namespace
2024-03-07 18:21:08 -08:00
Kubernetes Prow Robot
364ef335db
Merge pull request #123412 from tenzen-y/add-new-jobsuccesspolicy-api
Job: Support for the SuccessPolicy
2024-03-07 14:49:20 -08:00
Patrick Ohly
6a361e1f36 dra api: enable new CEL features by faking their version
There are two approaches for making new versioned CEL features available in the
release where they get introduced:
- Always use the environment for "StoredExpressions".
- Use an older version (typically 1.0) and only bump it up later.

The second approach was used before, so this is now also done here.
2024-03-07 22:26:20 +01:00
Patrick Ohly
0b6a0d686a dra api: rename NodeResourceSlice -> ResourceSlice
While currently those objects only get published by the kubelet for node-local
resources, this could change once we also support network-attached
resources. Dropping the "Node" prefix enables such a future extension.

The NodeName in ResourceSlice and StructuredResourceHandle then becomes
optional. The kubelet still needs to provide one and it must match its own node
name, otherwise it doesn't have permission to access ResourceSlice objects.
2024-03-07 22:22:55 +01:00
Patrick Ohly
42ee56f093 dra api: implement semver attribute value type
This adds support for semantic version comparison to the CEL support in the
"named resources" structured parameter model. For example, it can be used to
check that an instance supports a certain API level.

To minimize the risk, the new "semver" type is only defined in the CEL
environment for DRA expressions, not in the base library. See
https://github.com/kubernetes/kubernetes/pull/123664 for a PR which
adds it to the base library.

Validation of semver strings is done with the regular expression from
semver.org. The actual evaluation at runtime then uses semver/v4.
2024-03-07 22:22:13 +01:00
Patrick Ohly
d4d5ade7f5 dra: add "named resources" structured parameter model
Like the current device plugin interface, a DRA driver using this model
announces a list of resource instances. In contrast to device plugins, this
list is made available to the scheduler together with attributes that can be
used to select suitable instances when they are not all alike.

Because this is the first structured parameter model, some checks that
previously were not possible, in particular "is one structured parameter field
set", now gets enabled. Adding another structured parameter model will be
similar.

The applyconfigs code generator assumes that all types in an API are defined in
a single package. If it wasn't for that, it would be possible to place the
"named resources" types in separate packages, which makes their names in the Go
code more natural and provides an indication of their stability level because
the package name could include a version.
2024-03-07 22:21:16 +01:00
Peter Hunt
23706cb90c api validation: validate proc mount against user namespace
fail if container uses proc mount unmasked but pod does not use user namespace

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2024-03-07 15:56:06 -05:00
Yuki Iwai
e216742672 Job: Support for the JobSuccessPolicy (alpha)
Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>
2024-03-08 05:49:09 +09:00
HirazawaUi
2867be47b3 followup to allow special characters 2024-03-08 00:08:43 +08:00
Patrick Ohly
39bbcedbca dra api: add structured parameters
NodeResourceSlice will be used by kubelet to publish resource information on
behalf of DRA drivers on the node. NodeName and DriverName in
NodeResourceSlice must be immutable. This simplifies tracking the different
objects because what they are for cannot change after creation.

The new field in ResourceClass tells scheduler and autoscaler that they are
expected to handle allocation.

ResourceClaimParameters and ResourceClassParameters are new types for telling
in-tree components how to handle claims.
2024-03-07 16:15:31 +01:00