DRA: remove "sharable" from claim allocation result

Now all claims are shareable up to the limit imposed by the size of the
"reserverFor" array.

This is one of the agreed simplifications for 1.31.
This commit is contained in:
Patrick Ohly 2024-06-13 18:43:17 +02:00
parent de5742ae83
commit 8a629b9f15
30 changed files with 152 additions and 408 deletions

View File

@ -15068,10 +15068,6 @@
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"shareable": {
"description": "Shareable determines whether the resource supports more than one consumer at a time.",
"type": "boolean"
}
},
"type": "object"
@ -15496,10 +15492,6 @@
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object metadata"
},
"shareable": {
"description": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
"type": "boolean"
}
},
"type": "object",

View File

@ -109,10 +109,6 @@
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"shareable": {
"description": "Shareable determines whether the resource supports more than one consumer at a time.",
"type": "boolean"
}
},
"type": "object"
@ -656,10 +652,6 @@
],
"default": {},
"description": "Standard object metadata"
},
"shareable": {
"description": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
"type": "boolean"
}
},
"type": "object",

View File

@ -130,11 +130,6 @@ type AllocationResult struct {
// everywhere.
// +optional
AvailableOnNodes *core.NodeSelector
// Shareable determines whether the resource supports more
// than one consumer at a time.
// +optional
Shareable bool
}
// AllocationResultResourceHandlesMaxSize represents the maximum number of
@ -509,10 +504,6 @@ type ResourceClaimParameters struct {
// to some unknown type.
GeneratedFrom *ResourceClaimParametersReference
// Shareable indicates whether the allocated claim is meant to be shareable
// by multiple consumers at the same time.
Shareable bool
// DriverRequests describes all resources that are needed for the
// allocated claim. A single claim may use resources coming from
// different drivers. For each driver, this array has at most one

View File

@ -497,7 +497,6 @@ func autoConvert_v1alpha3_AllocationResult_To_resource_AllocationResult(in *v1al
out.ResourceHandles = nil
}
out.AvailableOnNodes = (*core.NodeSelector)(unsafe.Pointer(in.AvailableOnNodes))
out.Shareable = in.Shareable
return nil
}
@ -519,7 +518,6 @@ func autoConvert_resource_AllocationResult_To_v1alpha3_AllocationResult(in *reso
out.ResourceHandles = nil
}
out.AvailableOnNodes = (*v1.NodeSelector)(unsafe.Pointer(in.AvailableOnNodes))
out.Shareable = in.Shareable
return nil
}
@ -1025,7 +1023,6 @@ func Convert_resource_ResourceClaimList_To_v1alpha3_ResourceClaimList(in *resour
func autoConvert_v1alpha3_ResourceClaimParameters_To_resource_ResourceClaimParameters(in *v1alpha3.ResourceClaimParameters, out *resource.ResourceClaimParameters, s conversion.Scope) error {
out.ObjectMeta = in.ObjectMeta
out.GeneratedFrom = (*resource.ResourceClaimParametersReference)(unsafe.Pointer(in.GeneratedFrom))
out.Shareable = in.Shareable
if in.DriverRequests != nil {
in, out := &in.DriverRequests, &out.DriverRequests
*out = make([]resource.DriverRequests, len(*in))
@ -1048,7 +1045,6 @@ func Convert_v1alpha3_ResourceClaimParameters_To_resource_ResourceClaimParameter
func autoConvert_resource_ResourceClaimParameters_To_v1alpha3_ResourceClaimParameters(in *resource.ResourceClaimParameters, out *v1alpha3.ResourceClaimParameters, s conversion.Scope) error {
out.ObjectMeta = in.ObjectMeta
out.GeneratedFrom = (*v1alpha3.ResourceClaimParametersReference)(unsafe.Pointer(in.GeneratedFrom))
out.Shareable = in.Shareable
if in.DriverRequests != nil {
in, out := &in.DriverRequests, &out.DriverRequests
*out = make([]v1alpha3.DriverRequests, len(*in))

View File

@ -170,9 +170,6 @@ func ValidateClaimStatusUpdate(resourceClaim, oldClaim *resource.ResourceClaim)
if resourceClaim.Status.Allocation == nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("reservedFor"), "may not be specified when `allocated` is not set"))
} else {
if !resourceClaim.Status.Allocation.Shareable && len(resourceClaim.Status.ReservedFor) > 1 {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("reservedFor"), "may not be reserved more than once"))
}
// Items may be removed from ReservedFor while the claim is meant to be deallocated,
// but not added.
if resourceClaim.DeletionTimestamp != nil || resourceClaim.Status.DeallocationRequested {

View File

@ -336,7 +336,6 @@ func TestValidateClaimStatusUpdate(t *testing.T) {
}
return handles
}(),
Shareable: true,
},
}
@ -584,25 +583,6 @@ func TestValidateClaimStatusUpdate(t *testing.T) {
return claim
},
},
"invalid-reserved-for-not-shared": {
wantFailures: field.ErrorList{field.Forbidden(field.NewPath("status", "reservedFor"), "may not be reserved more than once")},
oldClaim: func() *resource.ResourceClaim {
claim := validAllocatedClaim.DeepCopy()
claim.Status.Allocation.Shareable = false
return claim
}(),
update: func(claim *resource.ResourceClaim) *resource.ResourceClaim {
for i := 0; i < 2; i++ {
claim.Status.ReservedFor = append(claim.Status.ReservedFor,
resource.ResourceClaimConsumerReference{
Resource: "pods",
Name: fmt.Sprintf("foo-%d", i),
UID: types.UID(fmt.Sprintf("%d", i)),
})
}
return claim
},
},
"invalid-reserved-for-no-allocation": {
wantFailures: field.ErrorList{field.Forbidden(field.NewPath("status", "reservedFor"), "may not be specified when `allocated` is not set")},
oldClaim: validClaim,

View File

@ -559,9 +559,7 @@ func makeGeneratedClaim(podClaimName, generateName, namespace, classname string,
func allocateClaim(claim *resourceapi.ResourceClaim) *resourceapi.ResourceClaim {
claim = claim.DeepCopy()
claim.Status.Allocation = &resourceapi.AllocationResult{
Shareable: true,
}
claim.Status.Allocation = &resourceapi.AllocationResult{}
return claim
}

View File

@ -45576,13 +45576,6 @@ func schema_k8sio_api_resource_v1alpha3_AllocationResult(ref common.ReferenceCal
Ref: ref("k8s.io/api/core/v1.NodeSelector"),
},
},
"shareable": {
SchemaProps: spec.SchemaProps{
Description: "Shareable determines whether the resource supports more than one consumer at a time.",
Type: []string{"boolean"},
Format: "",
},
},
},
},
},
@ -46389,13 +46382,6 @@ func schema_k8sio_api_resource_v1alpha3_ResourceClaimParameters(ref common.Refer
Ref: ref("k8s.io/api/resource/v1alpha3.ResourceClaimParametersReference"),
},
},
"shareable": {
SchemaProps: spec.SchemaProps{
Description: "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
Type: []string{"boolean"},
Format: "",
},
},
"driverRequests": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{

View File

@ -1051,7 +1051,6 @@ func (pl *dynamicResources) lookupClassParameters(logger klog.Logger, class *res
func (pl *dynamicResources) lookupClaimParameters(logger klog.Logger, class *resourceapi.ResourceClass, claim *resourceapi.ResourceClaim) (*resourceapi.ResourceClaimParameters, *framework.Status) {
defaultClaimParameters := resourceapi.ResourceClaimParameters{
Shareable: true,
DriverRequests: []resourceapi.DriverRequests{
{
DriverName: class.DriverName,

View File

@ -105,10 +105,6 @@ var (
UID(podUID).
PodResourceClaims(v1.PodResourceClaim{Name: resourceName, ResourceClaimName: &claimName}).
Obj()
otherPodWithClaimName = st.MakePod().Name(podName).Namespace(namespace).
UID(podUID + "-II").
PodResourceClaims(v1.PodResourceClaim{Name: resourceName, ResourceClaimName: &claimName}).
Obj()
podWithClaimTemplate = st.MakePod().Name(podName).Namespace(namespace).
UID(podUID).
PodResourceClaims(v1.PodResourceClaim{Name: resourceName, ResourceClaimTemplateName: &claimName}).
@ -134,7 +130,6 @@ var (
claimParameters = st.MakeClaimParameters().Name(claimName).Namespace(namespace).
NamedResourcesRequests("some-driver", "true").
Shareable(true).
GeneratedFrom(&resourceapi.ResourceClaimParametersReference{
Name: claimName,
Kind: "ResourceClaimParameters",
@ -143,7 +138,6 @@ var (
Obj()
claimParametersOtherNamespace = st.MakeClaimParameters().Name(claimName).Namespace(namespace+"-2").
NamedResourcesRequests("some-driver", "true").
Shareable(true).
GeneratedFrom(&resourceapi.ResourceClaimParametersReference{
Name: claimName,
Kind: "ResourceClaimParameters",
@ -946,22 +940,6 @@ func TestPlugin(t *testing.T) {
},
},
},
"in-use-by-other": {
nodes: []*v1.Node{},
pod: otherPodWithClaimName,
claims: []*resourceapi.ResourceClaim{inUseClaim},
classes: []*resourceapi.ResourceClass{},
schedulings: []*resourceapi.PodSchedulingContext{},
prepare: prepare{},
want: want{
prefilter: result{
status: framework.NewStatus(framework.UnschedulableAndUnresolvable, `resourceclaim in use`),
},
postfilter: result{
status: framework.NewStatus(framework.Unschedulable, `no new claims to deallocate`),
},
},
},
"wrong-topology": {
// PostFilter tries to get the pod scheduleable by
// deallocating the claim.

View File

@ -188,7 +188,6 @@ func (c claimController) nodeIsSuitable(ctx context.Context, nodeName string, re
func (c claimController) allocate(ctx context.Context, nodeName string, resources resources) (string, *resourceapi.AllocationResult, error) {
allocation := &resourceapi.AllocationResult{
Shareable: c.claimParameters.Shareable,
AvailableOnNodes: &v1.NodeSelector{
NodeSelectorTerms: []v1.NodeSelectorTerm{
{

View File

@ -1003,7 +1003,6 @@ func (wrapper *ResourceClaimWrapper) Structured(nodeName string, namedResourcesI
resourceHandle.StructuredData.Results = append(resourceHandle.StructuredData.Results, result)
}
}
wrapper.ResourceClaim.Status.Allocation.Shareable = true
wrapper.ResourceClaim.Status.Allocation.AvailableOnNodes = &v1.NodeSelector{
NodeSelectorTerms: []v1.NodeSelectorTerm{{
MatchExpressions: []v1.NodeSelectorRequirement{{
@ -1172,11 +1171,6 @@ func (wrapper *ClaimParametersWrapper) Namespace(s string) *ClaimParametersWrapp
return wrapper
}
func (wrapper *ClaimParametersWrapper) Shareable(value bool) *ClaimParametersWrapper {
wrapper.ResourceClaimParameters.Shareable = value
return wrapper
}
func (wrapper *ClaimParametersWrapper) GeneratedFrom(value *resourceapi.ResourceClaimParametersReference) *ClaimParametersWrapper {
wrapper.ResourceClaimParameters.GeneratedFrom = value
return wrapper

View File

@ -1331,146 +1331,145 @@ func init() {
}
var fileDescriptor_66649ee9bbcd89d2 = []byte{
// 2219 bytes of a gzipped FileDescriptorProto
// 2197 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x1a, 0x4d, 0x6c, 0x1c, 0x57,
0xd9, 0xb3, 0xbb, 0x89, 0xd7, 0x9f, 0xed, 0xb5, 0x33, 0xb6, 0xe3, 0x4d, 0xea, 0xee, 0xba, 0x23,
0x10, 0x11, 0x38, 0xbb, 0x8d, 0xd3, 0xa6, 0x51, 0x29, 0x48, 0x99, 0xb8, 0x09, 0x16, 0x6d, 0xea,
0xbe, 0x25, 0x6e, 0x53, 0xfe, 0x3a, 0xde, 0x79, 0xb1, 0x87, 0xec, 0xce, 0x6c, 0xe6, 0xbd, 0x71,
0x13, 0x71, 0x89, 0x2a, 0x10, 0x5c, 0x90, 0x8a, 0x40, 0x08, 0x4e, 0x9c, 0x38, 0x70, 0xe1, 0x02,
0x57, 0x4e, 0x15, 0x34, 0xc7, 0x20, 0x40, 0x54, 0x1c, 0x56, 0x64, 0x39, 0x72, 0xe4, 0xc6, 0x09,
0xcd, 0x7b, 0x6f, 0x7e, 0xde, 0xec, 0xcc, 0x7a, 0x67, 0x21, 0x56, 0x72, 0xf2, 0xce, 0x7b, 0xdf,
0xdf, 0xfb, 0xfe, 0xdf, 0xf7, 0x0c, 0x1b, 0x77, 0x2e, 0x93, 0x86, 0xe5, 0x34, 0x8d, 0x9e, 0xd5,
0x74, 0x31, 0x71, 0x3c, 0xb7, 0x8d, 0x9b, 0x87, 0x17, 0x8c, 0x4e, 0xef, 0xc0, 0xb8, 0xd8, 0xdc,
0xc7, 0x36, 0x76, 0x0d, 0x8a, 0xcd, 0x46, 0xcf, 0x75, 0xa8, 0xa3, 0xae, 0x71, 0xe8, 0x86, 0xd1,
0xb3, 0x1a, 0x01, 0x74, 0x23, 0x80, 0x3e, 0x7b, 0x7e, 0xdf, 0xa2, 0x07, 0xde, 0x5e, 0xa3, 0xed,
0x74, 0x9b, 0xfb, 0xce, 0xbe, 0xd3, 0x64, 0x48, 0x7b, 0xde, 0x6d, 0xf6, 0xc5, 0x3e, 0xd8, 0x2f,
0x4e, 0xec, 0xac, 0x16, 0x63, 0xdd, 0x76, 0x5c, 0x9f, 0x6d, 0x92, 0xe1, 0xd9, 0x97, 0x22, 0x98,
0xae, 0xd1, 0x3e, 0xb0, 0x6c, 0xec, 0xde, 0x6f, 0xf6, 0xee, 0xec, 0xcb, 0xf2, 0xe6, 0xc1, 0x22,
0xcd, 0x2e, 0xa6, 0x46, 0x1a, 0xaf, 0x66, 0x16, 0x96, 0xeb, 0xd9, 0xd4, 0xea, 0x0e, 0xb3, 0xb9,
0x74, 0x14, 0x02, 0x69, 0x1f, 0xe0, 0xae, 0x91, 0xc4, 0xd3, 0x7e, 0x5e, 0x80, 0xc5, 0x2b, 0x9d,
0x8e, 0xd3, 0x36, 0xa8, 0xe5, 0xd8, 0x08, 0x13, 0xaf, 0x43, 0x55, 0x07, 0x16, 0x82, 0xf3, 0x7c,
0xc5, 0xb0, 0xcd, 0x0e, 0x26, 0x55, 0x65, 0xbd, 0x78, 0x6e, 0x76, 0x73, 0xa3, 0x31, 0x4a, 0xe9,
0x0d, 0x24, 0x21, 0xe9, 0xab, 0x0f, 0xfb, 0xf5, 0xa9, 0x41, 0xbf, 0xbe, 0x20, 0xaf, 0x13, 0x94,
0xa4, 0xae, 0xee, 0xc1, 0xa2, 0x71, 0x68, 0x58, 0x1d, 0x63, 0xaf, 0x83, 0xdf, 0xb2, 0x6f, 0x38,
0x26, 0x26, 0xd5, 0xc2, 0xba, 0x72, 0x6e, 0x76, 0x73, 0x3d, 0xce, 0xd1, 0xb7, 0x4c, 0xe3, 0xf0,
0x42, 0xc3, 0x07, 0x68, 0xe1, 0x0e, 0x6e, 0x53, 0xc7, 0xd5, 0x97, 0x07, 0xfd, 0xfa, 0xe2, 0x95,
0x04, 0x36, 0x1a, 0xa2, 0xa7, 0x36, 0x61, 0x86, 0x1c, 0x18, 0x2e, 0xf6, 0xd7, 0xaa, 0xc5, 0x75,
0xe5, 0x5c, 0x59, 0x3f, 0x25, 0x04, 0x9c, 0x69, 0x05, 0x1b, 0x28, 0x82, 0xd1, 0x7e, 0xac, 0xc0,
0x4a, 0x52, 0x35, 0x6f, 0x3a, 0x26, 0xee, 0xa8, 0xf7, 0xa0, 0x62, 0x1b, 0x5d, 0x6c, 0x06, 0xe7,
0xf2, 0xd5, 0xe3, 0x0b, 0xfb, 0xda, 0x68, 0xf5, 0xdc, 0x90, 0x70, 0x92, 0xa4, 0x75, 0x75, 0xd0,
0xaf, 0x57, 0x64, 0x18, 0x94, 0xe0, 0xa3, 0xfd, 0xa6, 0x00, 0xa7, 0xb7, 0x5c, 0xeb, 0x10, 0xbb,
0x43, 0x46, 0xfb, 0xa1, 0x02, 0xab, 0x87, 0xd8, 0x36, 0x1d, 0x17, 0xe1, 0xbb, 0x1e, 0x26, 0x74,
0xc7, 0x70, 0x8d, 0x2e, 0xa6, 0xd8, 0x0d, 0xc4, 0x3b, 0x1f, 0x13, 0x2f, 0x74, 0x92, 0x46, 0xef,
0xce, 0x7e, 0x43, 0x38, 0x49, 0x03, 0x19, 0x1f, 0xbc, 0x7e, 0x8f, 0x62, 0x9b, 0x58, 0x8e, 0xad,
0xd7, 0x85, 0x76, 0x56, 0x77, 0xd3, 0xa9, 0xa2, 0x2c, 0x76, 0xbe, 0x28, 0x2b, 0x46, 0x9a, 0xe6,
0x84, 0x51, 0x2f, 0x8e, 0xd6, 0x53, 0xaa, 0xd2, 0xf5, 0xe7, 0x85, 0x38, 0xe9, 0x36, 0x41, 0xe9,
0x0c, 0xb5, 0x9f, 0x15, 0xa0, 0xc2, 0x15, 0x26, 0xc4, 0x24, 0xea, 0x26, 0x80, 0xc9, 0x56, 0x7c,
0x5d, 0x33, 0xd5, 0xcc, 0xe8, 0xaa, 0x20, 0x0e, 0x5b, 0xe1, 0x0e, 0x8a, 0x41, 0xa9, 0x04, 0x16,
0xf9, 0x61, 0x63, 0x4a, 0x2d, 0x4c, 0xa2, 0xd4, 0xaa, 0x60, 0xb4, 0xb8, 0x9b, 0x20, 0x87, 0x86,
0x18, 0xa8, 0x5f, 0x87, 0xb2, 0x2b, 0x84, 0xae, 0x16, 0x59, 0xfc, 0x9d, 0x1f, 0x2f, 0xfe, 0xc4,
0x51, 0xf5, 0x45, 0xc1, 0xac, 0x1c, 0x9c, 0x1d, 0x85, 0x04, 0x35, 0x1d, 0x6a, 0xa3, 0xfd, 0x51,
0x5d, 0x87, 0x92, 0x1d, 0x69, 0x68, 0x4e, 0xd0, 0x2a, 0x31, 0xdd, 0xb0, 0x1d, 0xed, 0x8f, 0x0a,
0xac, 0x26, 0x88, 0x50, 0xea, 0x5a, 0x7b, 0x1e, 0xc5, 0x47, 0x63, 0xfb, 0x5e, 0x52, 0x31, 0x02,
0xf8, 0x5d, 0xa3, 0xe3, 0x61, 0xa1, 0xd2, 0x57, 0x73, 0x85, 0x91, 0x44, 0x41, 0xff, 0x8c, 0x60,
0xb4, 0x36, 0x0a, 0x0a, 0x25, 0xf8, 0x6a, 0xff, 0x2a, 0xc2, 0x48, 0x04, 0xf5, 0x9b, 0x50, 0xbe,
0xeb, 0x19, 0x36, 0xb5, 0xe8, 0xfd, 0xea, 0x49, 0x26, 0x64, 0x23, 0xd3, 0xee, 0x92, 0xd4, 0x6f,
0x0b, 0x2c, 0xfd, 0xd4, 0xa0, 0x5f, 0x9f, 0x0f, 0xbe, 0xb8, 0x14, 0x21, 0x49, 0xf5, 0x05, 0x28,
0xed, 0x39, 0x0e, 0x0f, 0x8f, 0xb2, 0x3e, 0xef, 0xa7, 0x24, 0xdd, 0x71, 0x3a, 0x1c, 0x8c, 0x6d,
0xa9, 0x35, 0x28, 0x5a, 0x36, 0xad, 0x4e, 0xaf, 0x2b, 0xe7, 0x8a, 0xfa, 0x9c, 0x6f, 0xd4, 0x6d,
0x9b, 0x72, 0x00, 0x7f, 0x43, 0x6d, 0x43, 0xd9, 0xb2, 0x69, 0xab, 0x63, 0xb5, 0x71, 0xb5, 0xcc,
0x24, 0x7c, 0x29, 0x8f, 0x1a, 0xb7, 0x05, 0x2e, 0x97, 0x33, 0xf8, 0x12, 0x72, 0x06, 0x84, 0xd5,
0xcf, 0xc1, 0x49, 0x42, 0x5d, 0xcb, 0xde, 0xaf, 0x9e, 0x60, 0x66, 0x5d, 0x18, 0xf4, 0xeb, 0xb3,
0x2d, 0xb6, 0xc2, 0x41, 0xc5, 0xb6, 0xea, 0xc0, 0x2c, 0xff, 0xc5, 0x05, 0x9a, 0x61, 0x02, 0xbd,
0x92, 0x47, 0xa0, 0x56, 0x84, 0xce, 0x53, 0x7c, 0x6c, 0x81, 0xf3, 0x8a, 0x73, 0x50, 0x3f, 0x0f,
0xd3, 0x87, 0xd8, 0xf5, 0x43, 0xac, 0x0a, 0x4c, 0xb4, 0xc5, 0x41, 0xbf, 0x3e, 0xb7, 0xcb, 0x97,
0x38, 0x7c, 0x00, 0xa0, 0x6d, 0xc1, 0xb2, 0xcc, 0xeb, 0x9a, 0xd5, 0xa1, 0xd8, 0x55, 0x37, 0xa0,
0x4c, 0x44, 0x55, 0x11, 0x6e, 0x1b, 0x06, 0x50, 0x50, 0x6d, 0x50, 0x08, 0xa1, 0xfd, 0x4a, 0x81,
0xd3, 0x49, 0x1d, 0x12, 0x6a, 0xd8, 0xed, 0x71, 0x7c, 0xdf, 0x02, 0x08, 0x5d, 0xd0, 0xcf, 0x24,
0x7e, 0x70, 0xbf, 0x3c, 0x91, 0xdb, 0x47, 0xa9, 0x2b, 0x5c, 0x22, 0x28, 0x46, 0x5c, 0xbb, 0x34,
0x2c, 0xa6, 0xb0, 0xe6, 0x1a, 0x94, 0x2c, 0x9b, 0xf2, 0xda, 0x5e, 0xd4, 0xcb, 0xbe, 0x88, 0xdb,
0x36, 0x25, 0x88, 0xad, 0x6a, 0xaf, 0xc3, 0x4a, 0xa2, 0x18, 0xf1, 0xd4, 0x91, 0x53, 0x4d, 0x0f,
0x86, 0x72, 0x44, 0xf8, 0x43, 0xc5, 0x30, 0x63, 0x09, 0x9d, 0x05, 0x1d, 0x46, 0x4e, 0xa7, 0xe5,
0xc8, 0x51, 0x21, 0x0f, 0x56, 0x08, 0x8a, 0x28, 0x6b, 0x3a, 0x9c, 0xc9, 0xf4, 0x2d, 0xf5, 0xb3,
0x30, 0xcd, 0xfd, 0x88, 0x4b, 0x30, 0xa3, 0xcf, 0x0e, 0xfa, 0xf5, 0x69, 0x0e, 0x41, 0x50, 0xb0,
0xa7, 0xfd, 0xae, 0x00, 0xcb, 0x3b, 0x8e, 0xd9, 0x6a, 0x1f, 0x60, 0xd3, 0xeb, 0x58, 0xf6, 0xfe,
0x55, 0xc7, 0xa6, 0xf8, 0x1e, 0x55, 0xdf, 0x87, 0xb2, 0xdf, 0xc4, 0x99, 0x06, 0x35, 0x44, 0x99,
0x7d, 0x71, 0x54, 0x66, 0x20, 0x0d, 0x1f, 0xda, 0x6f, 0x62, 0xde, 0xda, 0xfb, 0x0e, 0x6e, 0xd3,
0x37, 0x31, 0x35, 0x22, 0x13, 0x46, 0x6b, 0x28, 0xa4, 0xaa, 0xbe, 0x0b, 0x25, 0xd2, 0xc3, 0x6d,
0x91, 0x1c, 0x2f, 0x8d, 0x56, 0x50, 0x9a, 0x8c, 0xad, 0x1e, 0x6e, 0x47, 0x5e, 0xe8, 0x7f, 0x21,
0x46, 0x51, 0x7d, 0xdf, 0x0f, 0x67, 0x83, 0x7a, 0x84, 0xf5, 0x43, 0xb3, 0x9b, 0x97, 0x27, 0xa0,
0xcd, 0xf0, 0xf5, 0x8a, 0xa0, 0x7e, 0x92, 0x7f, 0x23, 0x41, 0x57, 0xfb, 0x93, 0x02, 0xd5, 0x34,
0xb4, 0x37, 0x2c, 0x42, 0xd5, 0x6f, 0x0c, 0xa9, 0xae, 0x31, 0x9e, 0xea, 0x7c, 0x6c, 0xa6, 0xb8,
0xd0, 0xf1, 0x82, 0x95, 0x98, 0xda, 0xde, 0x81, 0x13, 0x16, 0xc5, 0xdd, 0x20, 0xba, 0x36, 0xf3,
0x9f, 0x4d, 0x9f, 0x17, 0xe4, 0x4f, 0x6c, 0xfb, 0x84, 0x10, 0xa7, 0xa7, 0x7d, 0x94, 0x71, 0x26,
0x5f, 0xb1, 0xea, 0x65, 0x98, 0xe3, 0xae, 0x8f, 0x4d, 0xbf, 0xed, 0x14, 0x01, 0xb2, 0x2c, 0x08,
0xcd, 0xb5, 0x62, 0x7b, 0x48, 0x82, 0x54, 0x5f, 0x85, 0x4a, 0xcf, 0xa1, 0xd8, 0xa6, 0x96, 0xd1,
0x09, 0x3a, 0x60, 0xdf, 0x1f, 0x59, 0x5b, 0xb8, 0x23, 0xed, 0xa0, 0x04, 0xa4, 0xf6, 0x0b, 0x05,
0xce, 0x66, 0x5b, 0x47, 0xfd, 0x2e, 0x54, 0x82, 0x13, 0x5f, 0xed, 0x18, 0x56, 0x37, 0x08, 0xb6,
0x2f, 0x8e, 0xd7, 0x4e, 0x30, 0x9c, 0x88, 0xb6, 0x30, 0xf9, 0x69, 0x71, 0xa6, 0x8a, 0x04, 0x46,
0x50, 0x82, 0x95, 0xf6, 0xcb, 0x02, 0xcc, 0x4b, 0x20, 0xc7, 0x10, 0x32, 0x6f, 0x4b, 0x21, 0xd3,
0xcc, 0x73, 0xcc, 0xac, 0x58, 0xb9, 0x95, 0x88, 0x95, 0x0b, 0x79, 0x88, 0x8e, 0x0e, 0x92, 0x81,
0x02, 0x35, 0x09, 0xfe, 0xaa, 0x63, 0x13, 0xaf, 0xeb, 0xb7, 0xac, 0xb7, 0xb1, 0x8b, 0xfd, 0x8a,
0xb2, 0x01, 0x65, 0xa3, 0x67, 0x5d, 0x77, 0x1d, 0xaf, 0x97, 0xcc, 0xb9, 0x57, 0x76, 0xb6, 0xd9,
0x3a, 0x0a, 0x21, 0x7c, 0xe8, 0x40, 0x22, 0x26, 0xed, 0x4c, 0xbc, 0x13, 0x14, 0x2d, 0x62, 0x08,
0x11, 0x56, 0xab, 0x52, 0x66, 0xb5, 0xd2, 0xa1, 0xe8, 0x59, 0xa6, 0xa8, 0xf9, 0x2f, 0x0a, 0x80,
0xe2, 0xcd, 0xed, 0xad, 0xff, 0xf4, 0xeb, 0x2f, 0x64, 0x5d, 0x3c, 0xe9, 0xfd, 0x1e, 0x26, 0x8d,
0x9b, 0xdb, 0x5b, 0xc8, 0x47, 0xd6, 0x3e, 0x56, 0xe0, 0x94, 0x74, 0xc8, 0x63, 0x48, 0x01, 0x3b,
0x72, 0x0a, 0xf8, 0x42, 0x0e, 0x93, 0x65, 0xc4, 0xfe, 0x4f, 0x8a, 0xb0, 0x2a, 0xc1, 0xc5, 0xda,
0xf5, 0x27, 0xef, 0xd6, 0x1f, 0xc0, 0x7c, 0x78, 0x7f, 0xbf, 0xe6, 0x3a, 0x5d, 0xe1, 0xdf, 0x5f,
0xce, 0x71, 0xae, 0xd8, 0x85, 0x23, 0x70, 0x2e, 0xde, 0xf2, 0x5d, 0x8f, 0x13, 0x46, 0x32, 0x9f,
0xdc, 0x77, 0x67, 0xb5, 0x03, 0x15, 0x53, 0xba, 0x75, 0x55, 0x4b, 0xe3, 0x0c, 0x10, 0xe4, 0x9b,
0x5a, 0x94, 0x62, 0xe4, 0x75, 0x94, 0xa0, 0xad, 0xfd, 0x4d, 0x81, 0xe7, 0x32, 0x4e, 0x79, 0x0c,
0x5e, 0xf6, 0x9e, 0xec, 0x65, 0x2f, 0x4f, 0x64, 0x8d, 0x0c, 0x7f, 0xfb, 0xa9, 0x02, 0xeb, 0x47,
0xd9, 0x2f, 0x67, 0x72, 0x58, 0x87, 0xd2, 0x1d, 0xcb, 0x36, 0x99, 0xef, 0xc4, 0xc2, 0xfd, 0xab,
0x96, 0x6d, 0x22, 0xb6, 0x13, 0x26, 0x84, 0x62, 0xe6, 0xc5, 0xef, 0x81, 0x02, 0xcf, 0x8f, 0xac,
0x0e, 0x63, 0xb4, 0xc0, 0x5f, 0x82, 0x05, 0xcf, 0x26, 0x9e, 0x45, 0x7d, 0x87, 0x89, 0x17, 0xbc,
0xa5, 0x41, 0xbf, 0xbe, 0x70, 0x53, 0xde, 0x42, 0x49, 0x58, 0xed, 0xaf, 0xc9, 0x7c, 0xc2, 0xca,
0xef, 0x75, 0x38, 0x15, 0x2b, 0x3f, 0x84, 0xc4, 0xae, 0xf8, 0x67, 0x84, 0x0c, 0x71, 0x2c, 0x0e,
0x80, 0x86, 0x71, 0xfc, 0x50, 0xeb, 0xc5, 0x55, 0xfd, 0xff, 0x0c, 0x35, 0x69, 0x03, 0xc9, 0x7c,
0xb4, 0x7f, 0x17, 0x60, 0x29, 0xa5, 0x78, 0x4c, 0x34, 0xb5, 0xf8, 0x16, 0x40, 0x34, 0x15, 0x11,
0x27, 0x68, 0xe4, 0x9b, 0xbd, 0xe8, 0x15, 0x76, 0xb5, 0x88, 0x56, 0x63, 0x14, 0x55, 0x02, 0xb3,
0x2e, 0x26, 0xd8, 0x3d, 0xc4, 0xe6, 0x35, 0xc7, 0x15, 0x33, 0x8a, 0xd7, 0x72, 0xa8, 0x68, 0xa8,
0xd0, 0xe9, 0x4b, 0xe2, 0x48, 0xb3, 0x28, 0x22, 0x8c, 0xe2, 0x5c, 0xd4, 0x16, 0xac, 0x98, 0x38,
0x3e, 0xec, 0x61, 0x49, 0x00, 0x9b, 0xac, 0x7e, 0x95, 0xa3, 0x31, 0xd1, 0x56, 0x1a, 0x10, 0x4a,
0xc7, 0xd5, 0xfe, 0xa2, 0xc0, 0x8a, 0x24, 0xd9, 0xd7, 0x70, 0xb7, 0xd7, 0x31, 0x28, 0x3e, 0x86,
0xac, 0x7e, 0x4b, 0x6a, 0x56, 0x5e, 0xc9, 0xa1, 0xbe, 0x40, 0xc8, 0xac, 0xa6, 0x45, 0xfb, 0xb3,
0x02, 0x67, 0x52, 0x31, 0x8e, 0x21, 0x2d, 0xbe, 0x2b, 0xa7, 0xc5, 0x8b, 0x13, 0x9c, 0x2b, 0x23,
0x29, 0x3e, 0xca, 0x3a, 0x55, 0x8b, 0x5f, 0x6a, 0x9e, 0xbd, 0xee, 0x52, 0xfb, 0xa4, 0x28, 0x35,
0xc9, 0xe4, 0x38, 0xba, 0x09, 0x39, 0xa3, 0x14, 0xc6, 0xca, 0x28, 0x43, 0x69, 0xb1, 0x98, 0x33,
0x2d, 0x12, 0x32, 0x51, 0x5a, 0x54, 0x6f, 0xc1, 0xbc, 0x5c, 0x2b, 0x4a, 0x63, 0x3e, 0x0f, 0x30,
0xd2, 0x2d, 0xa9, 0x96, 0xc8, 0x94, 0xd4, 0x37, 0x60, 0x99, 0x50, 0xd7, 0x6b, 0x53, 0xcf, 0xc5,
0x66, 0x6c, 0xbe, 0x7b, 0x82, 0xe5, 0x93, 0xea, 0xa0, 0x5f, 0x5f, 0x6e, 0xa5, 0xec, 0xa3, 0x54,
0xac, 0x64, 0x9f, 0x4b, 0xc8, 0xd3, 0xdc, 0xe7, 0x92, 0xac, 0xbe, 0xe3, 0x63, 0xb9, 0xcf, 0x8d,
0x5b, 0xed, 0x59, 0xe8, 0x73, 0x47, 0x78, 0xd9, 0xc8, 0x3e, 0x97, 0xa6, 0x8c, 0xf9, 0x79, 0x55,
0x3b, 0xa2, 0x6c, 0x26, 0xa7, 0xf9, 0xb9, 0xe6, 0xfc, 0xef, 0xc0, 0xf4, 0x6d, 0x36, 0x81, 0x1c,
0xb3, 0x4b, 0x0e, 0x0e, 0xca, 0xc7, 0x96, 0xfa, 0x82, 0x60, 0x35, 0xcd, 0xbf, 0x09, 0x0a, 0xa8,
0x25, 0xfb, 0xe2, 0xb8, 0x56, 0x9e, 0xe6, 0xbe, 0x38, 0x2e, 0x67, 0x86, 0x7f, 0xfe, 0x41, 0xee,
0x8b, 0x53, 0xed, 0x7d, 0xfc, 0x7d, 0xb1, 0x7f, 0x4f, 0xf2, 0xff, 0x92, 0x9e, 0xd1, 0x0e, 0xee,
0xd3, 0xe1, 0x3d, 0xe9, 0x46, 0xb0, 0x81, 0x22, 0x18, 0xed, 0x13, 0x05, 0x2a, 0xb2, 0x39, 0x27,
0x6a, 0xf4, 0x1e, 0x28, 0xb0, 0xe4, 0x4a, 0x64, 0xe2, 0xcf, 0x6d, 0x17, 0xf2, 0xb8, 0x13, 0x7f,
0x6c, 0x7b, 0x4e, 0x30, 0x5c, 0x4a, 0xd9, 0x44, 0x69, 0xac, 0xb4, 0xef, 0x2b, 0x90, 0x06, 0xac,
0xda, 0x19, 0x6f, 0xa5, 0x9b, 0x79, 0x06, 0xbd, 0xc2, 0xd3, 0xc7, 0x79, 0x21, 0xfd, 0x7b, 0x4c,
0xa3, 0xfc, 0x79, 0x79, 0x22, 0x8d, 0xae, 0x43, 0x89, 0x85, 0x45, 0xc2, 0x1b, 0xb6, 0x0c, 0x6a,
0x20, 0xb6, 0xa3, 0xba, 0x50, 0x89, 0x0a, 0x80, 0xbf, 0xce, 0x0a, 0xc6, 0x91, 0x03, 0xda, 0xa8,
0x94, 0x24, 0x5e, 0xcb, 0xd9, 0xe1, 0x5a, 0x12, 0x45, 0x94, 0xe0, 0xa0, 0x7d, 0xa8, 0x44, 0x6d,
0x02, 0x57, 0xef, 0xdd, 0x0c, 0xf5, 0xe6, 0x7a, 0x4c, 0x08, 0x7f, 0x8c, 0xa5, 0xe1, 0x1f, 0x15,
0x60, 0x21, 0xf1, 0xd2, 0x98, 0xfa, 0x3e, 0xaa, 0x3c, 0xe9, 0xf7, 0xd1, 0xef, 0x29, 0xb0, 0xec,
0xca, 0x82, 0xc4, 0xdd, 0x7e, 0x33, 0xd7, 0x63, 0x29, 0xf7, 0xfb, 0x35, 0xc1, 0x7e, 0x39, 0x6d,
0x17, 0xa5, 0x72, 0xd3, 0x7e, 0xa0, 0x40, 0x2a, 0xb8, 0xea, 0x64, 0xd8, 0xe6, 0x62, 0x3e, 0xdb,
0xf0, 0xb7, 0xdc, 0x71, 0x2c, 0xf3, 0xfb, 0xd8, 0xa8, 0x95, 0xbf, 0x6e, 0x3c, 0xf9, 0x5a, 0xbd,
0x01, 0x65, 0xdb, 0x31, 0x71, 0xac, 0x87, 0x0c, 0x93, 0xec, 0x0d, 0xb1, 0x8e, 0x42, 0x88, 0x44,
0x28, 0x16, 0xc7, 0x0a, 0xc5, 0x03, 0x98, 0x77, 0xe3, 0x3e, 0x2f, 0x5a, 0xbf, 0x31, 0xbb, 0x1c,
0x6e, 0xd7, 0x15, 0xc1, 0x43, 0x8e, 0x1e, 0x24, 0x13, 0x96, 0x7a, 0x37, 0xa6, 0xbf, 0xa7, 0xb6,
0x77, 0xe3, 0xef, 0xa2, 0xe9, 0xb5, 0xf1, 0xb7, 0x45, 0xa8, 0x66, 0x65, 0x19, 0xf5, 0x43, 0x05,
0x56, 0x78, 0x20, 0x25, 0xca, 0xe6, 0x64, 0xe1, 0x1a, 0xde, 0xb6, 0x77, 0xd3, 0x68, 0xa2, 0x74,
0x56, 0xb2, 0x10, 0xf1, 0x41, 0xc9, 0x64, 0xff, 0x53, 0x31, 0x2c, 0x84, 0x34, 0x7c, 0x49, 0x67,
0x25, 0x39, 0x6e, 0xe9, 0x48, 0xc7, 0xfd, 0x36, 0x4c, 0xbb, 0x6c, 0x20, 0xe2, 0xdf, 0x0b, 0xc6,
0x78, 0xa8, 0x4c, 0xff, 0x27, 0x9d, 0xa8, 0x57, 0xe3, 0xdf, 0x04, 0x05, 0x54, 0xb5, 0x5f, 0x2b,
0x30, 0x94, 0xf3, 0x26, 0xaa, 0x5c, 0x06, 0x40, 0xef, 0x7f, 0x54, 0x68, 0xc8, 0x22, 0xa6, 0xc5,
0x18, 0x51, 0x5d, 0x7f, 0xf8, 0xb8, 0x36, 0xf5, 0xe8, 0x71, 0x6d, 0xea, 0xd3, 0xc7, 0xb5, 0xa9,
0x07, 0x83, 0x9a, 0xf2, 0x70, 0x50, 0x53, 0x1e, 0x0d, 0x6a, 0xca, 0xa7, 0x83, 0x9a, 0xf2, 0x8f,
0x41, 0x4d, 0xf9, 0xe8, 0x9f, 0xb5, 0xa9, 0xf7, 0xd6, 0x46, 0xfd, 0x3b, 0xdf, 0x7f, 0x03, 0x00,
0x00, 0xff, 0xff, 0xf0, 0x19, 0xbb, 0x6c, 0xed, 0x27, 0x00, 0x00,
0xbe, 0x25, 0x6e, 0x53, 0xfe, 0x3a, 0xde, 0x79, 0xb1, 0x87, 0xcc, 0xce, 0x6c, 0xe6, 0xbd, 0x75,
0x13, 0x71, 0x89, 0x2a, 0x10, 0x5c, 0x90, 0x8a, 0x84, 0x90, 0x38, 0x71, 0xe2, 0xc0, 0x85, 0x0b,
0x5c, 0x39, 0x55, 0xd0, 0x1c, 0x83, 0x00, 0x51, 0x71, 0x58, 0x91, 0xe5, 0xc0, 0x81, 0x23, 0x37,
0x4e, 0x68, 0xde, 0x7b, 0xf3, 0xf3, 0x66, 0x67, 0xd6, 0x3b, 0x4b, 0x63, 0x25, 0x27, 0xef, 0xbc,
0xf7, 0xfd, 0xbd, 0xef, 0xff, 0x7d, 0xcf, 0xb0, 0x71, 0xe7, 0x32, 0x69, 0x58, 0x6e, 0xd3, 0xe8,
0x5a, 0x4d, 0x0f, 0x13, 0xb7, 0xe7, 0xb5, 0x71, 0xf3, 0xf0, 0x82, 0x61, 0x77, 0x0f, 0x8c, 0x8b,
0xcd, 0x7d, 0xec, 0x60, 0xcf, 0xa0, 0xd8, 0x6c, 0x74, 0x3d, 0x97, 0xba, 0xea, 0x1a, 0x87, 0x6e,
0x18, 0x5d, 0xab, 0x11, 0x40, 0x37, 0x02, 0xe8, 0xb3, 0xe7, 0xf7, 0x2d, 0x7a, 0xd0, 0xdb, 0x6b,
0xb4, 0xdd, 0x4e, 0x73, 0xdf, 0xdd, 0x77, 0x9b, 0x0c, 0x69, 0xaf, 0x77, 0x9b, 0x7d, 0xb1, 0x0f,
0xf6, 0x8b, 0x13, 0x3b, 0xab, 0xc5, 0x58, 0xb7, 0x5d, 0xcf, 0x67, 0x9b, 0x64, 0x78, 0xf6, 0xa5,
0x08, 0xa6, 0x63, 0xb4, 0x0f, 0x2c, 0x07, 0x7b, 0xf7, 0x9b, 0xdd, 0x3b, 0xfb, 0xb2, 0xbc, 0x79,
0xb0, 0x48, 0xb3, 0x83, 0xa9, 0x91, 0xc6, 0xab, 0x99, 0x85, 0xe5, 0xf5, 0x1c, 0x6a, 0x75, 0x86,
0xd9, 0x5c, 0x3a, 0x0a, 0x81, 0xb4, 0x0f, 0x70, 0xc7, 0x48, 0xe2, 0x69, 0xff, 0x52, 0x60, 0xf1,
0x8a, 0x6d, 0xbb, 0x6d, 0x83, 0x5a, 0xae, 0x83, 0x30, 0xe9, 0xd9, 0x54, 0x75, 0x61, 0x21, 0x38,
0xcf, 0xd7, 0x0c, 0xc7, 0xb4, 0x31, 0xa9, 0x2a, 0xeb, 0xc5, 0x73, 0xb3, 0x9b, 0x1b, 0x8d, 0x51,
0x4a, 0x6f, 0x20, 0x09, 0x49, 0x5f, 0x7d, 0xd8, 0xaf, 0x4f, 0x0d, 0xfa, 0xf5, 0x05, 0x79, 0x9d,
0xa0, 0x24, 0x75, 0x75, 0x0f, 0x16, 0x8d, 0x43, 0xc3, 0xb2, 0x8d, 0x3d, 0x1b, 0xbf, 0xe5, 0xdc,
0x70, 0x4d, 0x4c, 0xaa, 0x85, 0x75, 0xe5, 0xdc, 0xec, 0xe6, 0x7a, 0x9c, 0xa3, 0x6f, 0x99, 0xc6,
0xe1, 0x85, 0x86, 0x0f, 0xd0, 0xc2, 0x36, 0x6e, 0x53, 0xd7, 0xd3, 0x97, 0x07, 0xfd, 0xfa, 0xe2,
0x95, 0x04, 0x36, 0x1a, 0xa2, 0xa7, 0xfd, 0x54, 0x81, 0x95, 0xe4, 0x49, 0xdf, 0x74, 0x4d, 0x6c,
0xab, 0xf7, 0xa0, 0xe2, 0x18, 0x1d, 0x6c, 0x06, 0x62, 0xfa, 0xa7, 0xf5, 0x79, 0xbf, 0x36, 0xfa,
0xb4, 0x37, 0x24, 0x9c, 0x24, 0x69, 0x5d, 0x1d, 0xf4, 0xeb, 0x15, 0x19, 0x06, 0x25, 0xf8, 0x68,
0xbf, 0x29, 0xc0, 0xe9, 0x2d, 0xcf, 0x3a, 0xc4, 0xde, 0x90, 0x0d, 0x7e, 0xac, 0xc0, 0xea, 0x21,
0x76, 0x4c, 0xd7, 0x43, 0xf8, 0x6e, 0x0f, 0x13, 0xba, 0x63, 0x78, 0x46, 0x07, 0x53, 0xec, 0x05,
0xe2, 0x9d, 0x8f, 0x89, 0x17, 0xda, 0xbc, 0xd1, 0xbd, 0xb3, 0xdf, 0x10, 0x36, 0x6f, 0x20, 0xe3,
0x83, 0xd7, 0xef, 0x51, 0xec, 0x10, 0xcb, 0x75, 0xf4, 0xba, 0xb0, 0xc6, 0xea, 0x6e, 0x3a, 0x55,
0x94, 0xc5, 0xce, 0x17, 0x65, 0xc5, 0x48, 0xd3, 0x9c, 0xb0, 0xd1, 0xc5, 0xd1, 0x7a, 0x4a, 0x55,
0xba, 0xfe, 0xbc, 0x10, 0x27, 0xdd, 0x26, 0x28, 0x9d, 0xa1, 0xf6, 0xf3, 0x02, 0x54, 0xb8, 0xc2,
0x84, 0x98, 0x44, 0xdd, 0x04, 0x30, 0xd9, 0x8a, 0xaf, 0x6b, 0xa6, 0x9a, 0x19, 0x5d, 0x15, 0xc4,
0x61, 0x2b, 0xdc, 0x41, 0x31, 0x28, 0x95, 0xc0, 0x22, 0x3f, 0x6c, 0x4c, 0xa9, 0x85, 0x49, 0x94,
0x5a, 0x15, 0x8c, 0x16, 0x77, 0x13, 0xe4, 0xd0, 0x10, 0x03, 0xf5, 0x9b, 0x50, 0xf6, 0x84, 0xd0,
0xd5, 0x22, 0x0b, 0xa7, 0xf3, 0xe3, 0x85, 0x93, 0x38, 0xaa, 0xbe, 0x28, 0x98, 0x95, 0x83, 0xb3,
0xa3, 0x90, 0xa0, 0xa6, 0x43, 0x6d, 0xb4, 0x3f, 0xaa, 0xeb, 0x50, 0x72, 0x22, 0x0d, 0xcd, 0x09,
0x5a, 0x25, 0xa6, 0x1b, 0xb6, 0xa3, 0xfd, 0x51, 0x81, 0xd5, 0x04, 0x11, 0x4a, 0x3d, 0x6b, 0xaf,
0x47, 0xf1, 0xd1, 0xd8, 0xbe, 0x97, 0x54, 0x8c, 0x00, 0x7e, 0xd7, 0xb0, 0x7b, 0x58, 0xa8, 0xf4,
0xd5, 0x5c, 0x61, 0x24, 0x51, 0xd0, 0x3f, 0x27, 0x18, 0xad, 0x8d, 0x82, 0x42, 0x09, 0xbe, 0xda,
0xbf, 0x8b, 0x30, 0x12, 0x41, 0xfd, 0x36, 0x94, 0xef, 0xf6, 0x0c, 0x87, 0x5a, 0xf4, 0x7e, 0xf5,
0x24, 0x13, 0xb2, 0x91, 0x69, 0x77, 0x49, 0xea, 0xb7, 0x05, 0x96, 0x7e, 0x6a, 0xd0, 0xaf, 0xcf,
0x07, 0x5f, 0x5c, 0x8a, 0x90, 0xa4, 0xfa, 0x02, 0x94, 0xf6, 0x5c, 0x97, 0x87, 0x47, 0x59, 0x9f,
0x1f, 0xf4, 0xeb, 0x33, 0xba, 0xeb, 0xda, 0x1c, 0x8c, 0x6d, 0xa9, 0x35, 0x28, 0x5a, 0x0e, 0xad,
0x4e, 0xaf, 0x2b, 0xe7, 0x8a, 0xfa, 0x9c, 0x6f, 0xd4, 0x6d, 0x87, 0x72, 0x00, 0x7f, 0x43, 0x6d,
0x43, 0xd9, 0x72, 0x68, 0xcb, 0xb6, 0xda, 0xb8, 0x5a, 0x66, 0x12, 0xbe, 0x94, 0x47, 0x8d, 0xdb,
0x02, 0x97, 0xcb, 0x19, 0x7c, 0x09, 0x39, 0x03, 0xc2, 0xea, 0x17, 0xe0, 0x24, 0xa1, 0x9e, 0xe5,
0xec, 0x57, 0x4f, 0x30, 0xb3, 0x2e, 0x0c, 0xfa, 0xf5, 0xd9, 0x16, 0x5b, 0xe1, 0xa0, 0x62, 0x5b,
0x75, 0x61, 0x96, 0xff, 0xe2, 0x02, 0xcd, 0x30, 0x81, 0x5e, 0xc9, 0x23, 0x50, 0x2b, 0x42, 0xe7,
0x19, 0x3b, 0xb6, 0xc0, 0x79, 0xc5, 0x39, 0xa8, 0x5f, 0x84, 0xe9, 0x43, 0xec, 0xf9, 0x21, 0x56,
0x05, 0x26, 0xda, 0xe2, 0xa0, 0x5f, 0x9f, 0xdb, 0xe5, 0x4b, 0x1c, 0x3e, 0x00, 0xd0, 0xb6, 0x60,
0x59, 0xe6, 0x75, 0xcd, 0xb2, 0x29, 0xf6, 0xd4, 0x0d, 0x28, 0x13, 0x51, 0x24, 0x84, 0xdb, 0x86,
0x01, 0x14, 0x14, 0x0f, 0x14, 0x42, 0x68, 0xbf, 0x52, 0xe0, 0x74, 0x52, 0x87, 0x84, 0x1a, 0x4e,
0x7b, 0x1c, 0xdf, 0xb7, 0x00, 0x42, 0x17, 0xf4, 0x33, 0x89, 0x1f, 0xdc, 0x2f, 0x4f, 0xe4, 0xf6,
0x51, 0xea, 0x0a, 0x97, 0x08, 0x8a, 0x11, 0xd7, 0x2e, 0x0d, 0x8b, 0x29, 0xac, 0xb9, 0x06, 0x25,
0xcb, 0xa1, 0xbc, 0x54, 0x17, 0xf5, 0xb2, 0x2f, 0xe2, 0xb6, 0x43, 0x09, 0x62, 0xab, 0xda, 0xeb,
0xb0, 0x92, 0x28, 0x46, 0x3c, 0x75, 0xe4, 0x54, 0xd3, 0x83, 0xa1, 0x1c, 0x11, 0xfe, 0x50, 0x31,
0xcc, 0x58, 0x42, 0x67, 0x41, 0xc3, 0x90, 0xd3, 0x69, 0x39, 0xb2, 0x7e, 0x4a, 0x08, 0x30, 0x13,
0xac, 0x10, 0x14, 0x51, 0xd6, 0x74, 0x38, 0x93, 0xe9, 0x5b, 0xea, 0xe7, 0x61, 0x9a, 0xfb, 0x11,
0x97, 0x60, 0x46, 0x9f, 0x1d, 0xf4, 0xeb, 0xd3, 0x1c, 0x82, 0xa0, 0x60, 0x4f, 0xfb, 0x5d, 0x01,
0x96, 0x77, 0x5c, 0xb3, 0xd5, 0x3e, 0xc0, 0x66, 0xcf, 0xb6, 0x9c, 0xfd, 0xab, 0xae, 0x43, 0xf1,
0x3d, 0xaa, 0xbe, 0x0f, 0x65, 0xbf, 0x27, 0x33, 0x0d, 0x6a, 0x88, 0x32, 0xfb, 0xe2, 0xa8, 0xcc,
0x40, 0x1a, 0x3e, 0xb4, 0xdf, 0x93, 0xbc, 0xb5, 0xf7, 0x3d, 0xdc, 0xa6, 0x6f, 0x62, 0x6a, 0x44,
0x26, 0x8c, 0xd6, 0x50, 0x48, 0x55, 0x7d, 0x17, 0x4a, 0xa4, 0x8b, 0xdb, 0x22, 0x39, 0x5e, 0x1a,
0xad, 0xa0, 0x34, 0x19, 0x5b, 0x5d, 0xdc, 0x8e, 0xbc, 0xd0, 0xff, 0x42, 0x8c, 0xa2, 0xfa, 0xbe,
0x1f, 0xce, 0x06, 0xed, 0xf9, 0xe5, 0xc5, 0xa7, 0x7d, 0x79, 0x02, 0xda, 0x0c, 0x5f, 0xaf, 0x08,
0xea, 0x27, 0xf9, 0x37, 0x12, 0x74, 0xb5, 0x3f, 0x29, 0x50, 0x4d, 0x43, 0x7b, 0xc3, 0x22, 0x54,
0xfd, 0xd6, 0x90, 0xea, 0x1a, 0xe3, 0xa9, 0xce, 0xc7, 0x66, 0x8a, 0x0b, 0x1d, 0x2f, 0x58, 0x89,
0xa9, 0xed, 0x1d, 0x38, 0x61, 0x51, 0xdc, 0x09, 0xa2, 0x6b, 0x33, 0xff, 0xd9, 0xf4, 0x79, 0x41,
0xfe, 0xc4, 0xb6, 0x4f, 0x08, 0x71, 0x7a, 0xda, 0x47, 0x19, 0x67, 0xf2, 0x15, 0xab, 0x5e, 0x86,
0x39, 0xee, 0xfa, 0xd8, 0xf4, 0xbb, 0x48, 0x11, 0x20, 0xcb, 0x82, 0xd0, 0x5c, 0x2b, 0xb6, 0x87,
0x24, 0x48, 0xf5, 0x55, 0xa8, 0x74, 0x5d, 0x8a, 0x1d, 0x6a, 0x19, 0x76, 0xd0, 0xd0, 0xfa, 0xfe,
0xc8, 0xda, 0xc2, 0x1d, 0x69, 0x07, 0x25, 0x20, 0xb5, 0x5f, 0x28, 0x70, 0x36, 0xdb, 0x3a, 0xea,
0xf7, 0xa1, 0x12, 0x9c, 0xf8, 0xaa, 0x6d, 0x58, 0x9d, 0x20, 0xd8, 0xbe, 0x3c, 0x5e, 0x3b, 0xc1,
0x70, 0x22, 0xda, 0xc2, 0xe4, 0xa7, 0xc5, 0x99, 0x2a, 0x12, 0x18, 0x41, 0x09, 0x56, 0xda, 0x2f,
0x0b, 0x30, 0x2f, 0x81, 0x1c, 0x43, 0xc8, 0xbc, 0x2d, 0x85, 0x4c, 0x33, 0xcf, 0x31, 0xb3, 0x62,
0xe5, 0x56, 0x22, 0x56, 0x2e, 0xe4, 0x21, 0x3a, 0x3a, 0x48, 0x06, 0x0a, 0xd4, 0x24, 0xf8, 0xab,
0xae, 0x43, 0x7a, 0x1d, 0xbf, 0x65, 0xbd, 0x8d, 0x3d, 0xec, 0x57, 0x94, 0x0d, 0x28, 0x1b, 0x5d,
0xeb, 0xba, 0xe7, 0xf6, 0xba, 0xc9, 0x9c, 0x7b, 0x65, 0x67, 0x9b, 0xad, 0xa3, 0x10, 0xc2, 0x87,
0x0e, 0x24, 0x62, 0xd2, 0xce, 0xc4, 0x3b, 0x41, 0xd1, 0x22, 0x86, 0x10, 0x61, 0xb5, 0x2a, 0x65,
0x56, 0x2b, 0x1d, 0x8a, 0x3d, 0xcb, 0x14, 0x35, 0xff, 0x45, 0x01, 0x50, 0xbc, 0xb9, 0xbd, 0xf5,
0xdf, 0x7e, 0xfd, 0x85, 0xac, 0x7b, 0x24, 0xbd, 0xdf, 0xc5, 0xa4, 0x71, 0x73, 0x7b, 0x0b, 0xf9,
0xc8, 0xda, 0xc7, 0x0a, 0x9c, 0x92, 0x0e, 0x79, 0x0c, 0x29, 0x60, 0x47, 0x4e, 0x01, 0x5f, 0xca,
0x61, 0xb2, 0x8c, 0xd8, 0x1f, 0x14, 0x60, 0x55, 0x82, 0x8b, 0xb5, 0xeb, 0x4f, 0xde, 0xad, 0x3f,
0x80, 0xf9, 0xf0, 0x3a, 0x7e, 0xcd, 0x73, 0x3b, 0xc2, 0xbf, 0xbf, 0x9a, 0xe3, 0x5c, 0xb1, 0x0b,
0x47, 0xe0, 0x5c, 0xbc, 0xe5, 0xbb, 0x1e, 0x27, 0x8c, 0x64, 0x3e, 0xaa, 0x0d, 0x15, 0x53, 0xba,
0x44, 0x55, 0x4b, 0xe3, 0x5c, 0xef, 0xe5, 0x8b, 0x57, 0x94, 0x31, 0xe4, 0x75, 0x94, 0xa0, 0xad,
0xfd, 0x4d, 0x81, 0xe7, 0x32, 0x84, 0x3e, 0x06, 0xa7, 0x79, 0x4f, 0x76, 0x9a, 0x97, 0x27, 0x52,
0x6e, 0x86, 0xfb, 0xfc, 0x4c, 0x81, 0xf5, 0xa3, 0xcc, 0x91, 0x33, 0xd6, 0xd7, 0xa1, 0x74, 0xc7,
0x72, 0x4c, 0xe6, 0x0a, 0xb1, 0xe8, 0xfd, 0xba, 0xe5, 0x98, 0x88, 0xed, 0x84, 0xf1, 0x5d, 0xcc,
0xbc, 0xc7, 0x3d, 0x50, 0xe0, 0xf9, 0x91, 0xc9, 0x7e, 0x8c, 0x8e, 0xf6, 0x2b, 0xb0, 0xd0, 0x73,
0x48, 0xcf, 0xa2, 0xc6, 0x9e, 0x8d, 0xe3, 0xf5, 0x6b, 0x69, 0xd0, 0xaf, 0x2f, 0xdc, 0x94, 0xb7,
0x50, 0x12, 0x56, 0xfb, 0x6b, 0x32, 0x3d, 0xb0, 0x6a, 0x7a, 0x1d, 0x4e, 0xc5, 0xaa, 0x09, 0x21,
0xb1, 0x1b, 0xfb, 0x19, 0x21, 0x43, 0x1c, 0x8b, 0x03, 0xa0, 0x61, 0x1c, 0x3f, 0x72, 0xba, 0x71,
0x55, 0x7f, 0x96, 0x91, 0x23, 0x6d, 0x20, 0x99, 0x8f, 0xf6, 0x9f, 0x02, 0x2c, 0xa5, 0xd4, 0x82,
0x89, 0x86, 0x10, 0xdf, 0x01, 0x88, 0x86, 0x1c, 0xe2, 0x04, 0x8d, 0x7c, 0xa3, 0x14, 0xbd, 0xc2,
0x6e, 0x0a, 0xd1, 0x6a, 0x8c, 0xa2, 0x4a, 0x60, 0xd6, 0xc3, 0x04, 0x7b, 0x87, 0xd8, 0xbc, 0xe6,
0x7a, 0x62, 0xe4, 0xf0, 0x5a, 0x0e, 0x15, 0x0d, 0xd5, 0x2d, 0x7d, 0x49, 0x1c, 0x69, 0x16, 0x45,
0x84, 0x51, 0x9c, 0x8b, 0xda, 0x82, 0x15, 0x13, 0xc7, 0x67, 0x37, 0x2c, 0x09, 0x60, 0x93, 0x95,
0xa3, 0x72, 0x34, 0xf5, 0xd9, 0x4a, 0x03, 0x42, 0xe9, 0xb8, 0xda, 0x5f, 0x14, 0x58, 0x91, 0x24,
0xfb, 0x06, 0xee, 0x74, 0x6d, 0x83, 0xe2, 0x63, 0x48, 0xd2, 0xb7, 0xa4, 0xde, 0xe3, 0x95, 0x1c,
0xea, 0x0b, 0x84, 0xcc, 0xea, 0x41, 0xb4, 0x3f, 0x2b, 0x70, 0x26, 0x15, 0xe3, 0x18, 0xd2, 0xe2,
0xbb, 0x72, 0x5a, 0xbc, 0x38, 0xc1, 0xb9, 0x32, 0x92, 0xe2, 0xa3, 0xac, 0x53, 0xb5, 0xf8, 0x1d,
0xe5, 0xd9, 0x6b, 0x16, 0xb5, 0x4f, 0x8a, 0x52, 0xcf, 0x4b, 0x8e, 0xa3, 0x39, 0x90, 0x33, 0x4a,
0x61, 0xac, 0x8c, 0x32, 0x94, 0x16, 0x8b, 0x39, 0xd3, 0x22, 0x21, 0x13, 0xa5, 0x45, 0xf5, 0x16,
0xcc, 0xcb, 0xb5, 0xa2, 0x34, 0xe6, 0xf0, 0x9e, 0x91, 0x6e, 0x49, 0xb5, 0x44, 0xa6, 0xa4, 0xbe,
0x01, 0xcb, 0x84, 0x7a, 0xbd, 0x36, 0xed, 0x79, 0xd8, 0x8c, 0x8d, 0x6b, 0x4f, 0xb0, 0x7c, 0x52,
0x1d, 0xf4, 0xeb, 0xcb, 0xad, 0x94, 0x7d, 0x94, 0x8a, 0x95, 0x6c, 0x5b, 0x09, 0x79, 0x9a, 0xdb,
0x56, 0x92, 0xd5, 0x77, 0x7c, 0x5c, 0x94, 0xda, 0xd6, 0xb8, 0xd5, 0x9e, 0x85, 0xb6, 0x75, 0x84,
0x97, 0x8d, 0x6c, 0x5b, 0x69, 0xca, 0xd4, 0x9e, 0x57, 0xb5, 0x23, 0xca, 0x66, 0x72, 0x38, 0x9f,
0x6b, 0x6c, 0xff, 0x0e, 0x4c, 0xdf, 0x66, 0x03, 0xc5, 0x31, 0xbb, 0xe4, 0xe0, 0xa0, 0x7c, 0x0a,
0xa9, 0x2f, 0x08, 0x56, 0xd3, 0xfc, 0x9b, 0xa0, 0x80, 0x5a, 0xb2, 0x2f, 0x8e, 0x6b, 0xe5, 0x69,
0xee, 0x8b, 0xe3, 0x72, 0x66, 0xf8, 0xe7, 0x1f, 0xe4, 0xbe, 0x38, 0xd5, 0xde, 0xc7, 0xdf, 0x17,
0xab, 0x4d, 0x98, 0xf1, 0xff, 0x92, 0xae, 0xd1, 0x0e, 0xae, 0xc7, 0xe1, 0xa4, 0xf1, 0x46, 0xb0,
0x81, 0x22, 0x18, 0xed, 0x13, 0x05, 0x2a, 0xb2, 0x39, 0x27, 0x6a, 0xf4, 0x1e, 0x28, 0xb0, 0xe4,
0x49, 0x64, 0xe2, 0xaf, 0x67, 0x17, 0xf2, 0xb8, 0x13, 0x7f, 0x3b, 0x7b, 0x4e, 0x30, 0x5c, 0x4a,
0xd9, 0x44, 0x69, 0xac, 0xb4, 0x1f, 0x2a, 0x90, 0x06, 0xac, 0x3a, 0x19, 0x4f, 0x9f, 0x9b, 0x79,
0xe6, 0xb6, 0xc2, 0xd3, 0xc7, 0x79, 0xf0, 0xfc, 0x7b, 0x4c, 0xa3, 0xfc, 0xf1, 0x77, 0x22, 0x8d,
0xae, 0x43, 0x89, 0x85, 0x45, 0xc2, 0x1b, 0xb6, 0x0c, 0x6a, 0x20, 0xb6, 0xa3, 0x7a, 0x50, 0x89,
0x0a, 0x80, 0xbf, 0xce, 0x0a, 0xc6, 0x91, 0xf3, 0xd6, 0xa8, 0x94, 0x24, 0xde, 0xb2, 0xd9, 0xe1,
0x5a, 0x12, 0x45, 0x94, 0xe0, 0xa0, 0x7d, 0xa8, 0x44, 0x6d, 0x02, 0x57, 0xef, 0xdd, 0x0c, 0xf5,
0xe6, 0x7a, 0x1b, 0x08, 0x7f, 0x8c, 0xa5, 0xe1, 0x9f, 0x14, 0x60, 0x21, 0xf1, 0x70, 0x98, 0xfa,
0xdc, 0xa9, 0x3c, 0xe9, 0xe7, 0xce, 0x1f, 0x28, 0xb0, 0xec, 0xc9, 0x82, 0xc4, 0xdd, 0x7e, 0x33,
0xd7, 0xdb, 0x27, 0xf7, 0xfb, 0x35, 0xc1, 0x7e, 0x39, 0x6d, 0x17, 0xa5, 0x72, 0xd3, 0x7e, 0xa4,
0x40, 0x2a, 0xb8, 0xea, 0x66, 0xd8, 0xe6, 0x62, 0x3e, 0xdb, 0xf0, 0xa7, 0xd9, 0x71, 0x2c, 0xf3,
0xfb, 0xd8, 0xe4, 0x94, 0x3f, 0x56, 0x3c, 0xf9, 0x5a, 0xbd, 0x01, 0x65, 0xc7, 0x35, 0x71, 0xac,
0x87, 0x0c, 0x93, 0xec, 0x0d, 0xb1, 0x8e, 0x42, 0x88, 0x44, 0x28, 0x16, 0xc7, 0x0a, 0xc5, 0x03,
0x98, 0xf7, 0xe2, 0x3e, 0x2f, 0x5a, 0xbf, 0x31, 0xbb, 0x1c, 0x6e, 0xd7, 0x15, 0xc1, 0x43, 0x8e,
0x1e, 0x24, 0x13, 0x96, 0x7a, 0x37, 0xa6, 0xbf, 0xa7, 0xb6, 0x77, 0xe3, 0xcf, 0x9c, 0xe9, 0xb5,
0xf1, 0xb7, 0x45, 0xa8, 0x66, 0x65, 0x19, 0xf5, 0x43, 0x05, 0x56, 0x78, 0x20, 0x25, 0xca, 0xe6,
0x64, 0xe1, 0x1a, 0xde, 0xb6, 0x77, 0xd3, 0x68, 0xa2, 0x74, 0x56, 0xb2, 0x10, 0xf1, 0x41, 0xc9,
0x64, 0xff, 0x22, 0x31, 0x2c, 0x84, 0x34, 0x7c, 0x49, 0x67, 0x25, 0x39, 0x6e, 0xe9, 0x48, 0xc7,
0xfd, 0x2e, 0x4c, 0x7b, 0x6c, 0x20, 0xe2, 0xdf, 0x0b, 0xc6, 0x78, 0x77, 0x4c, 0xff, 0x9f, 0x9b,
0xa8, 0x57, 0xe3, 0xdf, 0x04, 0x05, 0x54, 0xb5, 0x5f, 0x2b, 0x30, 0x94, 0xf3, 0x26, 0xaa, 0x5c,
0x06, 0x40, 0xf7, 0xff, 0x54, 0x68, 0xc8, 0x22, 0xa6, 0xc5, 0x18, 0x51, 0x5d, 0x7f, 0xf8, 0xb8,
0x36, 0xf5, 0xe8, 0x71, 0x6d, 0xea, 0xd3, 0xc7, 0xb5, 0xa9, 0x07, 0x83, 0x9a, 0xf2, 0x70, 0x50,
0x53, 0x1e, 0x0d, 0x6a, 0xca, 0xa7, 0x83, 0x9a, 0xf2, 0x8f, 0x41, 0x4d, 0xf9, 0xe8, 0x9f, 0xb5,
0xa9, 0xf7, 0xd6, 0x46, 0xfd, 0xb3, 0xdd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4f, 0xfc, 0x4e,
0xd3, 0x8b, 0x27, 0x00, 0x00,
}
func (m *AllocationResult) Marshal() (dAtA []byte, err error) {
@ -1493,14 +1492,6 @@ func (m *AllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
i--
if m.Shareable {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x18
if m.AvailableOnNodes != nil {
{
size, err := m.AvailableOnNodes.MarshalToSizedBuffer(dAtA[:i])
@ -2362,14 +2353,6 @@ func (m *ResourceClaimParameters) MarshalToSizedBuffer(dAtA []byte) (int, error)
dAtA[i] = 0x22
}
}
i--
if m.Shareable {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x18
if m.GeneratedFrom != nil {
{
size, err := m.GeneratedFrom.MarshalToSizedBuffer(dAtA[:i])
@ -3492,7 +3475,6 @@ func (m *AllocationResult) Size() (n int) {
l = m.AvailableOnNodes.Size()
n += 1 + l + sovGenerated(uint64(l))
}
n += 2
return n
}
@ -3808,7 +3790,6 @@ func (m *ResourceClaimParameters) Size() (n int) {
l = m.GeneratedFrom.Size()
n += 1 + l + sovGenerated(uint64(l))
}
n += 2
if len(m.DriverRequests) > 0 {
for _, e := range m.DriverRequests {
l = e.Size()
@ -4217,7 +4198,6 @@ func (this *AllocationResult) String() string {
s := strings.Join([]string{`&AllocationResult{`,
`ResourceHandles:` + repeatedStringForResourceHandles + `,`,
`AvailableOnNodes:` + strings.Replace(fmt.Sprintf("%v", this.AvailableOnNodes), "NodeSelector", "v1.NodeSelector", 1) + `,`,
`Shareable:` + fmt.Sprintf("%v", this.Shareable) + `,`,
`}`,
}, "")
return s
@ -4475,7 +4455,6 @@ func (this *ResourceClaimParameters) String() string {
s := strings.Join([]string{`&ResourceClaimParameters{`,
`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`,
`GeneratedFrom:` + strings.Replace(this.GeneratedFrom.String(), "ResourceClaimParametersReference", "ResourceClaimParametersReference", 1) + `,`,
`Shareable:` + fmt.Sprintf("%v", this.Shareable) + `,`,
`DriverRequests:` + repeatedStringForDriverRequests + `,`,
`}`,
}, "")
@ -4898,26 +4877,6 @@ func (m *AllocationResult) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Shareable", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Shareable = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@ -7330,26 +7289,6 @@ func (m *ResourceClaimParameters) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Shareable", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Shareable = bool(v != 0)
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DriverRequests", wireType)

View File

@ -57,11 +57,6 @@ message AllocationResult {
// everywhere.
// +optional
optional .k8s.io.api.core.v1.NodeSelector availableOnNodes = 2;
// Shareable determines whether the resource supports more
// than one consumer at a time.
// +optional
optional bool shareable = 3;
}
// AllocationResultModel must have one and only one field set.
@ -334,11 +329,6 @@ message ResourceClaimParameters {
// +optional
optional ResourceClaimParametersReference generatedFrom = 2;
// Shareable indicates whether the allocated claim is meant to be shareable
// by multiple consumers at the same time.
// +optional
optional bool shareable = 3;
// DriverRequests describes all resources that are needed for the
// allocated claim. A single claim may use resources coming from
// different drivers. For each driver, this array has at most one

View File

@ -145,11 +145,6 @@ type AllocationResult struct {
// everywhere.
// +optional
AvailableOnNodes *v1.NodeSelector `json:"availableOnNodes,omitempty" protobuf:"bytes,2,opt,name=availableOnNodes"`
// Shareable determines whether the resource supports more
// than one consumer at a time.
// +optional
Shareable bool `json:"shareable,omitempty" protobuf:"varint,3,opt,name=shareable"`
}
// AllocationResultResourceHandlesMaxSize represents the maximum number of
@ -573,11 +568,6 @@ type ResourceClaimParameters struct {
// +optional
GeneratedFrom *ResourceClaimParametersReference `json:"generatedFrom,omitempty" protobuf:"bytes,2,opt,name=generatedFrom"`
// Shareable indicates whether the allocated claim is meant to be shareable
// by multiple consumers at the same time.
// +optional
Shareable bool `json:"shareable,omitempty" protobuf:"bytes,3,opt,name=shareable"`
// DriverRequests describes all resources that are needed for the
// allocated claim. A single claim may use resources coming from
// different drivers. For each driver, this array has at most one

View File

@ -31,7 +31,6 @@ var map_AllocationResult = map[string]string{
"": "AllocationResult contains attributes of an allocated resource.",
"resourceHandles": "ResourceHandles contain the state associated with an allocation that should be maintained throughout the lifetime of a claim. Each ResourceHandle contains data that should be passed to a specific kubelet plugin once it lands on a node. This data is returned by the driver after a successful allocation and is opaque to Kubernetes. Driver documentation may explain to users how to interpret this data if needed.\n\nSetting this field is optional. It has a maximum size of 32 entries. If null (or empty), it is assumed this allocation will be processed by a single kubelet plugin with no ResourceHandle data attached. The name of the kubelet plugin invoked will match the DriverName set in the ResourceClaimStatus this AllocationResult is embedded in.",
"availableOnNodes": "This field will get set by the resource driver after it has allocated the resource to inform the scheduler where it can schedule Pods using the ResourceClaim.\n\nSetting this field is optional. If null, the resource is available everywhere.",
"shareable": "Shareable determines whether the resource supports more than one consumer at a time.",
}
func (AllocationResult) SwaggerDoc() map[string]string {
@ -144,7 +143,6 @@ var map_ResourceClaimParameters = map[string]string{
"": "ResourceClaimParameters defines resource requests for a ResourceClaim in an in-tree format understood by Kubernetes.",
"metadata": "Standard object metadata",
"generatedFrom": "If this object was created from some other resource, then this links back to that resource. This field is used to find the in-tree representation of the claim parameters when the parameter reference of the claim refers to some unknown type.",
"shareable": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
"driverRequests": "DriverRequests describes all resources that are needed for the allocated claim. A single claim may use resources coming from different drivers. For each driver, this array has at most one entry which then may have one or more per-driver requests.\n\nMay be empty, in which case the claim can always be allocated.",
}

View File

@ -123,8 +123,7 @@
]
}
]
},
"shareable": true
}
},
"reservedFor": [
{

View File

@ -81,7 +81,6 @@ status:
replicas: 1
status:
available: 1
shareable: true
deallocationRequested: true
driverName: driverNameValue
reservedFor:

View File

@ -48,7 +48,6 @@
"kind": "kindValue",
"name": "nameValue"
},
"shareable": true,
"driverRequests": [
{
"driverName": "driverNameValue",

View File

@ -55,4 +55,3 @@ metadata:
resourceVersion: resourceVersionValue
selfLink: selfLinkValue
uid: uidValue
shareable: true

View File

@ -12166,9 +12166,6 @@ var schemaYAML = typed.YAMLObject(`types:
elementType:
namedType: io.k8s.api.resource.v1alpha3.ResourceHandle
elementRelationship: atomic
- name: shareable
type:
scalar: boolean
- name: io.k8s.api.resource.v1alpha3.DriverAllocationResult
map:
fields:
@ -12387,9 +12384,6 @@ var schemaYAML = typed.YAMLObject(`types:
type:
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
default: {}
- name: shareable
type:
scalar: boolean
- name: io.k8s.api.resource.v1alpha3.ResourceClaimParametersReference
map:
fields:

View File

@ -27,7 +27,6 @@ import (
type AllocationResultApplyConfiguration struct {
ResourceHandles []ResourceHandleApplyConfiguration `json:"resourceHandles,omitempty"`
AvailableOnNodes *v1.NodeSelectorApplyConfiguration `json:"availableOnNodes,omitempty"`
Shareable *bool `json:"shareable,omitempty"`
}
// AllocationResultApplyConfiguration constructs a declarative configuration of the AllocationResult type for use with
@ -56,11 +55,3 @@ func (b *AllocationResultApplyConfiguration) WithAvailableOnNodes(value *v1.Node
b.AvailableOnNodes = value
return b
}
// WithShareable sets the Shareable field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Shareable field is set to the value of the last call.
func (b *AllocationResultApplyConfiguration) WithShareable(value bool) *AllocationResultApplyConfiguration {
b.Shareable = &value
return b
}

View File

@ -33,7 +33,6 @@ type ResourceClaimParametersApplyConfiguration struct {
v1.TypeMetaApplyConfiguration `json:",inline"`
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
GeneratedFrom *ResourceClaimParametersReferenceApplyConfiguration `json:"generatedFrom,omitempty"`
Shareable *bool `json:"shareable,omitempty"`
DriverRequests []DriverRequestsApplyConfiguration `json:"driverRequests,omitempty"`
}
@ -250,14 +249,6 @@ func (b *ResourceClaimParametersApplyConfiguration) WithGeneratedFrom(value *Res
return b
}
// WithShareable sets the Shareable field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Shareable field is set to the value of the last call.
func (b *ResourceClaimParametersApplyConfiguration) WithShareable(value bool) *ResourceClaimParametersApplyConfiguration {
b.Shareable = &value
return b
}
// WithDriverRequests adds the given value to the DriverRequests 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 DriverRequests field.

View File

@ -180,8 +180,8 @@ func IsReservedForPod(pod *v1.Pod, claim *resourceapi.ResourceClaim) bool {
// CanBeReserved checks whether the claim could be reserved for another object.
func CanBeReserved(claim *resourceapi.ResourceClaim) bool {
return claim.Status.Allocation.Shareable ||
len(claim.Status.ReservedFor) == 0
// Currently no restrictions on sharing...
return true
}
// IsAllocatedWithStructuredParameters checks whether the claim is allocated

View File

@ -55,9 +55,7 @@ const (
// networkResources can be passed to NewDriver directly.
func networkResources() app.Resources {
return app.Resources{
Shareable: true,
}
return app.Resources{}
}
// perNode returns a function which can be passed to NewDriver. The nodes
@ -121,47 +119,15 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
}
})
ginkgo.It("must not run a pod if a claim is not reserved for it", func(ctx context.Context) {
// Pretend that the resource is allocated and reserved for some other entity.
// Until the resourceclaim controller learns to remove reservations for
// arbitrary types we can simply fake somthing here.
ginkgo.It("must not run a pod if a claim is not ready", func(ctx context.Context) {
claim := b.externalClaim()
b.create(ctx, claim)
claim, err := f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).Get(ctx, claim.Name, metav1.GetOptions{})
framework.ExpectNoError(err, "get claim")
claim.Finalizers = append(claim.Finalizers, "e2e.test/delete-protection")
claim, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).Update(ctx, claim, metav1.UpdateOptions{})
framework.ExpectNoError(err, "add claim finalizer")
ginkgo.DeferCleanup(func(ctx context.Context) {
claim.Status.Allocation = nil
claim.Status.ReservedFor = nil
claim, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).UpdateStatus(ctx, claim, metav1.UpdateOptions{})
framework.ExpectNoError(err, "update claim")
claim.Finalizers = nil
_, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).Update(ctx, claim, metav1.UpdateOptions{})
framework.ExpectNoError(err, "remove claim finalizer")
})
claim.Status.Allocation = &resourceapi.AllocationResult{}
claim.Status.DriverName = driver.Name
claim.Status.ReservedFor = append(claim.Status.ReservedFor, resourceapi.ResourceClaimConsumerReference{
APIGroup: "example.com",
Resource: "some",
Name: "thing",
UID: "12345",
})
claim, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).UpdateStatus(ctx, claim, metav1.UpdateOptions{})
framework.ExpectNoError(err, "update claim")
pod := b.podExternal()
// This bypasses scheduling and therefore the pod gets
// to run on the node although it never gets added to
// the `ReservedFor` field of the claim.
// to run on the node although the claim is not ready.
// Because the parameters are missing, the claim
// also cannot be allocated later.
pod.Spec.NodeName = nodes.NodeNames[0]
b.create(ctx, pod)
@ -369,7 +335,6 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
numPods := 10
generateResources := func() app.Resources {
resources := perNode(maxAllocations, nodes)()
resources.Shareable = true
return resources
}
driver := NewDriver(f, nodes, generateResources) // All tests get their own driver instance.
@ -412,7 +377,7 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
b.testPod(ctx, f.ClientSet, pod, expectedEnv...)
err := f.ClientSet.CoreV1().Pods(pod.Namespace).Delete(ctx, pod.Name, metav1.DeleteOptions{})
framework.ExpectNoError(err, "delete pod")
framework.ExpectNoError(e2epod.WaitForPodNotFoundInNamespace(ctx, f.ClientSet, pod.Name, pod.Namespace, f.Timeouts.PodStartSlow))
framework.ExpectNoError(e2epod.WaitForPodNotFoundInNamespace(ctx, f.ClientSet, pod.Name, pod.Namespace, time.Duration(numPods)*f.Timeouts.PodStartSlow))
}()
}
wg.Wait()
@ -448,18 +413,13 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
f.It("supports sharing a claim sequentially", f.WithSlow(), func(ctx context.Context) {
objects, expectedEnv := b.flexibleParameters()
numPods := numPods / 2
// Change from "shareable" to "not shareable", if possible.
switch parameterMode {
case parameterModeConfigMap:
ginkgo.Skip("cannot change the driver's controller behavior on-the-fly")
case parameterModeTranslated, parameterModeStructured:
objects[len(objects)-1].(*resourceapi.ResourceClaimParameters).Shareable = false
}
objects = append(objects, b.externalClaim())
// This test used to test usage of the claim by one pod
// at a time. After removing the "not sharable"
// feature, we have to create more pods than supported
// at the same time to get the same effect.
numPods := resourceapi.ResourceClaimReservedForMaxSize + 10
pods := make([]*v1.Pod, numPods)
for i := 0; i < numPods; i++ {
pod := b.podExternal()
@ -1286,8 +1246,6 @@ func (b *builder) claimParameters(generatedFrom string, claimKV, requestKV []str
Name: b.parametersName(),
},
Shareable: true,
// Without any request, nothing gets allocated and vendor
// parameters are also not passed down because they get
// attached to the allocation result.

View File

@ -50,7 +50,6 @@ type Resources struct {
// available. Mutually exclusive with Nodes.
NodeLabels labels.Set
MaxAllocations int
Shareable bool
// AllocateWrapper, if set, gets called for each Allocate call.
AllocateWrapper AllocateWrapperType
@ -70,9 +69,7 @@ func (r Resources) AllNodes(nodeLister listersv1.NodeLister) []string {
}
func (r Resources) NewAllocation(node string, data []byte) *resourceapi.AllocationResult {
allocation := &resourceapi.AllocationResult{
Shareable: r.Shareable,
}
allocation := &resourceapi.AllocationResult{}
allocation.ResourceHandles = []resourceapi.ResourceHandle{
{
DriverName: r.DriverName,

View File

@ -2,7 +2,6 @@ apiVersion: resource.k8s.io/v1alpha3
kind: ResourceClaimParameters
metadata:
name: test-claim-parameters
shareable: true
driverRequests:
- driverName: test-driver.cdi.k8s.io
requests:

View File

@ -177,7 +177,6 @@ func (op *createResourceDriverOp) run(tCtx ktesting.TContext) {
DriverName: op.DriverName,
NodeLocal: true,
MaxAllocations: op.MaxClaimsPerNode,
Shareable: true,
}
nodes, err := tCtx.Client().CoreV1().Nodes().List(tCtx, metav1.ListOptions{})