KEP-5491: generated code for list attribute fields in DeviceAttribute API ("make update"-ed)

Kubernetes-commit: 3902f5611f29a80dad6c43618c1d87af7baa9637
This commit is contained in:
Shingo Omura
2026-03-16 19:03:01 +09:00
committed by Kubernetes Publisher
parent 0434117726
commit 15a9dffb52
10 changed files with 294 additions and 0 deletions

View File

@@ -12530,15 +12530,39 @@ var schemaYAML = typed.YAMLObject(`types:
- name: bool
type:
scalar: boolean
- name: bools
type:
list:
elementType:
scalar: boolean
elementRelationship: atomic
- name: int
type:
scalar: numeric
- name: ints
type:
list:
elementType:
scalar: numeric
elementRelationship: atomic
- name: string
type:
scalar: string
- name: strings
type:
list:
elementType:
scalar: string
elementRelationship: atomic
- name: version
type:
scalar: string
- name: versions
type:
list:
elementType:
scalar: string
elementRelationship: atomic
- name: io.k8s.api.resource.v1.DeviceCapacity
map:
fields:
@@ -13386,15 +13410,39 @@ var schemaYAML = typed.YAMLObject(`types:
- name: bool
type:
scalar: boolean
- name: bools
type:
list:
elementType:
scalar: boolean
elementRelationship: atomic
- name: int
type:
scalar: numeric
- name: ints
type:
list:
elementType:
scalar: numeric
elementRelationship: atomic
- name: string
type:
scalar: string
- name: strings
type:
list:
elementType:
scalar: string
elementRelationship: atomic
- name: version
type:
scalar: string
- name: versions
type:
list:
elementType:
scalar: string
elementRelationship: atomic
- name: io.k8s.api.resource.v1beta1.DeviceCapacity
map:
fields:
@@ -14071,15 +14119,39 @@ var schemaYAML = typed.YAMLObject(`types:
- name: bool
type:
scalar: boolean
- name: bools
type:
list:
elementType:
scalar: boolean
elementRelationship: atomic
- name: int
type:
scalar: numeric
- name: ints
type:
list:
elementType:
scalar: numeric
elementRelationship: atomic
- name: string
type:
scalar: string
- name: strings
type:
list:
elementType:
scalar: string
elementRelationship: atomic
- name: version
type:
scalar: string
- name: versions
type:
list:
elementType:
scalar: string
elementRelationship: atomic
- name: io.k8s.api.resource.v1beta2.DeviceCapacity
map:
fields:

View File

@@ -72,6 +72,14 @@ type CELDeviceSelectorApplyConfiguration struct {
//
// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
//
// When the DRAListTypeAttributes feature gate is enabled,
// the includes() helper is available and it can work for both scalar
// and list-type attributes. It was introduced to support smooth migration
// from scalar attributes to list-type attributes while keeping
// CEL expressions simple. For example:
//
// device.attributes["dra.example.com"].models.includes("some-model")
//
// The length of the expression must be smaller or equal to 10 Ki. The
// cost of evaluating it is also limited based on the estimated number
// of logical steps.

View File

@@ -32,6 +32,22 @@ type DeviceAttributeApplyConfiguration struct {
// VersionValue is a semantic version according to semver.org spec 2.0.0.
// Must not be longer than 64 characters.
VersionValue *string `json:"version,omitempty"`
// IntValues is a non-empty list of numbers.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
IntValues []int64 `json:"ints,omitempty"`
// BoolValues is a non-empty list of true/false values.
BoolValues []bool `json:"bools,omitempty"`
// StringValues is a non-empty list of strings.
// Each string must not be longer than 64 characters.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
StringValues []string `json:"strings,omitempty"`
// VersionValues is a non-empty list of semantic versions according to semver.org spec 2.0.0.
// Each version string must not be longer than 64 characters.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
VersionValues []string `json:"versions,omitempty"`
}
// DeviceAttributeApplyConfiguration constructs a declarative configuration of the DeviceAttribute type for use with
@@ -71,3 +87,43 @@ func (b *DeviceAttributeApplyConfiguration) WithVersionValue(value string) *Devi
b.VersionValue = &value
return b
}
// WithIntValues adds the given value to the IntValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the IntValues field.
func (b *DeviceAttributeApplyConfiguration) WithIntValues(values ...int64) *DeviceAttributeApplyConfiguration {
for i := range values {
b.IntValues = append(b.IntValues, values[i])
}
return b
}
// WithBoolValues adds the given value to the BoolValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the BoolValues field.
func (b *DeviceAttributeApplyConfiguration) WithBoolValues(values ...bool) *DeviceAttributeApplyConfiguration {
for i := range values {
b.BoolValues = append(b.BoolValues, values[i])
}
return b
}
// WithStringValues adds the given value to the StringValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the StringValues field.
func (b *DeviceAttributeApplyConfiguration) WithStringValues(values ...string) *DeviceAttributeApplyConfiguration {
for i := range values {
b.StringValues = append(b.StringValues, values[i])
}
return b
}
// WithVersionValues adds the given value to the VersionValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the VersionValues field.
func (b *DeviceAttributeApplyConfiguration) WithVersionValues(values ...string) *DeviceAttributeApplyConfiguration {
for i := range values {
b.VersionValues = append(b.VersionValues, values[i])
}
return b
}

View File

@@ -48,11 +48,21 @@ type DeviceConstraintApplyConfiguration struct {
// its specification, but if one device doesn't, then it also will not be
// chosen.
//
// When the DRAListTypeAttributes feature gate is enabled, comparison uses
// set semantics(i.e., element order and duplicates are ignored): list-valued attributes
// match when the intersection across all devices is non-empty.
// Scalar values are treated as single-element lists for backward compatibility.
//
// Must include the domain qualifier.
MatchAttribute *resourcev1.FullyQualifiedName `json:"matchAttribute,omitempty"`
// DistinctAttribute requires that all devices in question have this
// attribute and that its type and value are unique across those devices.
//
// When the DRAListTypeAttributes feature gate is enabled, comparison uses
// set semantics (i.e., element order and duplicates are ignored):
// list-valued attributes must be pairwise disjoint across devices.
// Scalar values are treated as singleton sets for backward compatibility.
//
// This acts as the inverse of MatchAttribute.
//
// This constraint is used to avoid allocating multiple requests to the same device

View File

@@ -72,6 +72,14 @@ type CELDeviceSelectorApplyConfiguration struct {
//
// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
//
// When the DRAListTypeAttributes feature gate is enabled,
// the includes() helper is available and it can work for both scalar
// and list-type attributes. It was introduced to support smooth migration
// from scalar attributes to list-type attributes while keeping
// CEL expressions simple. For example:
//
// device.attributes["dra.example.com"].models.includes("some-model")
//
// The length of the expression must be smaller or equal to 10 Ki. The
// cost of evaluating it is also limited based on the estimated number
// of logical steps.

View File

@@ -32,6 +32,22 @@ type DeviceAttributeApplyConfiguration struct {
// VersionValue is a semantic version according to semver.org spec 2.0.0.
// Must not be longer than 64 characters.
VersionValue *string `json:"version,omitempty"`
// IntValues is a non-empty list of numbers.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
IntValues []int64 `json:"ints,omitempty"`
// BoolValues is a non-empty list of true/false values.
BoolValues []bool `json:"bools,omitempty"`
// StringValues is a non-empty list of strings.
// Each string must not be longer than 64 characters.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
StringValues []string `json:"strings,omitempty"`
// VersionValues is a non-empty list of semantic versions according to semver.org spec 2.0.0.
// Each version string must not be longer than 64 characters.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
VersionValues []string `json:"versions,omitempty"`
}
// DeviceAttributeApplyConfiguration constructs a declarative configuration of the DeviceAttribute type for use with
@@ -71,3 +87,43 @@ func (b *DeviceAttributeApplyConfiguration) WithVersionValue(value string) *Devi
b.VersionValue = &value
return b
}
// WithIntValues adds the given value to the IntValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the IntValues field.
func (b *DeviceAttributeApplyConfiguration) WithIntValues(values ...int64) *DeviceAttributeApplyConfiguration {
for i := range values {
b.IntValues = append(b.IntValues, values[i])
}
return b
}
// WithBoolValues adds the given value to the BoolValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the BoolValues field.
func (b *DeviceAttributeApplyConfiguration) WithBoolValues(values ...bool) *DeviceAttributeApplyConfiguration {
for i := range values {
b.BoolValues = append(b.BoolValues, values[i])
}
return b
}
// WithStringValues adds the given value to the StringValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the StringValues field.
func (b *DeviceAttributeApplyConfiguration) WithStringValues(values ...string) *DeviceAttributeApplyConfiguration {
for i := range values {
b.StringValues = append(b.StringValues, values[i])
}
return b
}
// WithVersionValues adds the given value to the VersionValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the VersionValues field.
func (b *DeviceAttributeApplyConfiguration) WithVersionValues(values ...string) *DeviceAttributeApplyConfiguration {
for i := range values {
b.VersionValues = append(b.VersionValues, values[i])
}
return b
}

View File

@@ -48,11 +48,21 @@ type DeviceConstraintApplyConfiguration struct {
// its specification, but if one device doesn't, then it also will not be
// chosen.
//
// When the DRAListTypeAttributes feature gate is enabled, comparison uses
// set semantics(i.e., element order and duplicates are ignored): list-valued attributes
// match when the intersection across all devices is non-empty.
// Scalar values are treated as singleton sets for backward compatibility.
//
// Must include the domain qualifier.
MatchAttribute *resourcev1beta1.FullyQualifiedName `json:"matchAttribute,omitempty"`
// DistinctAttribute requires that all devices in question have this
// attribute and that its type and value are unique across those devices.
//
// When the DRAListTypeAttributes feature gate is enabled, comparison uses
// set semantics (i.e., element order and duplicates are ignored):
// list-valued attributes must be pairwise disjoint across devices.
// Scalar values are treated as singleton sets for backward compatibility.
//
// This acts as the inverse of MatchAttribute.
//
// This constraint is used to avoid allocating multiple requests to the same device

View File

@@ -72,6 +72,14 @@ type CELDeviceSelectorApplyConfiguration struct {
//
// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
//
// When the DRAListTypeAttributes feature gate is enabled,
// the includes() helper is available and it can work for both scalar
// and list-type attributes. It was introduced to support smooth migration
// from scalar attributes to list-type attributes while keeping
// CEL expressions simple. For example:
//
// device.attributes["dra.example.com"].models.includes("some-model")
//
// The length of the expression must be smaller or equal to 10 Ki. The
// cost of evaluating it is also limited based on the estimated number
// of logical steps.

View File

@@ -32,6 +32,22 @@ type DeviceAttributeApplyConfiguration struct {
// VersionValue is a semantic version according to semver.org spec 2.0.0.
// Must not be longer than 64 characters.
VersionValue *string `json:"version,omitempty"`
// IntValues is a non-empty list of numbers.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
IntValues []int64 `json:"ints,omitempty"`
// BoolValues is a non-empty list of true/false values.
BoolValues []bool `json:"bools,omitempty"`
// StringValues is a non-empty list of strings.
// Each string must not be longer than 64 characters.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
StringValues []string `json:"strings,omitempty"`
// VersionValues is a non-empty list of semantic versions according to semver.org spec 2.0.0.
// Each version string must not be longer than 64 characters.
//
// This is an alpha field and requires enabling the DRAListTypeAttributes feature gate.
VersionValues []string `json:"versions,omitempty"`
}
// DeviceAttributeApplyConfiguration constructs a declarative configuration of the DeviceAttribute type for use with
@@ -71,3 +87,43 @@ func (b *DeviceAttributeApplyConfiguration) WithVersionValue(value string) *Devi
b.VersionValue = &value
return b
}
// WithIntValues adds the given value to the IntValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the IntValues field.
func (b *DeviceAttributeApplyConfiguration) WithIntValues(values ...int64) *DeviceAttributeApplyConfiguration {
for i := range values {
b.IntValues = append(b.IntValues, values[i])
}
return b
}
// WithBoolValues adds the given value to the BoolValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the BoolValues field.
func (b *DeviceAttributeApplyConfiguration) WithBoolValues(values ...bool) *DeviceAttributeApplyConfiguration {
for i := range values {
b.BoolValues = append(b.BoolValues, values[i])
}
return b
}
// WithStringValues adds the given value to the StringValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the StringValues field.
func (b *DeviceAttributeApplyConfiguration) WithStringValues(values ...string) *DeviceAttributeApplyConfiguration {
for i := range values {
b.StringValues = append(b.StringValues, values[i])
}
return b
}
// WithVersionValues adds the given value to the VersionValues field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the VersionValues field.
func (b *DeviceAttributeApplyConfiguration) WithVersionValues(values ...string) *DeviceAttributeApplyConfiguration {
for i := range values {
b.VersionValues = append(b.VersionValues, values[i])
}
return b
}

View File

@@ -48,11 +48,21 @@ type DeviceConstraintApplyConfiguration struct {
// its specification, but if one device doesn't, then it also will not be
// chosen.
//
// When the DRAListTypeAttributes feature gate is enabled, comparison uses
// set semantics(i.e., element order and duplicates are ignored): list-valued attributes
// match when the intersection across all devices is non-empty.
// Scalar values are treated as singleton sets for backward compatibility.
//
// Must include the domain qualifier.
MatchAttribute *resourcev1beta2.FullyQualifiedName `json:"matchAttribute,omitempty"`
// DistinctAttribute requires that all devices in question have this
// attribute and that its type and value are unique across those devices.
//
// When the DRAListTypeAttributes feature gate is enabled, comparison uses
// set semantics (i.e., element order and duplicates are ignored):
// list-valued attributes must be pairwise disjoint across devices.
// Scalar values are treated as singleton sets for backward compatibility.
//
// This acts as the inverse of MatchAttribute.
//
// This constraint is used to avoid allocating multiple requests to the same device