Adding implementation of KEP-3335, StatefulSetSlice
This commit is contained in:
parent
2b7b5245ea
commit
7b3d77a41a
15
api/openapi-spec/swagger.json
generated
15
api/openapi-spec/swagger.json
generated
@ -1624,6 +1624,17 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"io.k8s.api.apps.v1.StatefulSetOrdinals": {
|
||||
"description": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
"properties": {
|
||||
"start": {
|
||||
"description": "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
"format": "int32",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy": {
|
||||
"description": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
|
||||
"properties": {
|
||||
@ -1646,6 +1657,10 @@
|
||||
"format": "int32",
|
||||
"type": "integer"
|
||||
},
|
||||
"ordinals": {
|
||||
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetOrdinals",
|
||||
"description": "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha."
|
||||
},
|
||||
"persistentVolumeClaimRetentionPolicy": {
|
||||
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy",
|
||||
"description": "persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha. +optional"
|
||||
|
@ -1044,6 +1044,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"io.k8s.api.apps.v1.StatefulSetOrdinals": {
|
||||
"description": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
"properties": {
|
||||
"start": {
|
||||
"default": 0,
|
||||
"description": "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
"format": "int32",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy": {
|
||||
"description": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
|
||||
"properties": {
|
||||
@ -1066,6 +1078,14 @@
|
||||
"format": "int32",
|
||||
"type": "integer"
|
||||
},
|
||||
"ordinals": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/io.k8s.api.apps.v1.StatefulSetOrdinals"
|
||||
}
|
||||
],
|
||||
"description": "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha."
|
||||
},
|
||||
"persistentVolumeClaimRetentionPolicy": {
|
||||
"allOf": [
|
||||
{
|
||||
|
@ -143,6 +143,17 @@ type StatefulSetPersistentVolumeClaimRetentionPolicy struct {
|
||||
WhenScaled PersistentVolumeClaimRetentionPolicyType
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
type StatefulSetOrdinals struct {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
Start int32
|
||||
}
|
||||
|
||||
// A StatefulSetSpec is the specification of a StatefulSet.
|
||||
type StatefulSetSpec struct {
|
||||
// Replicas is the desired number of replicas of the given Template.
|
||||
@ -215,6 +226,14 @@ type StatefulSetSpec struct {
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
Ordinals *StatefulSetOrdinals
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
2
pkg/apis/apps/v1/zz_generated.conversion.go
generated
2
pkg/apis/apps/v1/zz_generated.conversion.go
generated
@ -1206,6 +1206,7 @@ func autoConvert_v1_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1.StatefulSetSp
|
||||
out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit))
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
out.PersistentVolumeClaimRetentionPolicy = (*apps.StatefulSetPersistentVolumeClaimRetentionPolicy)(unsafe.Pointer(in.PersistentVolumeClaimRetentionPolicy))
|
||||
// WARNING: in.Ordinals requires manual conversion: does not exist in peer-type
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1226,6 +1227,7 @@ func autoConvert_apps_StatefulSetSpec_To_v1_StatefulSetSpec(in *apps.StatefulSet
|
||||
out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit))
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
out.PersistentVolumeClaimRetentionPolicy = (*v1.StatefulSetPersistentVolumeClaimRetentionPolicy)(unsafe.Pointer(in.PersistentVolumeClaimRetentionPolicy))
|
||||
// WARNING: in.ReplicaStartOrdinal requires manual conversion: does not exist in peer-type
|
||||
return nil
|
||||
}
|
||||
|
||||
|
2
pkg/apis/apps/v1beta1/zz_generated.conversion.go
generated
2
pkg/apis/apps/v1beta1/zz_generated.conversion.go
generated
@ -870,6 +870,7 @@ func autoConvert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta1.Sta
|
||||
out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit))
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
out.PersistentVolumeClaimRetentionPolicy = (*apps.StatefulSetPersistentVolumeClaimRetentionPolicy)(unsafe.Pointer(in.PersistentVolumeClaimRetentionPolicy))
|
||||
// WARNING: in.Ordinals requires manual conversion: does not exist in peer-type
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -890,6 +891,7 @@ func autoConvert_apps_StatefulSetSpec_To_v1beta1_StatefulSetSpec(in *apps.Statef
|
||||
out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit))
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
out.PersistentVolumeClaimRetentionPolicy = (*v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy)(unsafe.Pointer(in.PersistentVolumeClaimRetentionPolicy))
|
||||
// WARNING: in.ReplicaStartOrdinal requires manual conversion: does not exist in peer-type
|
||||
return nil
|
||||
}
|
||||
|
||||
|
2
pkg/apis/apps/v1beta2/zz_generated.conversion.go
generated
2
pkg/apis/apps/v1beta2/zz_generated.conversion.go
generated
@ -1302,6 +1302,7 @@ func autoConvert_v1beta2_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta2.Sta
|
||||
out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit))
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
out.PersistentVolumeClaimRetentionPolicy = (*apps.StatefulSetPersistentVolumeClaimRetentionPolicy)(unsafe.Pointer(in.PersistentVolumeClaimRetentionPolicy))
|
||||
// WARNING: in.Ordinals requires manual conversion: does not exist in peer-type
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1322,6 +1323,7 @@ func autoConvert_apps_StatefulSetSpec_To_v1beta2_StatefulSetSpec(in *apps.Statef
|
||||
out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit))
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
out.PersistentVolumeClaimRetentionPolicy = (*v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy)(unsafe.Pointer(in.PersistentVolumeClaimRetentionPolicy))
|
||||
// WARNING: in.ReplicaStartOrdinal requires manual conversion: does not exist in peer-type
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -28,9 +28,11 @@ import (
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/apimachinery/pkg/util/validation"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
"k8s.io/kubernetes/pkg/apis/apps"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
apivalidation "k8s.io/kubernetes/pkg/apis/core/validation"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
)
|
||||
|
||||
// ValidateStatefulSetName can be used to check whether the given StatefulSet name is valid.
|
||||
@ -128,6 +130,12 @@ func ValidateStatefulSetSpec(spec *apps.StatefulSetSpec, fldPath *field.Path, op
|
||||
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(spec.Replicas), fldPath.Child("replicas"))...)
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(spec.MinReadySeconds), fldPath.Child("minReadySeconds"))...)
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetSlice) {
|
||||
if spec.Ordinals != nil {
|
||||
replicaStartOrdinal := spec.Ordinals.Start
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(replicaStartOrdinal), fldPath.Child("ordinals.start"))...)
|
||||
}
|
||||
}
|
||||
|
||||
if spec.Selector == nil {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("selector"), ""))
|
||||
@ -177,11 +185,18 @@ func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet, op
|
||||
newStatefulSetClone.Spec.Template = oldStatefulSet.Spec.Template // +k8s:verify-mutation:reason=clone
|
||||
newStatefulSetClone.Spec.UpdateStrategy = oldStatefulSet.Spec.UpdateStrategy // +k8s:verify-mutation:reason=clone
|
||||
newStatefulSetClone.Spec.MinReadySeconds = oldStatefulSet.Spec.MinReadySeconds // +k8s:verify-mutation:reason=clone
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetSlice) {
|
||||
newStatefulSetClone.Spec.Ordinals = oldStatefulSet.Spec.Ordinals // +k8s:verify-mutation:reason=clone
|
||||
}
|
||||
|
||||
newStatefulSetClone.Spec.PersistentVolumeClaimRetentionPolicy = oldStatefulSet.Spec.PersistentVolumeClaimRetentionPolicy // +k8s:verify-mutation:reason=clone
|
||||
if !apiequality.Semantic.DeepEqual(newStatefulSetClone.Spec, oldStatefulSet.Spec) {
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetSlice) {
|
||||
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec"), "updates to statefulset spec for fields other than 'replicas', 'ordinals', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden"))
|
||||
} else {
|
||||
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec"), "updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden"))
|
||||
}
|
||||
}
|
||||
|
||||
return allErrs
|
||||
}
|
||||
|
@ -86,6 +86,8 @@ func TestValidateStatefulSet(t *testing.T) {
|
||||
|
||||
const enableStatefulSetAutoDeletePVC = "[enable StatefulSetAutoDeletePVC]"
|
||||
|
||||
const enableStatefulSetSlice = "[enable StatefulSetSlice]"
|
||||
|
||||
type testCase struct {
|
||||
name string
|
||||
set apps.StatefulSet
|
||||
@ -193,6 +195,20 @@ func TestValidateStatefulSet(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ordinals.start positive value " + enableStatefulSetSlice,
|
||||
set: apps.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault},
|
||||
Spec: apps.StatefulSetSpec{
|
||||
PodManagementPolicy: apps.ParallelPodManagement,
|
||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
||||
Template: validPodTemplate.Template,
|
||||
Replicas: 3,
|
||||
Ordinals: &apps.StatefulSetOrdinals{Start: 2},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
errorCases := []testCase{
|
||||
@ -635,6 +651,23 @@ func TestValidateStatefulSet(t *testing.T) {
|
||||
field.Invalid(field.NewPath("spec", "updateStrategy", "rollingUpdate", "maxUnavailable"), nil, ""),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "invalid ordinals.start " + enableStatefulSetSlice,
|
||||
set: apps.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault},
|
||||
Spec: apps.StatefulSetSpec{
|
||||
PodManagementPolicy: apps.ParallelPodManagement,
|
||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
||||
Template: validPodTemplate.Template,
|
||||
Replicas: 3,
|
||||
Ordinals: &apps.StatefulSetOrdinals{Start: -2},
|
||||
},
|
||||
},
|
||||
errs: field.ErrorList{
|
||||
field.Invalid(field.NewPath("spec", "ordinals.start"), nil, ""),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
cmpOpts := []cmp.Option{cmpopts.IgnoreFields(field.Error{}, "BadValue", "Detail"), cmpopts.SortSlices(func(a, b *field.Error) bool { return a.Error() < b.Error() })}
|
||||
@ -651,6 +684,9 @@ func TestValidateStatefulSet(t *testing.T) {
|
||||
if strings.Contains(name, enableStatefulSetAutoDeletePVC) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StatefulSetAutoDeletePVC, true)()
|
||||
}
|
||||
if strings.Contains(name, enableStatefulSetSlice) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StatefulSetSlice, true)()
|
||||
}
|
||||
|
||||
errs := ValidateStatefulSet(&testCase.set, pod.GetValidationOptionsFromPodTemplate(&testCase.set.Spec.Template, nil))
|
||||
wantErrs := testCase.errs
|
||||
|
@ -303,52 +303,53 @@ func (ssc *defaultStatefulSetControl) updateStatefulSet(
|
||||
*status.CollisionCount = collisionCount
|
||||
|
||||
replicaCount := int(*set.Spec.Replicas)
|
||||
// slice that will contain all Pods such that 0 <= getOrdinal(pod) < set.Spec.Replicas
|
||||
// slice that will contain all Pods such that getStartOrdinal(set) <= getOrdinal(pod) <= getEndOrdinal(set)
|
||||
replicas := make([]*v1.Pod, replicaCount)
|
||||
// slice that will contain all Pods such that set.Spec.Replicas <= getOrdinal(pod)
|
||||
// slice that will contain all Pods such that getOrdinal(pod) < getStartOrdinal(set) OR getOrdinal(pod) > getEndOrdinal(set)
|
||||
condemned := make([]*v1.Pod, 0, len(pods))
|
||||
unhealthy := 0
|
||||
var firstUnhealthyPod *v1.Pod
|
||||
|
||||
// First we partition pods into two lists valid replicas and condemned Pods
|
||||
for i := range pods {
|
||||
for _, pod := range pods {
|
||||
status.Replicas++
|
||||
|
||||
// count the number of running and ready replicas
|
||||
if isRunningAndReady(pods[i]) {
|
||||
if isRunningAndReady(pod) {
|
||||
status.ReadyReplicas++
|
||||
// count the number of running and available replicas
|
||||
if isRunningAndAvailable(pods[i], set.Spec.MinReadySeconds) {
|
||||
if isRunningAndAvailable(pod, set.Spec.MinReadySeconds) {
|
||||
status.AvailableReplicas++
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// count the number of current and update replicas
|
||||
if isCreated(pods[i]) && !isTerminating(pods[i]) {
|
||||
if getPodRevision(pods[i]) == currentRevision.Name {
|
||||
if isCreated(pod) && !isTerminating(pod) {
|
||||
if getPodRevision(pod) == currentRevision.Name {
|
||||
status.CurrentReplicas++
|
||||
}
|
||||
if getPodRevision(pods[i]) == updateRevision.Name {
|
||||
if getPodRevision(pod) == updateRevision.Name {
|
||||
status.UpdatedReplicas++
|
||||
}
|
||||
}
|
||||
|
||||
if ord := getOrdinal(pods[i]); 0 <= ord && ord < replicaCount {
|
||||
if podInOrdinalRange(pod, set) {
|
||||
// if the ordinal of the pod is within the range of the current number of replicas,
|
||||
// insert it at the indirection of its ordinal
|
||||
replicas[ord] = pods[i]
|
||||
} else if ord >= replicaCount {
|
||||
// if the ordinal is greater than the number of replicas add it to the condemned list
|
||||
condemned = append(condemned, pods[i])
|
||||
replicas[getOrdinal(pod)-getStartOrdinal(set)] = pod
|
||||
} else if getOrdinal(pod) >= 0 {
|
||||
// if the ordinal is valid, but not within the range add it to the condemned list
|
||||
condemned = append(condemned, pod)
|
||||
}
|
||||
// If the ordinal could not be parsed (ord < 0), ignore the Pod.
|
||||
}
|
||||
|
||||
// for any empty indices in the sequence [0,set.Spec.Replicas) create a new Pod at the correct revision
|
||||
for ord := 0; ord < replicaCount; ord++ {
|
||||
if replicas[ord] == nil {
|
||||
replicas[ord] = newVersionedStatefulSetPod(
|
||||
for ord := getStartOrdinal(set); ord <= getEndOrdinal(set); ord++ {
|
||||
replicaIdx := ord - getStartOrdinal(set)
|
||||
if replicas[replicaIdx] == nil {
|
||||
replicas[replicaIdx] = newVersionedStatefulSetPod(
|
||||
currentSet,
|
||||
updateSet,
|
||||
currentRevision.Name,
|
||||
@ -409,12 +410,13 @@ func (ssc *defaultStatefulSetControl) updateStatefulSet(
|
||||
status.UpdatedReplicas--
|
||||
}
|
||||
status.Replicas--
|
||||
replicaOrd := i + getStartOrdinal(set)
|
||||
replicas[i] = newVersionedStatefulSetPod(
|
||||
currentSet,
|
||||
updateSet,
|
||||
currentRevision.Name,
|
||||
updateRevision.Name,
|
||||
i)
|
||||
replicaOrd)
|
||||
}
|
||||
// If we find a Pod that has not been created we create the Pod
|
||||
if !isCreated(replicas[i]) {
|
||||
@ -501,7 +503,7 @@ func (ssc *defaultStatefulSetControl) updateStatefulSet(
|
||||
|
||||
// At this point, all of the current Replicas are Running, Ready and Available, we can consider termination.
|
||||
// We will wait for all predecessors to be Running and Ready prior to attempting a deletion.
|
||||
// We will terminate Pods in a monotonically decreasing order over [len(pods),set.Spec.Replicas).
|
||||
// We will terminate Pods in a monotonically decreasing order.
|
||||
// Note that we do not resurrect Pods in this interval. Also note that scaling will take precedence over
|
||||
// updates.
|
||||
for target := len(condemned) - 1; target >= 0; target-- {
|
||||
@ -614,7 +616,7 @@ func updateStatefulSetAfterInvariantEstablished(
|
||||
}
|
||||
}
|
||||
|
||||
// Collect all targets in the range between the 0 and Spec.Replicas. Count any targets in that range
|
||||
// Collect all targets in the range between getStartOrdinal(set) and getEndOrdinal(set). Count any targets in that range
|
||||
// that are unhealthy i.e. terminated or not running and ready as unavailable). Select the
|
||||
// (MaxUnavailable - Unavailable) Pods, in order with respect to their ordinal for termination. Delete
|
||||
// those pods and count the successful deletions. Update the status with the correct number of deletions.
|
||||
|
@ -559,6 +559,74 @@ func PodRecreateDeleteFailure(t *testing.T, set *apps.StatefulSet, invariants in
|
||||
}
|
||||
}
|
||||
|
||||
func emptyInvaraints(set *apps.StatefulSet, om *fakeObjectManager) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func TestStatefulSetControlWithStartOrdinal(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StatefulSetSlice, true)()
|
||||
|
||||
simpleSetFn := func() *apps.StatefulSet {
|
||||
statefulSet := newStatefulSet(3)
|
||||
statefulSet.Spec.Ordinals = &apps.StatefulSetOrdinals{Start: int32(2)}
|
||||
return statefulSet
|
||||
}
|
||||
|
||||
testCases := []struct {
|
||||
fn func(*testing.T, *apps.StatefulSet, invariantFunc)
|
||||
obj func() *apps.StatefulSet
|
||||
}{
|
||||
{CreatesPodsWithStartOrdinal, simpleSetFn},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
testObj := testCase.obj
|
||||
testFn := testCase.fn
|
||||
|
||||
set := testObj()
|
||||
testFn(t, set, emptyInvaraints)
|
||||
}
|
||||
}
|
||||
|
||||
func CreatesPodsWithStartOrdinal(t *testing.T, set *apps.StatefulSet, invariants invariantFunc) {
|
||||
client := fake.NewSimpleClientset(set)
|
||||
om, _, ssc := setupController(client)
|
||||
|
||||
if err := scaleUpStatefulSetControl(set, ssc, om, invariants); err != nil {
|
||||
t.Errorf("Failed to turn up StatefulSet : %s", err)
|
||||
}
|
||||
var err error
|
||||
set, err = om.setsLister.StatefulSets(set.Namespace).Get(set.Name)
|
||||
if err != nil {
|
||||
t.Fatalf("Error getting updated StatefulSet: %v", err)
|
||||
}
|
||||
if set.Status.Replicas != 3 {
|
||||
t.Error("Failed to scale statefulset to 3 replicas")
|
||||
}
|
||||
if set.Status.ReadyReplicas != 3 {
|
||||
t.Error("Failed to set ReadyReplicas correctly")
|
||||
}
|
||||
if set.Status.UpdatedReplicas != 3 {
|
||||
t.Error("Failed to set UpdatedReplicas correctly")
|
||||
}
|
||||
selector, err := metav1.LabelSelectorAsSelector(set.Spec.Selector)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
pods, err := om.podsLister.Pods(set.Namespace).List(selector)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
for i, pod := range pods {
|
||||
expectedOrdinal := 2 + i
|
||||
actualPodOrdinal := getOrdinal(pod)
|
||||
if actualPodOrdinal != expectedOrdinal {
|
||||
t.Errorf("Expected pod ordinal %d. Got %d", expectedOrdinal, actualPodOrdinal)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestStatefulSetControlScaleDownDeleteError(t *testing.T) {
|
||||
runTestOverPVCRetentionPolicies(
|
||||
t, "", func(t *testing.T, policy *apps.StatefulSetPersistentVolumeClaimRetentionPolicy) {
|
||||
@ -2299,6 +2367,16 @@ func (om *fakeObjectManager) SetDeleteStatefulPodError(err error, after int) {
|
||||
om.deletePodTracker.after = after
|
||||
}
|
||||
|
||||
func findPodByOrdinal(pods []*v1.Pod, ordinal int) *v1.Pod {
|
||||
for _, pod := range pods {
|
||||
if getOrdinal(pod) == ordinal {
|
||||
return pod.DeepCopy()
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (om *fakeObjectManager) setPodPending(set *apps.StatefulSet, ordinal int) ([]*v1.Pod, error) {
|
||||
selector, err := metav1.LabelSelectorAsSelector(set.Spec.Selector)
|
||||
if err != nil {
|
||||
@ -2308,11 +2386,10 @@ func (om *fakeObjectManager) setPodPending(set *apps.StatefulSet, ordinal int) (
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if 0 > ordinal || ordinal >= len(pods) {
|
||||
return nil, fmt.Errorf("ordinal %d out of range [0,%d)", ordinal, len(pods))
|
||||
pod := findPodByOrdinal(pods, ordinal)
|
||||
if pod == nil {
|
||||
return nil, fmt.Errorf("setPodPending: pod ordinal %d not found", ordinal)
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
pod := pods[ordinal].DeepCopy()
|
||||
pod.Status.Phase = v1.PodPending
|
||||
fakeResourceVersion(pod)
|
||||
om.podsIndexer.Update(pod)
|
||||
@ -2328,11 +2405,10 @@ func (om *fakeObjectManager) setPodRunning(set *apps.StatefulSet, ordinal int) (
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if 0 > ordinal || ordinal >= len(pods) {
|
||||
return nil, fmt.Errorf("ordinal %d out of range [0,%d)", ordinal, len(pods))
|
||||
pod := findPodByOrdinal(pods, ordinal)
|
||||
if pod == nil {
|
||||
return nil, fmt.Errorf("setPodRunning: pod ordinal %d not found", ordinal)
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
pod := pods[ordinal].DeepCopy()
|
||||
pod.Status.Phase = v1.PodRunning
|
||||
fakeResourceVersion(pod)
|
||||
om.podsIndexer.Update(pod)
|
||||
@ -2348,11 +2424,10 @@ func (om *fakeObjectManager) setPodReady(set *apps.StatefulSet, ordinal int) ([]
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if 0 > ordinal || ordinal >= len(pods) {
|
||||
return nil, fmt.Errorf("ordinal %d out of range [0,%d)", ordinal, len(pods))
|
||||
pod := findPodByOrdinal(pods, ordinal)
|
||||
if pod == nil {
|
||||
return nil, fmt.Errorf("setPodReady: pod ordinal %d not found", ordinal)
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
pod := pods[ordinal].DeepCopy()
|
||||
condition := v1.PodCondition{Type: v1.PodReady, Status: v1.ConditionTrue}
|
||||
podutil.UpdatePodCondition(&pod.Status, &condition)
|
||||
fakeResourceVersion(pod)
|
||||
@ -2369,11 +2444,10 @@ func (om *fakeObjectManager) setPodAvailable(set *apps.StatefulSet, ordinal int,
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if 0 > ordinal || ordinal >= len(pods) {
|
||||
return nil, fmt.Errorf("ordinal %d out of range [0,%d)", ordinal, len(pods))
|
||||
pod := findPodByOrdinal(pods, ordinal)
|
||||
if pod == nil {
|
||||
return nil, fmt.Errorf("setPodAvailable: pod ordinal %d not found", ordinal)
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
pod := pods[ordinal].DeepCopy()
|
||||
condition := v1.PodCondition{Type: v1.PodReady, Status: v1.ConditionTrue, LastTransitionTime: metav1.Time{Time: lastTransitionTime}}
|
||||
_, existingCondition := podutil.GetPodCondition(&pod.Status, condition.Type)
|
||||
if existingCondition != nil {
|
||||
@ -2467,28 +2541,28 @@ func assertMonotonicInvariants(set *apps.StatefulSet, om *fakeObjectManager) err
|
||||
return err
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
for ord := 0; ord < len(pods); ord++ {
|
||||
if ord > 0 && isRunningAndReady(pods[ord]) && !isRunningAndReady(pods[ord-1]) {
|
||||
return fmt.Errorf("successor %s is Running and Ready while %s is not", pods[ord].Name, pods[ord-1].Name)
|
||||
for idx := 0; idx < len(pods); idx++ {
|
||||
if idx > 0 && isRunningAndReady(pods[idx]) && !isRunningAndReady(pods[idx-1]) {
|
||||
return fmt.Errorf("successor %s is Running and Ready while %s is not", pods[idx].Name, pods[idx-1].Name)
|
||||
}
|
||||
|
||||
if getOrdinal(pods[ord]) != ord {
|
||||
return fmt.Errorf("pods %s deployed in the wrong order %d", pods[ord].Name, ord)
|
||||
if ord := idx + getStartOrdinal(set); getOrdinal(pods[idx]) != ord {
|
||||
return fmt.Errorf("pods %s deployed in the wrong order %d", pods[idx].Name, ord)
|
||||
}
|
||||
|
||||
if !storageMatches(set, pods[ord]) {
|
||||
return fmt.Errorf("pods %s does not match the storage specification of StatefulSet %s ", pods[ord].Name, set.Name)
|
||||
if !storageMatches(set, pods[idx]) {
|
||||
return fmt.Errorf("pods %s does not match the storage specification of StatefulSet %s ", pods[idx].Name, set.Name)
|
||||
}
|
||||
|
||||
for _, claim := range getPersistentVolumeClaims(set, pods[ord]) {
|
||||
for _, claim := range getPersistentVolumeClaims(set, pods[idx]) {
|
||||
claim, _ := om.claimsLister.PersistentVolumeClaims(set.Namespace).Get(claim.Name)
|
||||
if err := checkClaimInvarients(set, pods[ord], claim, ord); err != nil {
|
||||
if err := checkClaimInvarients(set, pods[idx], claim); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if !identityMatches(set, pods[ord]) {
|
||||
return fmt.Errorf("pods %s does not match the identity specification of StatefulSet %s ", pods[ord].Name, set.Name)
|
||||
if !identityMatches(set, pods[idx]) {
|
||||
return fmt.Errorf("pods %s does not match the identity specification of StatefulSet %s ", pods[idx].Name, set.Name)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@ -2504,24 +2578,24 @@ func assertBurstInvariants(set *apps.StatefulSet, om *fakeObjectManager) error {
|
||||
return err
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
for ord := 0; ord < len(pods); ord++ {
|
||||
if !storageMatches(set, pods[ord]) {
|
||||
return fmt.Errorf("pods %s does not match the storage specification of StatefulSet %s ", pods[ord].Name, set.Name)
|
||||
for _, pod := range pods {
|
||||
if !storageMatches(set, pod) {
|
||||
return fmt.Errorf("pods %s does not match the storage specification of StatefulSet %s ", pod.Name, set.Name)
|
||||
}
|
||||
|
||||
for _, claim := range getPersistentVolumeClaims(set, pods[ord]) {
|
||||
for _, claim := range getPersistentVolumeClaims(set, pod) {
|
||||
claim, err := om.claimsLister.PersistentVolumeClaims(set.Namespace).Get(claim.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := checkClaimInvarients(set, pods[ord], claim, ord); err != nil {
|
||||
if err := checkClaimInvarients(set, pod, claim); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if !identityMatches(set, pods[ord]) {
|
||||
if !identityMatches(set, pod) {
|
||||
return fmt.Errorf("pods %s does not match the identity specification of StatefulSet %s ",
|
||||
pods[ord].Name,
|
||||
pod.Name,
|
||||
set.Name)
|
||||
}
|
||||
}
|
||||
@ -2538,24 +2612,24 @@ func assertUpdateInvariants(set *apps.StatefulSet, om *fakeObjectManager) error
|
||||
return err
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
for ord := 0; ord < len(pods); ord++ {
|
||||
for _, pod := range pods {
|
||||
|
||||
if !storageMatches(set, pods[ord]) {
|
||||
return fmt.Errorf("pod %s does not match the storage specification of StatefulSet %s ", pods[ord].Name, set.Name)
|
||||
if !storageMatches(set, pod) {
|
||||
return fmt.Errorf("pod %s does not match the storage specification of StatefulSet %s ", pod.Name, set.Name)
|
||||
}
|
||||
|
||||
for _, claim := range getPersistentVolumeClaims(set, pods[ord]) {
|
||||
for _, claim := range getPersistentVolumeClaims(set, pod) {
|
||||
claim, err := om.claimsLister.PersistentVolumeClaims(set.Namespace).Get(claim.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := checkClaimInvarients(set, pods[ord], claim, ord); err != nil {
|
||||
if err := checkClaimInvarients(set, pod, claim); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if !identityMatches(set, pods[ord]) {
|
||||
return fmt.Errorf("pod %s does not match the identity specification of StatefulSet %s ", pods[ord].Name, set.Name)
|
||||
if !identityMatches(set, pod) {
|
||||
return fmt.Errorf("pod %s does not match the identity specification of StatefulSet %s ", pod.Name, set.Name)
|
||||
}
|
||||
}
|
||||
if set.Spec.UpdateStrategy.Type == apps.OnDeleteStatefulSetStrategyType {
|
||||
@ -2576,7 +2650,7 @@ func assertUpdateInvariants(set *apps.StatefulSet, om *fakeObjectManager) error
|
||||
return nil
|
||||
}
|
||||
|
||||
func checkClaimInvarients(set *apps.StatefulSet, pod *v1.Pod, claim *v1.PersistentVolumeClaim, ordinal int) error {
|
||||
func checkClaimInvarients(set *apps.StatefulSet, pod *v1.Pod, claim *v1.PersistentVolumeClaim) error {
|
||||
policy := apps.StatefulSetPersistentVolumeClaimRetentionPolicy{
|
||||
WhenScaled: apps.RetainPersistentVolumeClaimRetentionPolicyType,
|
||||
WhenDeleted: apps.RetainPersistentVolumeClaimRetentionPolicyType,
|
||||
@ -2618,14 +2692,14 @@ func checkClaimInvarients(set *apps.StatefulSet, pod *v1.Pod, claim *v1.Persiste
|
||||
if hasOwnerRef(claim, set) {
|
||||
return fmt.Errorf("claim %s has unexpected owner ref on %s for scaledown only", claim.Name, set.Name)
|
||||
}
|
||||
if ordinal >= int(*set.Spec.Replicas) && !hasOwnerRef(claim, pod) {
|
||||
if !podInOrdinalRange(pod, set) && !hasOwnerRef(claim, pod) {
|
||||
return fmt.Errorf("claim %s does not have owner ref on condemned pod %s for scaledown delete", claim.Name, pod.Name)
|
||||
}
|
||||
if ordinal < int(*set.Spec.Replicas) && hasOwnerRef(claim, pod) {
|
||||
return fmt.Errorf("claim %s has unexpected owner ref on condemned pod %s for scaledown delete", claim.Name, pod.Name)
|
||||
if podInOrdinalRange(pod, set) && hasOwnerRef(claim, pod) {
|
||||
return fmt.Errorf("claim %s has unexpected owner ref on condemned pod %s for scaledown delete. ordinal: %d, [%d,%d]", claim.Name, pod.Name, getOrdinal(pod), getStartOrdinal(set), getEndOrdinal(set))
|
||||
}
|
||||
case policy.WhenScaled == delete && policy.WhenDeleted == delete:
|
||||
if ordinal >= int(*set.Spec.Replicas) {
|
||||
if !podInOrdinalRange(pod, set) {
|
||||
if !hasOwnerRef(claim, pod) || hasOwnerRef(claim, set) {
|
||||
return fmt.Errorf("condemned claim %s has bad owner refs: %v", claim.Name, claim.GetOwnerReferences())
|
||||
}
|
||||
@ -2666,9 +2740,9 @@ func scaleUpStatefulSetControl(set *apps.StatefulSet,
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
|
||||
// ensure all pods are valid (have a phase)
|
||||
for ord, pod := range pods {
|
||||
for _, pod := range pods {
|
||||
if pod.Status.Phase == "" {
|
||||
if pods, err = om.setPodPending(set, ord); err != nil {
|
||||
if pods, err = om.setPodPending(set, getOrdinal(pod)); err != nil {
|
||||
return err
|
||||
}
|
||||
break
|
||||
@ -2677,15 +2751,15 @@ func scaleUpStatefulSetControl(set *apps.StatefulSet,
|
||||
|
||||
// select one of the pods and move it forward in status
|
||||
if len(pods) > 0 {
|
||||
ord := int(rand.Int63n(int64(len(pods))))
|
||||
pod := pods[ord]
|
||||
idx := int(rand.Int63n(int64(len(pods))))
|
||||
pod := pods[idx]
|
||||
switch pod.Status.Phase {
|
||||
case v1.PodPending:
|
||||
if pods, err = om.setPodRunning(set, ord); err != nil {
|
||||
if pods, err = om.setPodRunning(set, getOrdinal(pod)); err != nil {
|
||||
return err
|
||||
}
|
||||
case v1.PodRunning:
|
||||
if pods, err = om.setPodReady(set, ord); err != nil {
|
||||
if pods, err = om.setPodReady(set, getOrdinal(pod)); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
@ -2720,7 +2794,7 @@ func scaleDownStatefulSetControl(set *apps.StatefulSet, ssc StatefulSetControlIn
|
||||
return err
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
if ordinal := len(pods) - 1; ordinal >= 0 {
|
||||
if idx := len(pods) - 1; idx >= 0 {
|
||||
if _, err := ssc.UpdateStatefulSet(context.TODO(), set, pods); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -2728,7 +2802,7 @@ func scaleDownStatefulSetControl(set *apps.StatefulSet, ssc StatefulSetControlIn
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if pods, err = om.addTerminatingPod(set, ordinal); err != nil {
|
||||
if pods, err = om.addTerminatingPod(set, getOrdinal(pods[idx])); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err = ssc.UpdateStatefulSet(context.TODO(), set, pods); err != nil {
|
||||
@ -2860,9 +2934,9 @@ func updateStatefulSetControl(set *apps.StatefulSet,
|
||||
}
|
||||
sort.Sort(ascendingOrdinal(pods))
|
||||
initialized := false
|
||||
for ord, pod := range pods {
|
||||
for _, pod := range pods {
|
||||
if pod.Status.Phase == "" {
|
||||
if pods, err = om.setPodPending(set, ord); err != nil {
|
||||
if pods, err = om.setPodPending(set, getOrdinal(pod)); err != nil {
|
||||
return err
|
||||
}
|
||||
break
|
||||
@ -2873,15 +2947,15 @@ func updateStatefulSetControl(set *apps.StatefulSet,
|
||||
}
|
||||
|
||||
if len(pods) > 0 {
|
||||
ord := int(rand.Int63n(int64(len(pods))))
|
||||
pod := pods[ord]
|
||||
idx := int(rand.Int63n(int64(len(pods))))
|
||||
pod := pods[idx]
|
||||
switch pod.Status.Phase {
|
||||
case v1.PodPending:
|
||||
if pods, err = om.setPodRunning(set, ord); err != nil {
|
||||
if pods, err = om.setPodRunning(set, getOrdinal(pod)); err != nil {
|
||||
return err
|
||||
}
|
||||
case v1.PodRunning:
|
||||
if pods, err = om.setPodReady(set, ord); err != nil {
|
||||
if pods, err = om.setPodReady(set, getOrdinal(pod)); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
|
@ -29,11 +29,13 @@ import (
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/klog/v2"
|
||||
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/controller/history"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
)
|
||||
|
||||
var patchCodec = scheme.Codecs.LegacyCodec(apps.SchemeGroupVersion)
|
||||
@ -85,6 +87,29 @@ func getOrdinal(pod *v1.Pod) int {
|
||||
return ordinal
|
||||
}
|
||||
|
||||
// getStartOrdinal gets the first possible ordinal (inclusive).
|
||||
// Returns spec.ordinals.start if spec.ordinals is set, otherwise returns 0.
|
||||
func getStartOrdinal(set *apps.StatefulSet) int {
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetSlice) {
|
||||
if set.Spec.Ordinals != nil {
|
||||
return int(set.Spec.Ordinals.Start)
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// getEndOrdinal gets the last possible ordinal (inclusive).
|
||||
func getEndOrdinal(set *apps.StatefulSet) int {
|
||||
return getStartOrdinal(set) + int(*set.Spec.Replicas) - 1
|
||||
}
|
||||
|
||||
// podInOrdinalRange returns true if the pod ordinal is within the allowed
|
||||
// range of ordinals that this StatefulSet is set to control.
|
||||
func podInOrdinalRange(pod *v1.Pod, set *apps.StatefulSet) bool {
|
||||
ordinal := getOrdinal(pod)
|
||||
return ordinal >= getStartOrdinal(set) && ordinal <= getEndOrdinal(set)
|
||||
}
|
||||
|
||||
// getPodName gets the name of set's child Pod with an ordinal index of ordinal
|
||||
func getPodName(set *apps.StatefulSet, ordinal int) string {
|
||||
return fmt.Sprintf("%s-%d", set.Name, ordinal)
|
||||
@ -170,12 +195,12 @@ func claimOwnerMatchesSetAndPod(claim *v1.PersistentVolumeClaim, set *apps.State
|
||||
if hasOwnerRef(claim, set) {
|
||||
return false
|
||||
}
|
||||
podScaledDown := getOrdinal(pod) >= int(*set.Spec.Replicas)
|
||||
podScaledDown := !podInOrdinalRange(pod, set)
|
||||
if podScaledDown != hasOwnerRef(claim, pod) {
|
||||
return false
|
||||
}
|
||||
case policy.WhenScaled == delete && policy.WhenDeleted == delete:
|
||||
podScaledDown := getOrdinal(pod) >= int(*set.Spec.Replicas)
|
||||
podScaledDown := !podInOrdinalRange(pod, set)
|
||||
// If a pod is scaled down, there should be no set ref and a pod ref;
|
||||
// if the pod is not scaled down it's the other way around.
|
||||
if podScaledDown == hasOwnerRef(claim, set) {
|
||||
@ -226,7 +251,7 @@ func updateClaimOwnerRefForSetAndPod(claim *v1.PersistentVolumeClaim, set *apps.
|
||||
needsUpdate = removeOwnerRef(claim, pod) || needsUpdate
|
||||
case policy.WhenScaled == delete && policy.WhenDeleted == retain:
|
||||
needsUpdate = removeOwnerRef(claim, set) || needsUpdate
|
||||
podScaledDown := getOrdinal(pod) >= int(*set.Spec.Replicas)
|
||||
podScaledDown := !podInOrdinalRange(pod, set)
|
||||
if podScaledDown {
|
||||
needsUpdate = setOwnerRef(claim, pod, &podMeta) || needsUpdate
|
||||
}
|
||||
@ -234,7 +259,7 @@ func updateClaimOwnerRefForSetAndPod(claim *v1.PersistentVolumeClaim, set *apps.
|
||||
needsUpdate = removeOwnerRef(claim, pod) || needsUpdate
|
||||
}
|
||||
case policy.WhenScaled == delete && policy.WhenDeleted == delete:
|
||||
podScaledDown := getOrdinal(pod) >= int(*set.Spec.Replicas)
|
||||
podScaledDown := !podInOrdinalRange(pod, set)
|
||||
if podScaledDown {
|
||||
needsUpdate = removeOwnerRef(claim, set) || needsUpdate
|
||||
needsUpdate = setOwnerRef(claim, pod, &podMeta) || needsUpdate
|
||||
@ -440,8 +465,8 @@ func newStatefulSetPod(set *apps.StatefulSet, ordinal int) *v1.Pod {
|
||||
// returned error is nil, the returned Pod is valid.
|
||||
func newVersionedStatefulSetPod(currentSet, updateSet *apps.StatefulSet, currentRevision, updateRevision string, ordinal int) *v1.Pod {
|
||||
if currentSet.Spec.UpdateStrategy.Type == apps.RollingUpdateStatefulSetStrategyType &&
|
||||
(currentSet.Spec.UpdateStrategy.RollingUpdate == nil && ordinal < int(currentSet.Status.CurrentReplicas)) ||
|
||||
(currentSet.Spec.UpdateStrategy.RollingUpdate != nil && ordinal < int(*currentSet.Spec.UpdateStrategy.RollingUpdate.Partition)) {
|
||||
(currentSet.Spec.UpdateStrategy.RollingUpdate == nil && ordinal < (getStartOrdinal(currentSet)+int(currentSet.Status.CurrentReplicas))) ||
|
||||
(currentSet.Spec.UpdateStrategy.RollingUpdate != nil && ordinal < (getStartOrdinal(currentSet)+int(*currentSet.Spec.UpdateStrategy.RollingUpdate.Partition))) {
|
||||
pod := newStatefulSetPod(currentSet, ordinal)
|
||||
setPodRevision(pod, currentRevision)
|
||||
return pod
|
||||
|
@ -766,6 +766,12 @@ const (
|
||||
// StatefulSetMinReadySeconds allows minReadySeconds to be respected by StatefulSet controller
|
||||
StatefulSetMinReadySeconds featuregate.Feature = "StatefulSetMinReadySeconds"
|
||||
|
||||
// owner: @psch
|
||||
// alpha: v1.26
|
||||
//
|
||||
// Enables a StatefulSet to start from an arbitrary non zero ordinal
|
||||
StatefulSetSlice featuregate.Feature = "StatefulSetSlice"
|
||||
|
||||
// owner: @robscott
|
||||
// kep: https://kep.k8s.io/2433
|
||||
// alpha: v1.21
|
||||
@ -1075,6 +1081,8 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
||||
|
||||
StatefulSetMinReadySeconds: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.27
|
||||
|
||||
StatefulSetSlice: {Default: false, PreRelease: featuregate.Alpha},
|
||||
|
||||
TopologyAwareHints: {Default: true, PreRelease: featuregate.Beta},
|
||||
|
||||
TopologyManager: {Default: true, PreRelease: featuregate.Beta},
|
||||
|
90
pkg/generated/openapi/zz_generated.openapi.go
generated
90
pkg/generated/openapi/zz_generated.openapi.go
generated
@ -100,6 +100,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"k8s.io/api/apps/v1.StatefulSet": schema_k8sio_api_apps_v1_StatefulSet(ref),
|
||||
"k8s.io/api/apps/v1.StatefulSetCondition": schema_k8sio_api_apps_v1_StatefulSetCondition(ref),
|
||||
"k8s.io/api/apps/v1.StatefulSetList": schema_k8sio_api_apps_v1_StatefulSetList(ref),
|
||||
"k8s.io/api/apps/v1.StatefulSetOrdinals": schema_k8sio_api_apps_v1_StatefulSetOrdinals(ref),
|
||||
"k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy": schema_k8sio_api_apps_v1_StatefulSetPersistentVolumeClaimRetentionPolicy(ref),
|
||||
"k8s.io/api/apps/v1.StatefulSetSpec": schema_k8sio_api_apps_v1_StatefulSetSpec(ref),
|
||||
"k8s.io/api/apps/v1.StatefulSetStatus": schema_k8sio_api_apps_v1_StatefulSetStatus(ref),
|
||||
@ -122,6 +123,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"k8s.io/api/apps/v1beta1.StatefulSet": schema_k8sio_api_apps_v1beta1_StatefulSet(ref),
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetCondition": schema_k8sio_api_apps_v1beta1_StatefulSetCondition(ref),
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetList": schema_k8sio_api_apps_v1beta1_StatefulSetList(ref),
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetOrdinals": schema_k8sio_api_apps_v1beta1_StatefulSetOrdinals(ref),
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy": schema_k8sio_api_apps_v1beta1_StatefulSetPersistentVolumeClaimRetentionPolicy(ref),
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetSpec": schema_k8sio_api_apps_v1beta1_StatefulSetSpec(ref),
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetStatus": schema_k8sio_api_apps_v1beta1_StatefulSetStatus(ref),
|
||||
@ -154,6 +156,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"k8s.io/api/apps/v1beta2.StatefulSet": schema_k8sio_api_apps_v1beta2_StatefulSet(ref),
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetCondition": schema_k8sio_api_apps_v1beta2_StatefulSetCondition(ref),
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetList": schema_k8sio_api_apps_v1beta2_StatefulSetList(ref),
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetOrdinals": schema_k8sio_api_apps_v1beta2_StatefulSetOrdinals(ref),
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy": schema_k8sio_api_apps_v1beta2_StatefulSetPersistentVolumeClaimRetentionPolicy(ref),
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetSpec": schema_k8sio_api_apps_v1beta2_StatefulSetSpec(ref),
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetStatus": schema_k8sio_api_apps_v1beta2_StatefulSetStatus(ref),
|
||||
@ -4857,6 +4860,27 @@ func schema_k8sio_api_apps_v1_StatefulSetList(ref common.ReferenceCallback) comm
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_apps_v1_StatefulSetOrdinals(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"start": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
Default: 0,
|
||||
Type: []string{"integer"},
|
||||
Format: "int32",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_apps_v1_StatefulSetPersistentVolumeClaimRetentionPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@ -4967,12 +4991,18 @@ func schema_k8sio_api_apps_v1_StatefulSetSpec(ref common.ReferenceCallback) comm
|
||||
Ref: ref("k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy"),
|
||||
},
|
||||
},
|
||||
"ordinals": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha.",
|
||||
Ref: ref("k8s.io/api/apps/v1.StatefulSetOrdinals"),
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"selector", "template", "serviceName"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
|
||||
"k8s.io/api/apps/v1.StatefulSetOrdinals", "k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
|
||||
}
|
||||
}
|
||||
|
||||
@ -5965,6 +5995,27 @@ func schema_k8sio_api_apps_v1beta1_StatefulSetList(ref common.ReferenceCallback)
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_apps_v1beta1_StatefulSetOrdinals(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"start": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
Default: 0,
|
||||
Type: []string{"integer"},
|
||||
Format: "int32",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_apps_v1beta1_StatefulSetPersistentVolumeClaimRetentionPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@ -6075,12 +6126,18 @@ func schema_k8sio_api_apps_v1beta1_StatefulSetSpec(ref common.ReferenceCallback)
|
||||
Ref: ref("k8s.io/api/apps/v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy"),
|
||||
},
|
||||
},
|
||||
"ordinals": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha.",
|
||||
Ref: ref("k8s.io/api/apps/v1beta1.StatefulSetOrdinals"),
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"template", "serviceName"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1beta1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
|
||||
"k8s.io/api/apps/v1beta1.StatefulSetOrdinals", "k8s.io/api/apps/v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1beta1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
|
||||
}
|
||||
}
|
||||
|
||||
@ -7622,6 +7679,27 @@ func schema_k8sio_api_apps_v1beta2_StatefulSetList(ref common.ReferenceCallback)
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_apps_v1beta2_StatefulSetOrdinals(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"start": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
Default: 0,
|
||||
Type: []string{"integer"},
|
||||
Format: "int32",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_apps_v1beta2_StatefulSetPersistentVolumeClaimRetentionPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@ -7732,12 +7810,18 @@ func schema_k8sio_api_apps_v1beta2_StatefulSetSpec(ref common.ReferenceCallback)
|
||||
Ref: ref("k8s.io/api/apps/v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy"),
|
||||
},
|
||||
},
|
||||
"ordinals": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha.",
|
||||
Ref: ref("k8s.io/api/apps/v1beta2.StatefulSetOrdinals"),
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"selector", "template", "serviceName"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1beta2.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
|
||||
"k8s.io/api/apps/v1beta2.StatefulSetOrdinals", "k8s.io/api/apps/v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1beta2.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -128,6 +128,10 @@ func dropStatefulSetDisabledFields(newSS *apps.StatefulSet, oldSS *apps.Stateful
|
||||
newSS.Spec.UpdateStrategy.RollingUpdate.MaxUnavailable = nil
|
||||
}
|
||||
}
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetSlice) {
|
||||
// Reset Spec.Ordinals to the default value (nil).
|
||||
newSS.Spec.Ordinals = nil
|
||||
}
|
||||
}
|
||||
|
||||
// Validate validates a new StatefulSet.
|
||||
|
481
staging/src/k8s.io/api/apps/v1/generated.pb.go
generated
481
staging/src/k8s.io/api/apps/v1/generated.pb.go
generated
@ -748,12 +748,40 @@ func (m *StatefulSetList) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_StatefulSetList proto.InternalMessageInfo
|
||||
|
||||
func (m *StatefulSetOrdinals) Reset() { *m = StatefulSetOrdinals{} }
|
||||
func (*StatefulSetOrdinals) ProtoMessage() {}
|
||||
func (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{25}
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_StatefulSetOrdinals.Merge(m, src)
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {
|
||||
*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}
|
||||
}
|
||||
func (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}
|
||||
func (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{25}
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{26}
|
||||
}
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -781,7 +809,7 @@ var xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.Intern
|
||||
func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} }
|
||||
func (*StatefulSetSpec) ProtoMessage() {}
|
||||
func (*StatefulSetSpec) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{26}
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{27}
|
||||
}
|
||||
func (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -809,7 +837,7 @@ var xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo
|
||||
func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} }
|
||||
func (*StatefulSetStatus) ProtoMessage() {}
|
||||
func (*StatefulSetStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{27}
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{28}
|
||||
}
|
||||
func (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -837,7 +865,7 @@ var xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo
|
||||
func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} }
|
||||
func (*StatefulSetUpdateStrategy) ProtoMessage() {}
|
||||
func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{28}
|
||||
return fileDescriptor_e1014cab6f31e43b, []int{29}
|
||||
}
|
||||
func (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -888,6 +916,7 @@ func init() {
|
||||
proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1.StatefulSet")
|
||||
proto.RegisterType((*StatefulSetCondition)(nil), "k8s.io.api.apps.v1.StatefulSetCondition")
|
||||
proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1.StatefulSetList")
|
||||
proto.RegisterType((*StatefulSetOrdinals)(nil), "k8s.io.api.apps.v1.StatefulSetOrdinals")
|
||||
proto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), "k8s.io.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy")
|
||||
proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1.StatefulSetSpec")
|
||||
proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1.StatefulSetStatus")
|
||||
@ -899,142 +928,146 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_e1014cab6f31e43b = []byte{
|
||||
// 2160 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1c, 0xb7,
|
||||
0x15, 0xd7, 0xec, 0x87, 0xb4, 0xa2, 0x2c, 0xc9, 0xa6, 0x54, 0x69, 0x63, 0x37, 0xbb, 0xee, 0xd6,
|
||||
0x75, 0x94, 0x38, 0xde, 0xad, 0x1d, 0x27, 0x08, 0xe2, 0x22, 0x81, 0x66, 0x95, 0xa6, 0x69, 0x24,
|
||||
0x59, 0xa5, 0x2c, 0x07, 0x70, 0xd3, 0xa2, 0xd4, 0x2c, 0xbd, 0x9a, 0x68, 0xbe, 0x30, 0xc3, 0x51,
|
||||
0x2c, 0xf4, 0x52, 0x14, 0xe8, 0xad, 0x87, 0xfe, 0x27, 0x45, 0x51, 0x34, 0xb7, 0x20, 0x08, 0x7a,
|
||||
0xf1, 0xa5, 0x68, 0xd0, 0x4b, 0x73, 0x5a, 0xd4, 0x9b, 0x53, 0x51, 0xf4, 0xd6, 0x5e, 0x7c, 0x69,
|
||||
0x41, 0x0e, 0xe7, 0x9b, 0xa3, 0x5d, 0xc9, 0xb1, 0xf2, 0x01, 0xdf, 0xb4, 0xe4, 0xef, 0xfd, 0xf8,
|
||||
0x48, 0xbe, 0xc7, 0xf7, 0x23, 0x47, 0xe0, 0xe6, 0xfe, 0xab, 0x5e, 0x5b, 0xb7, 0x3b, 0xfb, 0xfe,
|
||||
0x2e, 0x71, 0x2d, 0x42, 0x89, 0xd7, 0x39, 0x20, 0x56, 0xcf, 0x76, 0x3b, 0xa2, 0x03, 0x3b, 0x7a,
|
||||
0x07, 0x3b, 0x8e, 0xd7, 0x39, 0xb8, 0xd6, 0xe9, 0x13, 0x8b, 0xb8, 0x98, 0x92, 0x5e, 0xdb, 0x71,
|
||||
0x6d, 0x6a, 0x43, 0x18, 0x60, 0xda, 0xd8, 0xd1, 0xdb, 0x0c, 0xd3, 0x3e, 0xb8, 0x76, 0xfe, 0x6a,
|
||||
0x5f, 0xa7, 0x7b, 0xfe, 0x6e, 0x5b, 0xb3, 0xcd, 0x4e, 0xdf, 0xee, 0xdb, 0x1d, 0x0e, 0xdd, 0xf5,
|
||||
0xef, 0xf1, 0x5f, 0xfc, 0x07, 0xff, 0x2b, 0xa0, 0x38, 0xdf, 0x4a, 0x0c, 0xa3, 0xd9, 0x2e, 0x91,
|
||||
0x0c, 0x73, 0xfe, 0x46, 0x8c, 0x31, 0xb1, 0xb6, 0xa7, 0x5b, 0xc4, 0x3d, 0xec, 0x38, 0xfb, 0x7d,
|
||||
0xd6, 0xe0, 0x75, 0x4c, 0x42, 0xb1, 0xcc, 0xaa, 0x53, 0x64, 0xe5, 0xfa, 0x16, 0xd5, 0x4d, 0x92,
|
||||
0x33, 0x78, 0x65, 0x94, 0x81, 0xa7, 0xed, 0x11, 0x13, 0xe7, 0xec, 0x5e, 0x2a, 0xb2, 0xf3, 0xa9,
|
||||
0x6e, 0x74, 0x74, 0x8b, 0x7a, 0xd4, 0xcd, 0x1a, 0xb5, 0xfe, 0xab, 0x00, 0xd8, 0xb5, 0x2d, 0xea,
|
||||
0xda, 0x86, 0x41, 0x5c, 0x44, 0x0e, 0x74, 0x4f, 0xb7, 0x2d, 0xf8, 0x0b, 0x50, 0x63, 0xf3, 0xe9,
|
||||
0x61, 0x8a, 0xeb, 0xca, 0x45, 0x65, 0x65, 0xe6, 0xfa, 0xf7, 0xdb, 0xf1, 0x22, 0x47, 0xf4, 0x6d,
|
||||
0x67, 0xbf, 0xcf, 0x1a, 0xbc, 0x36, 0x43, 0xb7, 0x0f, 0xae, 0xb5, 0x6f, 0xed, 0xbe, 0x4f, 0x34,
|
||||
0xba, 0x41, 0x28, 0x56, 0xe1, 0x83, 0x41, 0x73, 0x62, 0x38, 0x68, 0x82, 0xb8, 0x0d, 0x45, 0xac,
|
||||
0xf0, 0x16, 0xa8, 0x70, 0xf6, 0x12, 0x67, 0xbf, 0x5a, 0xc8, 0x2e, 0x26, 0xdd, 0x46, 0xf8, 0x83,
|
||||
0x37, 0xef, 0x53, 0x62, 0x31, 0xf7, 0xd4, 0x33, 0x82, 0xba, 0xb2, 0x86, 0x29, 0x46, 0x9c, 0x08,
|
||||
0xbe, 0x08, 0x6a, 0xae, 0x70, 0xbf, 0x5e, 0xbe, 0xa8, 0xac, 0x94, 0xd5, 0xb3, 0x02, 0x55, 0x0b,
|
||||
0xa7, 0x85, 0x22, 0x44, 0xeb, 0xcf, 0x0a, 0x58, 0xca, 0xcf, 0x7b, 0x5d, 0xf7, 0x28, 0x7c, 0x2f,
|
||||
0x37, 0xf7, 0xf6, 0x78, 0x73, 0x67, 0xd6, 0x7c, 0xe6, 0xd1, 0xc0, 0x61, 0x4b, 0x62, 0xde, 0xef,
|
||||
0x80, 0xaa, 0x4e, 0x89, 0xe9, 0xd5, 0x4b, 0x17, 0xcb, 0x2b, 0x33, 0xd7, 0x2f, 0xb7, 0xf3, 0xb1,
|
||||
0xdb, 0xce, 0x3b, 0xa6, 0xce, 0x0a, 0xca, 0xea, 0xdb, 0xcc, 0x18, 0x05, 0x1c, 0xad, 0xff, 0x29,
|
||||
0x60, 0x7a, 0x0d, 0x13, 0xd3, 0xb6, 0xb6, 0x09, 0x3d, 0x85, 0x4d, 0xeb, 0x82, 0x8a, 0xe7, 0x10,
|
||||
0x4d, 0x6c, 0xda, 0x77, 0x64, 0xbe, 0x47, 0xee, 0x6c, 0x3b, 0x44, 0x8b, 0x37, 0x8a, 0xfd, 0x42,
|
||||
0xdc, 0x18, 0xbe, 0x03, 0x26, 0x3d, 0x8a, 0xa9, 0xef, 0xf1, 0x6d, 0x9a, 0xb9, 0xfe, 0xdd, 0xa3,
|
||||
0x69, 0x38, 0x54, 0x9d, 0x13, 0x44, 0x93, 0xc1, 0x6f, 0x24, 0x28, 0x5a, 0xff, 0x2c, 0x01, 0x18,
|
||||
0x61, 0xbb, 0xb6, 0xd5, 0xd3, 0x29, 0x8b, 0xdf, 0xd7, 0x40, 0x85, 0x1e, 0x3a, 0x84, 0x2f, 0xc3,
|
||||
0xb4, 0x7a, 0x39, 0xf4, 0xe2, 0xf6, 0xa1, 0x43, 0x1e, 0x0d, 0x9a, 0x4b, 0x79, 0x0b, 0xd6, 0x83,
|
||||
0xb8, 0x0d, 0x5c, 0x8f, 0xfc, 0x2b, 0x71, 0xeb, 0x1b, 0xe9, 0xa1, 0x1f, 0x0d, 0x9a, 0x92, 0xc3,
|
||||
0xa2, 0x1d, 0x31, 0xa5, 0x1d, 0x84, 0x07, 0x00, 0x1a, 0xd8, 0xa3, 0xb7, 0x5d, 0x6c, 0x79, 0xc1,
|
||||
0x48, 0xba, 0x49, 0xc4, 0xcc, 0x5f, 0x18, 0x6f, 0x7b, 0x98, 0x85, 0x7a, 0x5e, 0x78, 0x01, 0xd7,
|
||||
0x73, 0x6c, 0x48, 0x32, 0x02, 0xbc, 0x0c, 0x26, 0x5d, 0x82, 0x3d, 0xdb, 0xaa, 0x57, 0xf8, 0x2c,
|
||||
0xa2, 0x05, 0x44, 0xbc, 0x15, 0x89, 0x5e, 0xf8, 0x3c, 0x98, 0x32, 0x89, 0xe7, 0xe1, 0x3e, 0xa9,
|
||||
0x57, 0x39, 0x70, 0x5e, 0x00, 0xa7, 0x36, 0x82, 0x66, 0x14, 0xf6, 0xb7, 0xfe, 0xa0, 0x80, 0xd9,
|
||||
0x68, 0xe5, 0x4e, 0x21, 0x55, 0xd4, 0x74, 0xaa, 0x3c, 0x7b, 0x64, 0x9c, 0x14, 0x64, 0xc8, 0xc7,
|
||||
0xe5, 0x84, 0xcf, 0x2c, 0x08, 0xe1, 0xcf, 0x40, 0xcd, 0x23, 0x06, 0xd1, 0xa8, 0xed, 0x0a, 0x9f,
|
||||
0x5f, 0x1a, 0xd3, 0x67, 0xbc, 0x4b, 0x8c, 0x6d, 0x61, 0xaa, 0x9e, 0x61, 0x4e, 0x87, 0xbf, 0x50,
|
||||
0x44, 0x09, 0x7f, 0x02, 0x6a, 0x94, 0x98, 0x8e, 0x81, 0x29, 0x11, 0x69, 0x92, 0x8a, 0x6f, 0x16,
|
||||
0x2e, 0x8c, 0x6c, 0xcb, 0xee, 0xdd, 0x16, 0x30, 0x9e, 0x28, 0xd1, 0x3a, 0x84, 0xad, 0x28, 0xa2,
|
||||
0x81, 0xfb, 0x60, 0xce, 0x77, 0x7a, 0x0c, 0x49, 0xd9, 0xd1, 0xdd, 0x3f, 0x14, 0xe1, 0x73, 0xe5,
|
||||
0xc8, 0x05, 0xd9, 0x49, 0x99, 0xa8, 0x4b, 0x62, 0x80, 0xb9, 0x74, 0x3b, 0xca, 0x50, 0xc3, 0x55,
|
||||
0x30, 0x6f, 0xea, 0x16, 0x22, 0xb8, 0x77, 0xb8, 0x4d, 0x34, 0xdb, 0xea, 0x79, 0x3c, 0x80, 0xaa,
|
||||
0xea, 0xb2, 0x20, 0x98, 0xdf, 0x48, 0x77, 0xa3, 0x2c, 0x1e, 0xae, 0x83, 0xc5, 0xf0, 0x9c, 0xfd,
|
||||
0x91, 0xee, 0x51, 0xdb, 0x3d, 0x5c, 0xd7, 0x4d, 0x9d, 0xd6, 0x27, 0x39, 0x4f, 0x7d, 0x38, 0x68,
|
||||
0x2e, 0x22, 0x49, 0x3f, 0x92, 0x5a, 0xb5, 0x7e, 0x3b, 0x09, 0xe6, 0x33, 0xa7, 0x01, 0xbc, 0x03,
|
||||
0x96, 0x34, 0xdf, 0x75, 0x89, 0x45, 0x37, 0x7d, 0x73, 0x97, 0xb8, 0xdb, 0xda, 0x1e, 0xe9, 0xf9,
|
||||
0x06, 0xe9, 0xf1, 0x1d, 0xad, 0xaa, 0x0d, 0xe1, 0xeb, 0x52, 0x57, 0x8a, 0x42, 0x05, 0xd6, 0xf0,
|
||||
0xc7, 0x00, 0x5a, 0xbc, 0x69, 0x43, 0xf7, 0xbc, 0x88, 0xb3, 0xc4, 0x39, 0xa3, 0x04, 0xdc, 0xcc,
|
||||
0x21, 0x90, 0xc4, 0x8a, 0xf9, 0xd8, 0x23, 0x9e, 0xee, 0x92, 0x5e, 0xd6, 0xc7, 0x72, 0xda, 0xc7,
|
||||
0x35, 0x29, 0x0a, 0x15, 0x58, 0xc3, 0x97, 0xc1, 0x4c, 0x30, 0x1a, 0x5f, 0x73, 0xb1, 0x39, 0x0b,
|
||||
0x82, 0x6c, 0x66, 0x33, 0xee, 0x42, 0x49, 0x1c, 0x9b, 0x9a, 0xbd, 0xeb, 0x11, 0xf7, 0x80, 0xf4,
|
||||
0xde, 0x0a, 0x34, 0x00, 0x2b, 0x94, 0x55, 0x5e, 0x28, 0xa3, 0xa9, 0xdd, 0xca, 0x21, 0x90, 0xc4,
|
||||
0x8a, 0x4d, 0x2d, 0x88, 0x9a, 0xdc, 0xd4, 0x26, 0xd3, 0x53, 0xdb, 0x91, 0xa2, 0x50, 0x81, 0x35,
|
||||
0x8b, 0xbd, 0xc0, 0xe5, 0xd5, 0x03, 0xac, 0x1b, 0x78, 0xd7, 0x20, 0xf5, 0xa9, 0x74, 0xec, 0x6d,
|
||||
0xa6, 0xbb, 0x51, 0x16, 0x0f, 0xdf, 0x02, 0xe7, 0x82, 0xa6, 0x1d, 0x0b, 0x47, 0x24, 0x35, 0x4e,
|
||||
0xf2, 0x8c, 0x20, 0x39, 0xb7, 0x99, 0x05, 0xa0, 0xbc, 0x0d, 0x7c, 0x0d, 0xcc, 0x69, 0xb6, 0x61,
|
||||
0xf0, 0x78, 0xec, 0xda, 0xbe, 0x45, 0xeb, 0xd3, 0x9c, 0x05, 0xb2, 0x1c, 0xea, 0xa6, 0x7a, 0x50,
|
||||
0x06, 0x09, 0xef, 0x02, 0xa0, 0x85, 0xe5, 0xc0, 0xab, 0x83, 0xe2, 0x42, 0x9f, 0xaf, 0x43, 0x71,
|
||||
0x01, 0x8e, 0x9a, 0x3c, 0x94, 0x60, 0x6b, 0x7d, 0xac, 0x80, 0xe5, 0x82, 0x1c, 0x87, 0x6f, 0xa4,
|
||||
0xaa, 0xde, 0x95, 0x4c, 0xd5, 0xbb, 0x50, 0x60, 0x96, 0x28, 0x7d, 0x1a, 0x98, 0x65, 0xba, 0x43,
|
||||
0xb7, 0xfa, 0x01, 0x44, 0x9c, 0x60, 0x2f, 0xc8, 0x7c, 0x47, 0x49, 0x60, 0x7c, 0x0c, 0x9f, 0x1b,
|
||||
0x0e, 0x9a, 0xb3, 0xa9, 0x3e, 0x94, 0xe6, 0x6c, 0xfd, 0xba, 0x04, 0xc0, 0x1a, 0x71, 0x0c, 0xfb,
|
||||
0xd0, 0x24, 0xd6, 0x69, 0xa8, 0x96, 0xb5, 0x94, 0x6a, 0x69, 0x49, 0x37, 0x22, 0xf2, 0xa7, 0x50,
|
||||
0xb6, 0xac, 0x67, 0x64, 0xcb, 0xa5, 0x11, 0x3c, 0x47, 0xeb, 0x96, 0xbf, 0x97, 0xc1, 0x42, 0x0c,
|
||||
0x8e, 0x85, 0xcb, 0xcd, 0xd4, 0x16, 0x3e, 0x97, 0xd9, 0xc2, 0x65, 0x89, 0xc9, 0x13, 0x53, 0x2e,
|
||||
0xef, 0x83, 0x39, 0xa6, 0x2b, 0x82, 0x5d, 0xe3, 0xaa, 0x65, 0xf2, 0xd8, 0xaa, 0x25, 0xaa, 0x3a,
|
||||
0xeb, 0x29, 0x26, 0x94, 0x61, 0x2e, 0x50, 0x49, 0x53, 0x5f, 0x47, 0x95, 0xf4, 0x47, 0x05, 0xcc,
|
||||
0xc5, 0xdb, 0x74, 0x0a, 0x32, 0xa9, 0x9b, 0x96, 0x49, 0x8d, 0xa3, 0xe3, 0xb2, 0x40, 0x27, 0xfd,
|
||||
0xad, 0x92, 0xf4, 0x9a, 0x0b, 0xa5, 0x15, 0x76, 0xa1, 0x72, 0x0c, 0x5d, 0xc3, 0x9e, 0x28, 0xab,
|
||||
0x67, 0x82, 0xcb, 0x54, 0xd0, 0x86, 0xa2, 0xde, 0x94, 0xa4, 0x2a, 0x3d, 0x59, 0x49, 0x55, 0xfe,
|
||||
0x62, 0x24, 0xd5, 0x6d, 0x50, 0xf3, 0x42, 0x31, 0x55, 0xe1, 0x94, 0x97, 0x47, 0xa5, 0xb3, 0xd0,
|
||||
0x51, 0x11, 0x6b, 0xa4, 0xa0, 0x22, 0x26, 0x99, 0x76, 0xaa, 0x7e, 0x99, 0xda, 0x89, 0x85, 0xb7,
|
||||
0x83, 0x7d, 0x8f, 0xf4, 0x78, 0x2a, 0xd5, 0xe2, 0xf0, 0xde, 0xe2, 0xad, 0x48, 0xf4, 0xc2, 0x1d,
|
||||
0xb0, 0xec, 0xb8, 0x76, 0xdf, 0x25, 0x9e, 0xb7, 0x46, 0x70, 0xcf, 0xd0, 0x2d, 0x12, 0x4e, 0x20,
|
||||
0xa8, 0x7a, 0x17, 0x86, 0x83, 0xe6, 0xf2, 0x96, 0x1c, 0x82, 0x8a, 0x6c, 0x5b, 0x1f, 0x55, 0xc0,
|
||||
0xd9, 0xec, 0x89, 0x58, 0x20, 0x44, 0x94, 0x13, 0x09, 0x91, 0x17, 0x13, 0x21, 0x1a, 0xa8, 0xb4,
|
||||
0xc4, 0x9d, 0x3f, 0x17, 0xa6, 0xab, 0x60, 0x5e, 0x08, 0x8f, 0xb0, 0x53, 0x48, 0xb1, 0x68, 0x7b,
|
||||
0x76, 0xd2, 0xdd, 0x28, 0x8b, 0x87, 0x37, 0xc1, 0xac, 0xcb, 0xb5, 0x55, 0x48, 0x10, 0xe8, 0x93,
|
||||
0x6f, 0x09, 0x82, 0x59, 0x94, 0xec, 0x44, 0x69, 0x2c, 0xd3, 0x26, 0xb1, 0xe4, 0x08, 0x09, 0x2a,
|
||||
0x69, 0x6d, 0xb2, 0x9a, 0x05, 0xa0, 0xbc, 0x0d, 0xdc, 0x00, 0x0b, 0xbe, 0x95, 0xa7, 0x0a, 0x62,
|
||||
0xed, 0x82, 0xa0, 0x5a, 0xd8, 0xc9, 0x43, 0x90, 0xcc, 0x0e, 0xfe, 0x34, 0x25, 0x57, 0x26, 0xf9,
|
||||
0x29, 0xf2, 0xdc, 0xd1, 0xe9, 0x30, 0xb6, 0x5e, 0x91, 0xe8, 0xa8, 0xda, 0xb8, 0x3a, 0xaa, 0xf5,
|
||||
0xa1, 0x02, 0x60, 0x3e, 0x05, 0x47, 0x5e, 0xee, 0x73, 0x16, 0x89, 0x12, 0xd9, 0x93, 0x2b, 0x9c,
|
||||
0x2b, 0xa3, 0x15, 0x4e, 0x7c, 0x82, 0x8e, 0x27, 0x71, 0xc4, 0xf2, 0x9e, 0xce, 0xc3, 0xcc, 0x18,
|
||||
0x12, 0x27, 0xf6, 0xe7, 0xf1, 0x24, 0x4e, 0x82, 0xe7, 0x68, 0x89, 0xf3, 0xaf, 0x12, 0x58, 0x88,
|
||||
0xc1, 0x63, 0x4b, 0x1c, 0x89, 0xc9, 0xd3, 0xc7, 0x99, 0xf1, 0x64, 0x47, 0xbc, 0x74, 0x5f, 0x11,
|
||||
0xd9, 0x11, 0x3b, 0x54, 0x20, 0x3b, 0x7e, 0x5f, 0x4a, 0x7a, 0x7d, 0x4c, 0xd9, 0xf1, 0x05, 0x3c,
|
||||
0x55, 0x7c, 0xed, 0x94, 0x4b, 0xeb, 0x93, 0x32, 0x38, 0x9b, 0x4d, 0xc1, 0x54, 0x1d, 0x54, 0x46,
|
||||
0xd6, 0xc1, 0x2d, 0xb0, 0x78, 0xcf, 0x37, 0x8c, 0x43, 0x3e, 0x87, 0x44, 0x31, 0x0c, 0x2a, 0xe8,
|
||||
0xb7, 0x85, 0xe5, 0xe2, 0x0f, 0x25, 0x18, 0x24, 0xb5, 0xcc, 0x97, 0xc5, 0xca, 0xe3, 0x96, 0xc5,
|
||||
0xea, 0x09, 0xca, 0xa2, 0x5c, 0x59, 0x94, 0x4f, 0xa4, 0x2c, 0xc6, 0xae, 0x89, 0x92, 0xe3, 0x6a,
|
||||
0xe4, 0x1d, 0x7e, 0xa8, 0x80, 0x25, 0xf9, 0xf5, 0x19, 0x1a, 0x60, 0xce, 0xc4, 0xf7, 0x93, 0x8f,
|
||||
0x17, 0xa3, 0x0a, 0x86, 0x4f, 0x75, 0xa3, 0x1d, 0x7c, 0xdd, 0x69, 0xbf, 0x6d, 0xd1, 0x5b, 0xee,
|
||||
0x36, 0x75, 0x75, 0xab, 0x1f, 0x14, 0xd8, 0x8d, 0x14, 0x17, 0xca, 0x70, 0xc3, 0xbb, 0xa0, 0x66,
|
||||
0xe2, 0xfb, 0xdb, 0xbe, 0xdb, 0x0f, 0x0b, 0xe1, 0xf1, 0xc7, 0xe1, 0xb1, 0xbf, 0x21, 0x58, 0x50,
|
||||
0xc4, 0xd7, 0xfa, 0x5c, 0x01, 0xcb, 0x05, 0x15, 0xf4, 0x1b, 0x34, 0xcb, 0x8f, 0x14, 0x70, 0x31,
|
||||
0x35, 0x4b, 0x96, 0x91, 0xe4, 0x9e, 0x6f, 0xf0, 0xe4, 0x14, 0x82, 0xe5, 0x0a, 0x98, 0x76, 0xb0,
|
||||
0x4b, 0xf5, 0x48, 0xe9, 0x56, 0xd5, 0xd9, 0xe1, 0xa0, 0x39, 0xbd, 0x15, 0x36, 0xa2, 0xb8, 0x5f,
|
||||
0xb2, 0x36, 0xa5, 0x27, 0xb7, 0x36, 0xad, 0xdf, 0x94, 0xc0, 0x4c, 0xc2, 0xe5, 0x53, 0x90, 0x2a,
|
||||
0x6f, 0xa6, 0xa4, 0x8a, 0xf4, 0xe3, 0x4f, 0x72, 0x0d, 0x8b, 0xb4, 0xca, 0x46, 0x46, 0xab, 0x7c,
|
||||
0x6f, 0x14, 0xd1, 0xd1, 0x62, 0xe5, 0xdf, 0x25, 0xb0, 0x98, 0x40, 0xc7, 0x6a, 0xe5, 0x07, 0x29,
|
||||
0xb5, 0xb2, 0x92, 0x51, 0x2b, 0x75, 0x99, 0xcd, 0x53, 0xb9, 0x32, 0x5a, 0xae, 0xfc, 0x49, 0x01,
|
||||
0xf3, 0x89, 0xb5, 0x3b, 0x05, 0xbd, 0xb2, 0x96, 0xd6, 0x2b, 0xcd, 0x11, 0xf1, 0x52, 0x20, 0x58,
|
||||
0xfe, 0xa3, 0x80, 0x4e, 0x02, 0xb5, 0x45, 0x5c, 0x4f, 0xf7, 0x28, 0xb1, 0xe8, 0x1d, 0xdb, 0xf0,
|
||||
0x4d, 0xd2, 0x35, 0xb0, 0x6e, 0x22, 0xc2, 0x1a, 0x74, 0xdb, 0xda, 0xb2, 0x0d, 0x5d, 0x3b, 0x84,
|
||||
0x18, 0xcc, 0x7c, 0xb0, 0x47, 0xac, 0x35, 0x62, 0x10, 0x2a, 0x3e, 0x51, 0x4c, 0xab, 0x6f, 0x84,
|
||||
0x2f, 0xf6, 0xef, 0xc6, 0x5d, 0x8f, 0x06, 0xcd, 0x95, 0x71, 0x18, 0x79, 0x80, 0x25, 0x39, 0xe1,
|
||||
0xcf, 0x01, 0x60, 0x3f, 0xb7, 0x35, 0x1c, 0x7e, 0xb0, 0x98, 0x56, 0x5f, 0x0f, 0xd3, 0xf0, 0xdd,
|
||||
0xa8, 0xe7, 0x58, 0x03, 0x24, 0x18, 0x5b, 0x7f, 0x9d, 0x4a, 0x6d, 0xd7, 0x37, 0xfe, 0x7d, 0xe8,
|
||||
0x97, 0x60, 0xf1, 0x20, 0x5e, 0x9d, 0x10, 0xc0, 0x74, 0x0d, 0x8b, 0x9d, 0xe7, 0xa5, 0xf4, 0xb2,
|
||||
0x75, 0x8d, 0xd5, 0xd4, 0x1d, 0x09, 0x1d, 0x92, 0x0e, 0x02, 0x5f, 0x06, 0x33, 0x4c, 0x8f, 0xe8,
|
||||
0x1a, 0xd9, 0xc4, 0x66, 0x98, 0x4a, 0xd1, 0x17, 0x9e, 0xed, 0xb8, 0x0b, 0x25, 0x71, 0x70, 0x0f,
|
||||
0x2c, 0x38, 0x76, 0x6f, 0x03, 0x5b, 0xb8, 0x4f, 0x58, 0x95, 0x0d, 0xb6, 0x92, 0xbf, 0x1c, 0x4d,
|
||||
0xab, 0xaf, 0x84, 0xaf, 0x02, 0x5b, 0x79, 0x08, 0xbb, 0x75, 0x49, 0x9a, 0x79, 0x10, 0xc8, 0x28,
|
||||
0xa1, 0x99, 0xfb, 0x20, 0x39, 0x95, 0xfb, 0x2f, 0x0e, 0x59, 0x4e, 0x9d, 0xf0, 0x93, 0x64, 0xd1,
|
||||
0x9b, 0x58, 0xed, 0x44, 0x6f, 0x62, 0x92, 0x5b, 0xc3, 0xf4, 0x31, 0x6f, 0x0d, 0x9f, 0x28, 0xe0,
|
||||
0x92, 0x33, 0x46, 0x1a, 0xd5, 0x01, 0x5f, 0x96, 0xee, 0x88, 0x65, 0x19, 0x27, 0x23, 0xd5, 0x95,
|
||||
0xe1, 0xa0, 0x79, 0x69, 0x1c, 0x24, 0x1a, 0xcb, 0xb5, 0xd6, 0x87, 0x55, 0x70, 0x2e, 0x57, 0x1e,
|
||||
0xbf, 0xc4, 0xc7, 0xb9, 0xdc, 0x15, 0xa2, 0x7c, 0x8c, 0x2b, 0xc4, 0x2a, 0x98, 0x17, 0x5f, 0x74,
|
||||
0x33, 0x37, 0x90, 0x68, 0x4f, 0xbb, 0xe9, 0x6e, 0x94, 0xc5, 0xcb, 0x1e, 0x07, 0xab, 0xc7, 0x7c,
|
||||
0x1c, 0x4c, 0x7a, 0x21, 0xfe, 0x11, 0x29, 0x48, 0xbe, 0xbc, 0x17, 0xe2, 0xff, 0x91, 0xb2, 0x78,
|
||||
0xf8, 0x7a, 0x98, 0x59, 0x11, 0xc3, 0x14, 0x67, 0xc8, 0xa4, 0x4a, 0x44, 0x90, 0x41, 0x3f, 0xd6,
|
||||
0x57, 0xcb, 0xf7, 0x24, 0x5f, 0x2d, 0x57, 0x46, 0x84, 0xee, 0xf8, 0xef, 0x80, 0xd2, 0x5b, 0xde,
|
||||
0xcc, 0xf1, 0x6f, 0x79, 0xad, 0xbf, 0x28, 0xe0, 0x99, 0xc2, 0x33, 0x05, 0xae, 0xa6, 0xe4, 0xda,
|
||||
0xd5, 0x8c, 0x5c, 0x7b, 0xb6, 0xd0, 0x30, 0xa1, 0xd9, 0x4c, 0xf9, 0x13, 0xe1, 0x8d, 0x91, 0x4f,
|
||||
0x84, 0x12, 0xe9, 0x3f, 0xfa, 0xad, 0x50, 0x7d, 0xf5, 0xc1, 0xc3, 0xc6, 0xc4, 0xa7, 0x0f, 0x1b,
|
||||
0x13, 0x9f, 0x3d, 0x6c, 0x4c, 0xfc, 0x6a, 0xd8, 0x50, 0x1e, 0x0c, 0x1b, 0xca, 0xa7, 0xc3, 0x86,
|
||||
0xf2, 0xd9, 0xb0, 0xa1, 0xfc, 0x63, 0xd8, 0x50, 0x7e, 0xf7, 0x79, 0x63, 0xe2, 0x2e, 0xcc, 0xff,
|
||||
0x1b, 0xe4, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x92, 0xcf, 0x5d, 0xcc, 0x34, 0x29, 0x00, 0x00,
|
||||
// 2213 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcb, 0x6f, 0x1b, 0xc7,
|
||||
0x19, 0xd7, 0xf2, 0x21, 0x51, 0x43, 0x4b, 0xb2, 0x47, 0xaa, 0xc4, 0xd8, 0x0d, 0xe9, 0x6e, 0x5d,
|
||||
0x5b, 0x89, 0x63, 0xb2, 0x76, 0x9c, 0x20, 0x88, 0x8b, 0x18, 0x22, 0x95, 0xa6, 0x69, 0xf4, 0xea,
|
||||
0xd0, 0x72, 0x00, 0x37, 0x2d, 0x3a, 0x22, 0xc7, 0xd4, 0x46, 0xfb, 0xc2, 0xee, 0x50, 0x31, 0xd1,
|
||||
0x4b, 0x51, 0xa0, 0xb7, 0x1e, 0xfa, 0x37, 0xf4, 0x1f, 0x28, 0x8a, 0xa2, 0xb9, 0x05, 0x41, 0xd0,
|
||||
0x8b, 0x2f, 0x05, 0x82, 0x5e, 0x9a, 0x13, 0x51, 0x33, 0xa7, 0xa2, 0xe8, 0xad, 0xbd, 0xf8, 0xd2,
|
||||
0x62, 0x66, 0x67, 0xdf, 0xb3, 0x22, 0x25, 0xc7, 0xca, 0x03, 0xbe, 0x71, 0x67, 0x7e, 0xdf, 0x6f,
|
||||
0xbf, 0x99, 0xf9, 0xbe, 0xf9, 0x7e, 0x33, 0x4b, 0x70, 0xeb, 0xe0, 0x35, 0xb7, 0xae, 0x59, 0x8d,
|
||||
0x83, 0xfe, 0x1e, 0x71, 0x4c, 0x42, 0x89, 0xdb, 0x38, 0x24, 0x66, 0xd7, 0x72, 0x1a, 0xa2, 0x03,
|
||||
0xdb, 0x5a, 0x03, 0xdb, 0xb6, 0xdb, 0x38, 0xbc, 0xde, 0xe8, 0x11, 0x93, 0x38, 0x98, 0x92, 0x6e,
|
||||
0xdd, 0x76, 0x2c, 0x6a, 0x41, 0xe8, 0x61, 0xea, 0xd8, 0xd6, 0xea, 0x0c, 0x53, 0x3f, 0xbc, 0x7e,
|
||||
0xfe, 0x5a, 0x4f, 0xa3, 0xfb, 0xfd, 0xbd, 0x7a, 0xc7, 0x32, 0x1a, 0x3d, 0xab, 0x67, 0x35, 0x38,
|
||||
0x74, 0xaf, 0x7f, 0x9f, 0x3f, 0xf1, 0x07, 0xfe, 0xcb, 0xa3, 0x38, 0xaf, 0x46, 0x5e, 0xd3, 0xb1,
|
||||
0x1c, 0x22, 0x79, 0xcd, 0xf9, 0x9b, 0x21, 0xc6, 0xc0, 0x9d, 0x7d, 0xcd, 0x24, 0xce, 0xa0, 0x61,
|
||||
0x1f, 0xf4, 0x58, 0x83, 0xdb, 0x30, 0x08, 0xc5, 0x32, 0xab, 0x46, 0x96, 0x95, 0xd3, 0x37, 0xa9,
|
||||
0x66, 0x90, 0x94, 0xc1, 0xab, 0xe3, 0x0c, 0xdc, 0xce, 0x3e, 0x31, 0x70, 0xca, 0xee, 0xe5, 0x2c,
|
||||
0xbb, 0x3e, 0xd5, 0xf4, 0x86, 0x66, 0x52, 0x97, 0x3a, 0x49, 0x23, 0xf5, 0xbf, 0x0a, 0x80, 0x2d,
|
||||
0xcb, 0xa4, 0x8e, 0xa5, 0xeb, 0xc4, 0x41, 0xe4, 0x50, 0x73, 0x35, 0xcb, 0x84, 0xbf, 0x00, 0x25,
|
||||
0x36, 0x9e, 0x2e, 0xa6, 0xb8, 0xa2, 0x5c, 0x54, 0x56, 0xcb, 0x37, 0xbe, 0x5f, 0x0f, 0x27, 0x39,
|
||||
0xa0, 0xaf, 0xdb, 0x07, 0x3d, 0xd6, 0xe0, 0xd6, 0x19, 0xba, 0x7e, 0x78, 0xbd, 0xbe, 0xbd, 0xf7,
|
||||
0x3e, 0xe9, 0xd0, 0x4d, 0x42, 0x71, 0x13, 0x3e, 0x1c, 0xd6, 0xa6, 0x46, 0xc3, 0x1a, 0x08, 0xdb,
|
||||
0x50, 0xc0, 0x0a, 0xb7, 0x41, 0x81, 0xb3, 0xe7, 0x38, 0xfb, 0xb5, 0x4c, 0x76, 0x31, 0xe8, 0x3a,
|
||||
0xc2, 0x1f, 0xbc, 0xf9, 0x80, 0x12, 0x93, 0xb9, 0xd7, 0x3c, 0x23, 0xa8, 0x0b, 0xeb, 0x98, 0x62,
|
||||
0xc4, 0x89, 0xe0, 0x4b, 0xa0, 0xe4, 0x08, 0xf7, 0x2b, 0xf9, 0x8b, 0xca, 0x6a, 0xbe, 0x79, 0x56,
|
||||
0xa0, 0x4a, 0xfe, 0xb0, 0x50, 0x80, 0x50, 0xff, 0xa2, 0x80, 0xe5, 0xf4, 0xb8, 0x37, 0x34, 0x97,
|
||||
0xc2, 0xf7, 0x52, 0x63, 0xaf, 0x4f, 0x36, 0x76, 0x66, 0xcd, 0x47, 0x1e, 0xbc, 0xd8, 0x6f, 0x89,
|
||||
0x8c, 0xfb, 0x1d, 0x50, 0xd4, 0x28, 0x31, 0xdc, 0x4a, 0xee, 0x62, 0x7e, 0xb5, 0x7c, 0xe3, 0x72,
|
||||
0x3d, 0x1d, 0xbb, 0xf5, 0xb4, 0x63, 0xcd, 0x39, 0x41, 0x59, 0x7c, 0x9b, 0x19, 0x23, 0x8f, 0x43,
|
||||
0xfd, 0x9f, 0x02, 0x66, 0xd7, 0x31, 0x31, 0x2c, 0xb3, 0x4d, 0xe8, 0x29, 0x2c, 0x5a, 0x0b, 0x14,
|
||||
0x5c, 0x9b, 0x74, 0xc4, 0xa2, 0x7d, 0x47, 0xe6, 0x7b, 0xe0, 0x4e, 0xdb, 0x26, 0x9d, 0x70, 0xa1,
|
||||
0xd8, 0x13, 0xe2, 0xc6, 0xf0, 0x1d, 0x30, 0xed, 0x52, 0x4c, 0xfb, 0x2e, 0x5f, 0xa6, 0xf2, 0x8d,
|
||||
0xef, 0x1e, 0x4d, 0xc3, 0xa1, 0xcd, 0x79, 0x41, 0x34, 0xed, 0x3d, 0x23, 0x41, 0xa1, 0xfe, 0x33,
|
||||
0x07, 0x60, 0x80, 0x6d, 0x59, 0x66, 0x57, 0xa3, 0x2c, 0x7e, 0x5f, 0x07, 0x05, 0x3a, 0xb0, 0x09,
|
||||
0x9f, 0x86, 0xd9, 0xe6, 0x65, 0xdf, 0x8b, 0x3b, 0x03, 0x9b, 0x3c, 0x1e, 0xd6, 0x96, 0xd3, 0x16,
|
||||
0xac, 0x07, 0x71, 0x1b, 0xb8, 0x11, 0xf8, 0x97, 0xe3, 0xd6, 0x37, 0xe3, 0xaf, 0x7e, 0x3c, 0xac,
|
||||
0x49, 0x36, 0x8b, 0x7a, 0xc0, 0x14, 0x77, 0x10, 0x1e, 0x02, 0xa8, 0x63, 0x97, 0xde, 0x71, 0xb0,
|
||||
0xe9, 0x7a, 0x6f, 0xd2, 0x0c, 0x22, 0x46, 0xfe, 0xe2, 0x64, 0xcb, 0xc3, 0x2c, 0x9a, 0xe7, 0x85,
|
||||
0x17, 0x70, 0x23, 0xc5, 0x86, 0x24, 0x6f, 0x80, 0x97, 0xc1, 0xb4, 0x43, 0xb0, 0x6b, 0x99, 0x95,
|
||||
0x02, 0x1f, 0x45, 0x30, 0x81, 0x88, 0xb7, 0x22, 0xd1, 0x0b, 0x5f, 0x00, 0x33, 0x06, 0x71, 0x5d,
|
||||
0xdc, 0x23, 0x95, 0x22, 0x07, 0x2e, 0x08, 0xe0, 0xcc, 0xa6, 0xd7, 0x8c, 0xfc, 0x7e, 0xf5, 0x8f,
|
||||
0x0a, 0x98, 0x0b, 0x66, 0xee, 0x14, 0x52, 0xa5, 0x19, 0x4f, 0x95, 0xe7, 0x8f, 0x8c, 0x93, 0x8c,
|
||||
0x0c, 0xf9, 0x38, 0x1f, 0xf1, 0x99, 0x05, 0x21, 0xfc, 0x19, 0x28, 0xb9, 0x44, 0x27, 0x1d, 0x6a,
|
||||
0x39, 0xc2, 0xe7, 0x97, 0x27, 0xf4, 0x19, 0xef, 0x11, 0xbd, 0x2d, 0x4c, 0x9b, 0x67, 0x98, 0xd3,
|
||||
0xfe, 0x13, 0x0a, 0x28, 0xe1, 0x4f, 0x40, 0x89, 0x12, 0xc3, 0xd6, 0x31, 0x25, 0x22, 0x4d, 0x62,
|
||||
0xf1, 0xcd, 0xc2, 0x85, 0x91, 0xed, 0x58, 0xdd, 0x3b, 0x02, 0xc6, 0x13, 0x25, 0x98, 0x07, 0xbf,
|
||||
0x15, 0x05, 0x34, 0xf0, 0x00, 0xcc, 0xf7, 0xed, 0x2e, 0x43, 0x52, 0xb6, 0x75, 0xf7, 0x06, 0x22,
|
||||
0x7c, 0xae, 0x1e, 0x39, 0x21, 0xbb, 0x31, 0x93, 0xe6, 0xb2, 0x78, 0xc1, 0x7c, 0xbc, 0x1d, 0x25,
|
||||
0xa8, 0xe1, 0x1a, 0x58, 0x30, 0x34, 0x13, 0x11, 0xdc, 0x1d, 0xb4, 0x49, 0xc7, 0x32, 0xbb, 0x2e,
|
||||
0x0f, 0xa0, 0x62, 0x73, 0x45, 0x10, 0x2c, 0x6c, 0xc6, 0xbb, 0x51, 0x12, 0x0f, 0x37, 0xc0, 0x92,
|
||||
0xbf, 0xcf, 0xfe, 0x48, 0x73, 0xa9, 0xe5, 0x0c, 0x36, 0x34, 0x43, 0xa3, 0x95, 0x69, 0xce, 0x53,
|
||||
0x19, 0x0d, 0x6b, 0x4b, 0x48, 0xd2, 0x8f, 0xa4, 0x56, 0xea, 0x6f, 0xa7, 0xc1, 0x42, 0x62, 0x37,
|
||||
0x80, 0x77, 0xc1, 0x72, 0xa7, 0xef, 0x38, 0xc4, 0xa4, 0x5b, 0x7d, 0x63, 0x8f, 0x38, 0xed, 0xce,
|
||||
0x3e, 0xe9, 0xf6, 0x75, 0xd2, 0xe5, 0x2b, 0x5a, 0x6c, 0x56, 0x85, 0xaf, 0xcb, 0x2d, 0x29, 0x0a,
|
||||
0x65, 0x58, 0xc3, 0x1f, 0x03, 0x68, 0xf2, 0xa6, 0x4d, 0xcd, 0x75, 0x03, 0xce, 0x1c, 0xe7, 0x0c,
|
||||
0x12, 0x70, 0x2b, 0x85, 0x40, 0x12, 0x2b, 0xe6, 0x63, 0x97, 0xb8, 0x9a, 0x43, 0xba, 0x49, 0x1f,
|
||||
0xf3, 0x71, 0x1f, 0xd7, 0xa5, 0x28, 0x94, 0x61, 0x0d, 0x5f, 0x01, 0x65, 0xef, 0x6d, 0x7c, 0xce,
|
||||
0xc5, 0xe2, 0x2c, 0x0a, 0xb2, 0xf2, 0x56, 0xd8, 0x85, 0xa2, 0x38, 0x36, 0x34, 0x6b, 0xcf, 0x25,
|
||||
0xce, 0x21, 0xe9, 0xbe, 0xe5, 0x69, 0x00, 0x56, 0x28, 0x8b, 0xbc, 0x50, 0x06, 0x43, 0xdb, 0x4e,
|
||||
0x21, 0x90, 0xc4, 0x8a, 0x0d, 0xcd, 0x8b, 0x9a, 0xd4, 0xd0, 0xa6, 0xe3, 0x43, 0xdb, 0x95, 0xa2,
|
||||
0x50, 0x86, 0x35, 0x8b, 0x3d, 0xcf, 0xe5, 0xb5, 0x43, 0xac, 0xe9, 0x78, 0x4f, 0x27, 0x95, 0x99,
|
||||
0x78, 0xec, 0x6d, 0xc5, 0xbb, 0x51, 0x12, 0x0f, 0xdf, 0x02, 0xe7, 0xbc, 0xa6, 0x5d, 0x13, 0x07,
|
||||
0x24, 0x25, 0x4e, 0xf2, 0x9c, 0x20, 0x39, 0xb7, 0x95, 0x04, 0xa0, 0xb4, 0x0d, 0x7c, 0x1d, 0xcc,
|
||||
0x77, 0x2c, 0x5d, 0xe7, 0xf1, 0xd8, 0xb2, 0xfa, 0x26, 0xad, 0xcc, 0x72, 0x16, 0xc8, 0x72, 0xa8,
|
||||
0x15, 0xeb, 0x41, 0x09, 0x24, 0xbc, 0x07, 0x40, 0xc7, 0x2f, 0x07, 0x6e, 0x05, 0x64, 0x17, 0xfa,
|
||||
0x74, 0x1d, 0x0a, 0x0b, 0x70, 0xd0, 0xe4, 0xa2, 0x08, 0x9b, 0xfa, 0xb1, 0x02, 0x56, 0x32, 0x72,
|
||||
0x1c, 0xde, 0x8e, 0x55, 0xbd, 0xab, 0x89, 0xaa, 0x77, 0x21, 0xc3, 0x2c, 0x52, 0xfa, 0x3a, 0x60,
|
||||
0x8e, 0xe9, 0x0e, 0xcd, 0xec, 0x79, 0x10, 0xb1, 0x83, 0xbd, 0x28, 0xf3, 0x1d, 0x45, 0x81, 0xe1,
|
||||
0x36, 0x7c, 0x6e, 0x34, 0xac, 0xcd, 0xc5, 0xfa, 0x50, 0x9c, 0x53, 0xfd, 0x75, 0x0e, 0x80, 0x75,
|
||||
0x62, 0xeb, 0xd6, 0xc0, 0x20, 0xe6, 0x69, 0xa8, 0x96, 0xf5, 0x98, 0x6a, 0x51, 0xa5, 0x0b, 0x11,
|
||||
0xf8, 0x93, 0x29, 0x5b, 0x36, 0x12, 0xb2, 0xe5, 0xd2, 0x18, 0x9e, 0xa3, 0x75, 0xcb, 0xdf, 0xf3,
|
||||
0x60, 0x31, 0x04, 0x87, 0xc2, 0xe5, 0x56, 0x6c, 0x09, 0xaf, 0x24, 0x96, 0x70, 0x45, 0x62, 0xf2,
|
||||
0xd4, 0x94, 0xcb, 0xfb, 0x60, 0x9e, 0xe9, 0x0a, 0x6f, 0xd5, 0xb8, 0x6a, 0x99, 0x3e, 0xb6, 0x6a,
|
||||
0x09, 0xaa, 0xce, 0x46, 0x8c, 0x09, 0x25, 0x98, 0x33, 0x54, 0xd2, 0xcc, 0xd7, 0x51, 0x25, 0xfd,
|
||||
0x49, 0x01, 0xf3, 0xe1, 0x32, 0x9d, 0x82, 0x4c, 0x6a, 0xc5, 0x65, 0x52, 0xf5, 0xe8, 0xb8, 0xcc,
|
||||
0xd0, 0x49, 0x7f, 0x2b, 0x44, 0xbd, 0xe6, 0x42, 0x69, 0x95, 0x1d, 0xa8, 0x6c, 0x5d, 0xeb, 0x60,
|
||||
0x57, 0x94, 0xd5, 0x33, 0xde, 0x61, 0xca, 0x6b, 0x43, 0x41, 0x6f, 0x4c, 0x52, 0xe5, 0x9e, 0xae,
|
||||
0xa4, 0xca, 0x7f, 0x31, 0x92, 0xea, 0x0e, 0x28, 0xb9, 0xbe, 0x98, 0x2a, 0x70, 0xca, 0xcb, 0xe3,
|
||||
0xd2, 0x59, 0xe8, 0xa8, 0x80, 0x35, 0x50, 0x50, 0x01, 0x93, 0x4c, 0x3b, 0x15, 0xbf, 0x4c, 0xed,
|
||||
0xc4, 0xc2, 0xdb, 0xc6, 0x7d, 0x97, 0x74, 0x79, 0x2a, 0x95, 0xc2, 0xf0, 0xde, 0xe1, 0xad, 0x48,
|
||||
0xf4, 0xc2, 0x5d, 0xb0, 0x62, 0x3b, 0x56, 0xcf, 0x21, 0xae, 0xbb, 0x4e, 0x70, 0x57, 0xd7, 0x4c,
|
||||
0xe2, 0x0f, 0xc0, 0xab, 0x7a, 0x17, 0x46, 0xc3, 0xda, 0xca, 0x8e, 0x1c, 0x82, 0xb2, 0x6c, 0xd5,
|
||||
0x8f, 0x0a, 0xe0, 0x6c, 0x72, 0x47, 0xcc, 0x10, 0x22, 0xca, 0x89, 0x84, 0xc8, 0x4b, 0x91, 0x10,
|
||||
0xf5, 0x54, 0x5a, 0xe4, 0xcc, 0x9f, 0x0a, 0xd3, 0x35, 0xb0, 0x20, 0x84, 0x87, 0xdf, 0x29, 0xa4,
|
||||
0x58, 0xb0, 0x3c, 0xbb, 0xf1, 0x6e, 0x94, 0xc4, 0xc3, 0x5b, 0x60, 0xce, 0xe1, 0xda, 0xca, 0x27,
|
||||
0xf0, 0xf4, 0xc9, 0xb7, 0x04, 0xc1, 0x1c, 0x8a, 0x76, 0xa2, 0x38, 0x96, 0x69, 0x93, 0x50, 0x72,
|
||||
0xf8, 0x04, 0x85, 0xb8, 0x36, 0x59, 0x4b, 0x02, 0x50, 0xda, 0x06, 0x6e, 0x82, 0xc5, 0xbe, 0x99,
|
||||
0xa6, 0xf2, 0x62, 0xed, 0x82, 0xa0, 0x5a, 0xdc, 0x4d, 0x43, 0x90, 0xcc, 0x0e, 0xfe, 0x34, 0x26,
|
||||
0x57, 0xa6, 0xf9, 0x2e, 0x72, 0xe5, 0xe8, 0x74, 0x98, 0x58, 0xaf, 0x48, 0x74, 0x54, 0x69, 0x52,
|
||||
0x1d, 0xa5, 0x7e, 0xa8, 0x00, 0x98, 0x4e, 0xc1, 0xb1, 0x87, 0xfb, 0x94, 0x45, 0xa4, 0x44, 0x76,
|
||||
0xe5, 0x0a, 0xe7, 0xea, 0x78, 0x85, 0x13, 0xee, 0xa0, 0x93, 0x49, 0x1c, 0x31, 0xbd, 0xa7, 0x73,
|
||||
0x31, 0x33, 0x81, 0xc4, 0x09, 0xfd, 0x79, 0x32, 0x89, 0x13, 0xe1, 0x39, 0x5a, 0xe2, 0xfc, 0x2b,
|
||||
0x07, 0x16, 0x43, 0xf0, 0xc4, 0x12, 0x47, 0x62, 0xf2, 0xec, 0x72, 0x66, 0x32, 0xd9, 0x11, 0x4e,
|
||||
0xdd, 0x57, 0x44, 0x76, 0x84, 0x0e, 0x65, 0xc8, 0x8e, 0x3f, 0xe4, 0xa2, 0x5e, 0x1f, 0x53, 0x76,
|
||||
0x7c, 0x01, 0x57, 0x15, 0x5f, 0x3b, 0xe5, 0xa2, 0x7e, 0x92, 0x07, 0x67, 0x93, 0x29, 0x18, 0xab,
|
||||
0x83, 0xca, 0xd8, 0x3a, 0xb8, 0x03, 0x96, 0xee, 0xf7, 0x75, 0x7d, 0xc0, 0xc7, 0x10, 0x29, 0x86,
|
||||
0x5e, 0x05, 0xfd, 0xb6, 0xb0, 0x5c, 0xfa, 0xa1, 0x04, 0x83, 0xa4, 0x96, 0xe9, 0xb2, 0x58, 0x78,
|
||||
0xd2, 0xb2, 0x58, 0x3c, 0x41, 0x59, 0x94, 0x2b, 0x8b, 0xfc, 0x89, 0x94, 0xc5, 0xc4, 0x35, 0x51,
|
||||
0xb2, 0x5d, 0x8d, 0x3d, 0xc3, 0x8f, 0x14, 0xb0, 0x2c, 0x3f, 0x3e, 0x43, 0x1d, 0xcc, 0x1b, 0xf8,
|
||||
0x41, 0xf4, 0xf2, 0x62, 0x5c, 0xc1, 0xe8, 0x53, 0x4d, 0xaf, 0x7b, 0x5f, 0x77, 0xea, 0x6f, 0x9b,
|
||||
0x74, 0xdb, 0x69, 0x53, 0x47, 0x33, 0x7b, 0x5e, 0x81, 0xdd, 0x8c, 0x71, 0xa1, 0x04, 0x37, 0xbc,
|
||||
0x07, 0x4a, 0x06, 0x7e, 0xd0, 0xee, 0x3b, 0x3d, 0xbf, 0x10, 0x1e, 0xff, 0x3d, 0x3c, 0xf6, 0x37,
|
||||
0x05, 0x0b, 0x0a, 0xf8, 0xd4, 0xcf, 0x15, 0xb0, 0x92, 0x51, 0x41, 0xbf, 0x41, 0xa3, 0xfc, 0x48,
|
||||
0x01, 0x17, 0x63, 0xa3, 0x64, 0x19, 0x49, 0xee, 0xf7, 0x75, 0x9e, 0x9c, 0x42, 0xb0, 0x5c, 0x05,
|
||||
0xb3, 0x36, 0x76, 0xa8, 0x16, 0x28, 0xdd, 0x62, 0x73, 0x6e, 0x34, 0xac, 0xcd, 0xee, 0xf8, 0x8d,
|
||||
0x28, 0xec, 0x97, 0xcc, 0x4d, 0xee, 0xe9, 0xcd, 0x8d, 0xfa, 0x9b, 0x1c, 0x28, 0x47, 0x5c, 0x3e,
|
||||
0x05, 0xa9, 0xf2, 0x66, 0x4c, 0xaa, 0x48, 0x3f, 0xfe, 0x44, 0xe7, 0x30, 0x4b, 0xab, 0x6c, 0x26,
|
||||
0xb4, 0xca, 0xf7, 0xc6, 0x11, 0x1d, 0x2d, 0x56, 0xfe, 0x9d, 0x03, 0x4b, 0x11, 0x74, 0xa8, 0x56,
|
||||
0x7e, 0x10, 0x53, 0x2b, 0xab, 0x09, 0xb5, 0x52, 0x91, 0xd9, 0x3c, 0x93, 0x2b, 0xe3, 0xe5, 0xca,
|
||||
0x9f, 0x15, 0xb0, 0x10, 0x99, 0xbb, 0x53, 0xd0, 0x2b, 0xeb, 0x71, 0xbd, 0x52, 0x1b, 0x13, 0x2f,
|
||||
0x19, 0x82, 0xe5, 0x2e, 0x58, 0x8c, 0x80, 0xb6, 0x9d, 0xae, 0x66, 0x62, 0xdd, 0x85, 0xb7, 0xc1,
|
||||
0xa2, 0x28, 0xaf, 0x6d, 0x8a, 0x1d, 0xbf, 0xdd, 0xcf, 0x75, 0x9f, 0x89, 0xf7, 0x21, 0x19, 0x52,
|
||||
0xfd, 0x8f, 0x02, 0x1a, 0x11, 0xe2, 0x1d, 0xe2, 0xb8, 0x9a, 0x4b, 0x89, 0x49, 0xef, 0x5a, 0x7a,
|
||||
0xdf, 0x20, 0x2d, 0x1d, 0x6b, 0x06, 0x22, 0xac, 0x41, 0xb3, 0xcc, 0x1d, 0x4b, 0xd7, 0x3a, 0x03,
|
||||
0x88, 0x41, 0xf9, 0x83, 0x7d, 0x62, 0xae, 0x13, 0x9d, 0x50, 0xf1, 0xe9, 0x63, 0xb6, 0x79, 0xdb,
|
||||
0xff, 0x12, 0xf0, 0x6e, 0xd8, 0xf5, 0x78, 0x58, 0x5b, 0x9d, 0x84, 0x91, 0x07, 0x6e, 0x94, 0x13,
|
||||
0xfe, 0x1c, 0x00, 0xf6, 0xd8, 0xee, 0x60, 0xff, 0x43, 0xc8, 0x6c, 0xf3, 0x0d, 0x3f, 0xbd, 0xdf,
|
||||
0x0d, 0x7a, 0x8e, 0xf5, 0x82, 0x08, 0xa3, 0xfa, 0xfb, 0x52, 0x2c, 0x0c, 0xbe, 0xf1, 0xf7, 0x4e,
|
||||
0xbf, 0x04, 0x4b, 0x87, 0xe1, 0xec, 0xf8, 0x00, 0xa6, 0x97, 0x58, 0x4c, 0xbe, 0x20, 0xa5, 0x97,
|
||||
0xcd, 0x6b, 0xa8, 0xd2, 0xee, 0x4a, 0xe8, 0x90, 0xf4, 0x25, 0xf0, 0x15, 0x50, 0x66, 0x3a, 0x47,
|
||||
0xeb, 0x90, 0x2d, 0x6c, 0xf8, 0x29, 0x1a, 0x7c, 0x39, 0x6a, 0x87, 0x5d, 0x28, 0x8a, 0x83, 0xfb,
|
||||
0x60, 0xd1, 0xb6, 0xba, 0x9b, 0xd8, 0xc4, 0x3d, 0xc2, 0xaa, 0xb7, 0xb7, 0x94, 0xfc, 0x46, 0x6a,
|
||||
0xb6, 0xf9, 0xaa, 0x7f, 0xdb, 0xb0, 0x93, 0x86, 0xb0, 0xd3, 0x9c, 0xa4, 0x99, 0x07, 0x81, 0x8c,
|
||||
0x12, 0x1a, 0xa9, 0x0f, 0x9d, 0x33, 0xa9, 0x7f, 0x87, 0xc8, 0x72, 0xf5, 0x84, 0x9f, 0x3a, 0xb3,
|
||||
0xee, 0xda, 0x4a, 0x27, 0xba, 0x6b, 0x93, 0x9c, 0x46, 0x66, 0x8f, 0x79, 0x1a, 0xf9, 0x44, 0x01,
|
||||
0x97, 0xec, 0x09, 0xd2, 0xa8, 0x02, 0xf8, 0xb4, 0xb4, 0xc6, 0x4c, 0xcb, 0x24, 0x19, 0xd9, 0x5c,
|
||||
0x1d, 0x0d, 0x6b, 0x97, 0x26, 0x41, 0xa2, 0x89, 0x5c, 0x63, 0x49, 0x63, 0x89, 0x5d, 0xb1, 0x52,
|
||||
0xe6, 0x6e, 0x5e, 0x19, 0xe3, 0xa6, 0xbf, 0x89, 0x7a, 0x79, 0xe8, 0x3f, 0xa1, 0x80, 0x46, 0xfd,
|
||||
0xb0, 0x08, 0xce, 0xa5, 0x2a, 0xf9, 0x97, 0x78, 0x8f, 0x98, 0x3a, 0xed, 0xe4, 0x8f, 0x71, 0xda,
|
||||
0x59, 0x03, 0x0b, 0xe2, 0xe3, 0x73, 0xe2, 0xb0, 0x14, 0x84, 0x49, 0x2b, 0xde, 0x8d, 0x92, 0x78,
|
||||
0xd9, 0x3d, 0x66, 0xf1, 0x98, 0xf7, 0x98, 0x51, 0x2f, 0xc4, 0x7f, 0xa6, 0xbc, 0x7c, 0x4e, 0x7b,
|
||||
0x21, 0xfe, 0x3a, 0x95, 0xc4, 0xc3, 0x37, 0xfc, 0x64, 0x0d, 0x18, 0x66, 0x38, 0x43, 0x22, 0xfb,
|
||||
0x02, 0x82, 0x04, 0xfa, 0x89, 0x3e, 0xb0, 0xbe, 0x27, 0xf9, 0xc0, 0xba, 0x3a, 0x26, 0xcc, 0x26,
|
||||
0xbf, 0xb2, 0x94, 0x1e, 0x48, 0xcb, 0xc7, 0x3f, 0x90, 0xaa, 0x7f, 0x55, 0xc0, 0x73, 0x99, 0xdb,
|
||||
0x14, 0x5c, 0x8b, 0x29, 0xcb, 0x6b, 0x09, 0x65, 0xf9, 0x7c, 0xa6, 0x61, 0x44, 0x5e, 0x1a, 0xf2,
|
||||
0xdb, 0xcc, 0x9b, 0x63, 0x6f, 0x33, 0x25, 0xa7, 0x94, 0xf1, 0xd7, 0x9a, 0xcd, 0xd7, 0x1e, 0x3e,
|
||||
0xaa, 0x4e, 0x7d, 0xfa, 0xa8, 0x3a, 0xf5, 0xd9, 0xa3, 0xea, 0xd4, 0xaf, 0x46, 0x55, 0xe5, 0xe1,
|
||||
0xa8, 0xaa, 0x7c, 0x3a, 0xaa, 0x2a, 0x9f, 0x8d, 0xaa, 0xca, 0x3f, 0x46, 0x55, 0xe5, 0x77, 0x9f,
|
||||
0x57, 0xa7, 0xee, 0xc1, 0xf4, 0x3f, 0x36, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x67, 0x59, 0x8d,
|
||||
0x9b, 0xdf, 0x29, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *ControllerRevision) Marshal() (dAtA []byte, err error) {
|
||||
@ -2341,6 +2374,32 @@ func (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.Start))
|
||||
i--
|
||||
dAtA[i] = 0x8
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -2394,6 +2453,18 @@ func (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if m.Ordinals != nil {
|
||||
{
|
||||
size, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x5a
|
||||
}
|
||||
if m.PersistentVolumeClaimRetentionPolicy != nil {
|
||||
{
|
||||
size, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -3054,6 +3125,16 @@ func (m *StatefulSetList) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
n += 1 + sovGenerated(uint64(m.Start))
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -3102,6 +3183,10 @@ func (m *StatefulSetSpec) Size() (n int) {
|
||||
l = m.PersistentVolumeClaimRetentionPolicy.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
if m.Ordinals != nil {
|
||||
l = m.Ordinals.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@ -3516,6 +3601,16 @@ func (this *StatefulSetList) String() string {
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *StatefulSetOrdinals) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
s := strings.Join([]string{`&StatefulSetOrdinals{`,
|
||||
`Start:` + fmt.Sprintf("%v", this.Start) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
@ -3547,6 +3642,7 @@ func (this *StatefulSetSpec) String() string {
|
||||
`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,
|
||||
`MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`,
|
||||
`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), "StatefulSetPersistentVolumeClaimRetentionPolicy", "StatefulSetPersistentVolumeClaimRetentionPolicy", 1) + `,`,
|
||||
`Ordinals:` + strings.Replace(this.Ordinals.String(), "StatefulSetOrdinals", "StatefulSetOrdinals", 1) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@ -7626,6 +7722,75 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: StatefulSetOrdinals: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: StatefulSetOrdinals: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
|
||||
}
|
||||
m.Start = 0
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
m.Start |= int32(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
@ -8064,6 +8229,42 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 11:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Ordinals", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.Ordinals == nil {
|
||||
m.Ordinals = &StatefulSetOrdinals{}
|
||||
}
|
||||
if err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
|
@ -622,6 +622,17 @@ message StatefulSetList {
|
||||
repeated StatefulSet items = 2;
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
message StatefulSetOrdinals {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
optional int32 replicaStartOrdinal = 1;
|
||||
}
|
||||
|
||||
// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs
|
||||
// created from the StatefulSet VolumeClaimTemplates.
|
||||
message StatefulSetPersistentVolumeClaimRetentionPolicy {
|
||||
@ -713,6 +724,14 @@ message StatefulSetSpec {
|
||||
// down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,
|
||||
// which is alpha. +optional
|
||||
optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
optional StatefulSetOrdinals ordinals = 11;
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
@ -163,6 +163,17 @@ type StatefulSetPersistentVolumeClaimRetentionPolicy struct {
|
||||
WhenScaled PersistentVolumeClaimRetentionPolicyType `json:"whenScaled,omitempty" protobuf:"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType"`
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
type StatefulSetOrdinals struct {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
Start int32 `json:"start" protobuf:"varint,1,opt,name=start"`
|
||||
}
|
||||
|
||||
// A StatefulSetSpec is the specification of a StatefulSet.
|
||||
type StatefulSetSpec struct {
|
||||
// replicas is the desired number of replicas of the given Template.
|
||||
@ -237,6 +248,14 @@ type StatefulSetSpec struct {
|
||||
// down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,
|
||||
// which is alpha. +optional
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"`
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
Ordinals *StatefulSetOrdinals `json:"ordinals,omitempty" protobuf:"bytes,11,opt,name=ordinals"`
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
@ -324,6 +324,15 @@ func (StatefulSetList) SwaggerDoc() map[string]string {
|
||||
return map_StatefulSetList
|
||||
}
|
||||
|
||||
var map_StatefulSetOrdinals = map[string]string{
|
||||
"": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
"start": "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
}
|
||||
|
||||
func (StatefulSetOrdinals) SwaggerDoc() map[string]string {
|
||||
return map_StatefulSetOrdinals
|
||||
}
|
||||
|
||||
var map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{
|
||||
"": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
|
||||
"whenDeleted": "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.",
|
||||
@ -346,6 +355,7 @@ var map_StatefulSetSpec = map[string]string{
|
||||
"revisionHistoryLimit": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.",
|
||||
"minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
|
||||
"persistentVolumeClaimRetentionPolicy": "persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha. +optional",
|
||||
"ordinals": "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha.",
|
||||
}
|
||||
|
||||
func (StatefulSetSpec) SwaggerDoc() map[string]string {
|
||||
|
@ -693,6 +693,22 @@ func (in *StatefulSetList) DeepCopyObject() runtime.Object {
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.
|
||||
func (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(StatefulSetOrdinals)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {
|
||||
*out = *in
|
||||
@ -741,6 +757,11 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {
|
||||
*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)
|
||||
**out = **in
|
||||
}
|
||||
if in.Ordinals != nil {
|
||||
in, out := &in.Ordinals, &out.Ordinals
|
||||
*out = new(StatefulSetOrdinals)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
459
staging/src/k8s.io/api/apps/v1beta1/generated.pb.go
generated
459
staging/src/k8s.io/api/apps/v1beta1/generated.pb.go
generated
@ -553,12 +553,40 @@ func (m *StatefulSetList) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_StatefulSetList proto.InternalMessageInfo
|
||||
|
||||
func (m *StatefulSetOrdinals) Reset() { *m = StatefulSetOrdinals{} }
|
||||
func (*StatefulSetOrdinals) ProtoMessage() {}
|
||||
func (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2a07313e8f66e805, []int{18}
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_StatefulSetOrdinals.Merge(m, src)
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {
|
||||
*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}
|
||||
}
|
||||
func (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}
|
||||
func (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2a07313e8f66e805, []int{18}
|
||||
return fileDescriptor_2a07313e8f66e805, []int{19}
|
||||
}
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -586,7 +614,7 @@ var xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.Intern
|
||||
func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} }
|
||||
func (*StatefulSetSpec) ProtoMessage() {}
|
||||
func (*StatefulSetSpec) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2a07313e8f66e805, []int{19}
|
||||
return fileDescriptor_2a07313e8f66e805, []int{20}
|
||||
}
|
||||
func (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -614,7 +642,7 @@ var xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo
|
||||
func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} }
|
||||
func (*StatefulSetStatus) ProtoMessage() {}
|
||||
func (*StatefulSetStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2a07313e8f66e805, []int{20}
|
||||
return fileDescriptor_2a07313e8f66e805, []int{21}
|
||||
}
|
||||
func (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -642,7 +670,7 @@ var xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo
|
||||
func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} }
|
||||
func (*StatefulSetUpdateStrategy) ProtoMessage() {}
|
||||
func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2a07313e8f66e805, []int{21}
|
||||
return fileDescriptor_2a07313e8f66e805, []int{22}
|
||||
}
|
||||
func (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -688,6 +716,7 @@ func init() {
|
||||
proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1beta1.StatefulSet")
|
||||
proto.RegisterType((*StatefulSetCondition)(nil), "k8s.io.api.apps.v1beta1.StatefulSetCondition")
|
||||
proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1beta1.StatefulSetList")
|
||||
proto.RegisterType((*StatefulSetOrdinals)(nil), "k8s.io.api.apps.v1beta1.StatefulSetOrdinals")
|
||||
proto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), "k8s.io.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy")
|
||||
proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1beta1.StatefulSetSpec")
|
||||
proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1beta1.StatefulSetStatus")
|
||||
@ -699,131 +728,135 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_2a07313e8f66e805 = []byte{
|
||||
// 1982 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcf, 0x6f, 0x1b, 0xc7,
|
||||
0xf5, 0xd7, 0x52, 0xa2, 0x44, 0x3d, 0x45, 0x94, 0x3d, 0xd2, 0xd7, 0x62, 0x94, 0x6f, 0x49, 0x81,
|
||||
0x35, 0x12, 0xe5, 0x87, 0x97, 0xb1, 0x92, 0x06, 0x89, 0xdd, 0xba, 0x15, 0x25, 0x37, 0x76, 0x20,
|
||||
0xc5, 0xca, 0x48, 0x8a, 0xd1, 0xf4, 0x07, 0x32, 0x24, 0xc7, 0xd4, 0x46, 0xfb, 0x0b, 0xbb, 0x43,
|
||||
0xc6, 0x44, 0x2f, 0xfd, 0x03, 0x0a, 0xa4, 0xe7, 0xfe, 0x15, 0xbd, 0xb5, 0x68, 0xd1, 0x4b, 0x0f,
|
||||
0x85, 0x8f, 0x41, 0x2f, 0x4d, 0x2f, 0x44, 0xcd, 0x5c, 0xdb, 0x5b, 0x7b, 0x31, 0x50, 0xa0, 0x98,
|
||||
0xd9, 0xd9, 0xdf, 0xbb, 0xd2, 0xb2, 0x80, 0x05, 0xb4, 0x37, 0xed, 0xbc, 0xf7, 0x3e, 0x6f, 0xe6,
|
||||
0xcd, 0x7b, 0x6f, 0xde, 0x87, 0x82, 0xef, 0x9d, 0xbd, 0xeb, 0xaa, 0x9a, 0xd5, 0x3a, 0x1b, 0x74,
|
||||
0xa8, 0x63, 0x52, 0x46, 0xdd, 0xd6, 0x90, 0x9a, 0x3d, 0xcb, 0x69, 0x49, 0x01, 0xb1, 0xb5, 0x16,
|
||||
0xb1, 0x6d, 0xb7, 0x35, 0xbc, 0xd9, 0xa1, 0x8c, 0xdc, 0x6c, 0xf5, 0xa9, 0x49, 0x1d, 0xc2, 0x68,
|
||||
0x4f, 0xb5, 0x1d, 0x8b, 0x59, 0x68, 0xdd, 0x53, 0x54, 0x89, 0xad, 0xa9, 0x5c, 0x51, 0x95, 0x8a,
|
||||
0x1b, 0x37, 0xfa, 0x1a, 0x3b, 0x1d, 0x74, 0xd4, 0xae, 0x65, 0xb4, 0xfa, 0x56, 0xdf, 0x6a, 0x09,
|
||||
0xfd, 0xce, 0xe0, 0x91, 0xf8, 0x12, 0x1f, 0xe2, 0x2f, 0x0f, 0x67, 0xa3, 0x19, 0x71, 0xd8, 0xb5,
|
||||
0x1c, 0xda, 0x1a, 0xa6, 0x7c, 0x6d, 0xbc, 0x1d, 0xea, 0x18, 0xa4, 0x7b, 0xaa, 0x99, 0xd4, 0x19,
|
||||
0xb5, 0xec, 0xb3, 0x3e, 0x5f, 0x70, 0x5b, 0x06, 0x65, 0x24, 0xcb, 0xaa, 0x95, 0x67, 0xe5, 0x0c,
|
||||
0x4c, 0xa6, 0x19, 0x34, 0x65, 0xf0, 0xce, 0x45, 0x06, 0x6e, 0xf7, 0x94, 0x1a, 0x24, 0x65, 0xf7,
|
||||
0x56, 0x9e, 0xdd, 0x80, 0x69, 0x7a, 0x4b, 0x33, 0x99, 0xcb, 0x9c, 0xa4, 0x51, 0xf3, 0x9f, 0x0a,
|
||||
0xa0, 0x5d, 0xcb, 0x64, 0x8e, 0xa5, 0xeb, 0xd4, 0xc1, 0x74, 0xa8, 0xb9, 0x9a, 0x65, 0xa2, 0x4f,
|
||||
0xa1, 0xc2, 0xcf, 0xd3, 0x23, 0x8c, 0xd4, 0x94, 0x4d, 0x65, 0x6b, 0x69, 0xfb, 0x4d, 0x35, 0x8c,
|
||||
0x74, 0x00, 0xaf, 0xda, 0x67, 0x7d, 0xbe, 0xe0, 0xaa, 0x5c, 0x5b, 0x1d, 0xde, 0x54, 0x1f, 0x74,
|
||||
0x3e, 0xa3, 0x5d, 0x76, 0x40, 0x19, 0x69, 0xa3, 0x27, 0xe3, 0xc6, 0xcc, 0x64, 0xdc, 0x80, 0x70,
|
||||
0x0d, 0x07, 0xa8, 0xe8, 0x01, 0xcc, 0x09, 0xf4, 0x92, 0x40, 0xbf, 0x91, 0x8b, 0x2e, 0x0f, 0xad,
|
||||
0x62, 0xf2, 0xf9, 0xdd, 0xc7, 0x8c, 0x9a, 0x7c, 0x7b, 0xed, 0x17, 0x24, 0xf4, 0xdc, 0x1e, 0x61,
|
||||
0x04, 0x0b, 0x20, 0xf4, 0x06, 0x54, 0x1c, 0xb9, 0xfd, 0xda, 0xec, 0xa6, 0xb2, 0x35, 0xdb, 0xbe,
|
||||
0x22, 0xb5, 0x2a, 0xfe, 0xb1, 0x70, 0xa0, 0xd1, 0x7c, 0xa2, 0xc0, 0xb5, 0xf4, 0xb9, 0xf7, 0x35,
|
||||
0x97, 0xa1, 0x1f, 0xa5, 0xce, 0xae, 0x16, 0x3b, 0x3b, 0xb7, 0x16, 0x27, 0x0f, 0x1c, 0xfb, 0x2b,
|
||||
0x91, 0x73, 0x1f, 0x42, 0x59, 0x63, 0xd4, 0x70, 0x6b, 0xa5, 0xcd, 0xd9, 0xad, 0xa5, 0xed, 0xd7,
|
||||
0xd5, 0x9c, 0x04, 0x56, 0xd3, 0xbb, 0x6b, 0x2f, 0x4b, 0xdc, 0xf2, 0x7d, 0x8e, 0x80, 0x3d, 0xa0,
|
||||
0xe6, 0xcf, 0x4b, 0x00, 0x7b, 0xd4, 0xd6, 0xad, 0x91, 0x41, 0x4d, 0x76, 0x09, 0x57, 0x77, 0x1f,
|
||||
0xe6, 0x5c, 0x9b, 0x76, 0xe5, 0xd5, 0xbd, 0x92, 0x7b, 0x82, 0x70, 0x53, 0x47, 0x36, 0xed, 0x86,
|
||||
0x97, 0xc6, 0xbf, 0xb0, 0x80, 0x40, 0x1f, 0xc1, 0xbc, 0xcb, 0x08, 0x1b, 0xb8, 0xe2, 0xca, 0x96,
|
||||
0xb6, 0x5f, 0x2d, 0x02, 0x26, 0x0c, 0xda, 0x55, 0x09, 0x37, 0xef, 0x7d, 0x63, 0x09, 0xd4, 0xfc,
|
||||
0xf3, 0x2c, 0xac, 0x86, 0xca, 0xbb, 0x96, 0xd9, 0xd3, 0x18, 0x4f, 0xe9, 0xdb, 0x30, 0xc7, 0x46,
|
||||
0x36, 0x15, 0x31, 0x59, 0x6c, 0xbf, 0xe2, 0x6f, 0xe6, 0x78, 0x64, 0xd3, 0x67, 0xe3, 0xc6, 0x7a,
|
||||
0x86, 0x09, 0x17, 0x61, 0x61, 0x84, 0xf6, 0x83, 0x7d, 0x96, 0x84, 0xf9, 0xdb, 0x71, 0xe7, 0xcf,
|
||||
0xc6, 0x8d, 0x8c, 0x06, 0xa2, 0x06, 0x48, 0xf1, 0x2d, 0xa2, 0xcf, 0xa0, 0xaa, 0x13, 0x97, 0x9d,
|
||||
0xd8, 0x3d, 0xc2, 0xe8, 0xb1, 0x66, 0xd0, 0xda, 0xbc, 0x38, 0xfd, 0x6b, 0xc5, 0x2e, 0x8a, 0x5b,
|
||||
0xb4, 0xaf, 0xc9, 0x1d, 0x54, 0xf7, 0x63, 0x48, 0x38, 0x81, 0x8c, 0x86, 0x80, 0xf8, 0xca, 0xb1,
|
||||
0x43, 0x4c, 0xd7, 0x3b, 0x15, 0xf7, 0xb7, 0x30, 0xb5, 0xbf, 0x0d, 0xe9, 0x0f, 0xed, 0xa7, 0xd0,
|
||||
0x70, 0x86, 0x07, 0xf4, 0x32, 0xcc, 0x3b, 0x94, 0xb8, 0x96, 0x59, 0x9b, 0x13, 0x11, 0x0b, 0xae,
|
||||
0x0b, 0x8b, 0x55, 0x2c, 0xa5, 0xe8, 0x55, 0x58, 0x30, 0xa8, 0xeb, 0x92, 0x3e, 0xad, 0x95, 0x85,
|
||||
0xe2, 0x8a, 0x54, 0x5c, 0x38, 0xf0, 0x96, 0xb1, 0x2f, 0x6f, 0xfe, 0x46, 0x81, 0x6a, 0x78, 0x4d,
|
||||
0x97, 0x50, 0xab, 0xf7, 0xe2, 0xb5, 0xfa, 0xcd, 0x02, 0xc9, 0x99, 0x53, 0xa3, 0x7f, 0x2b, 0x01,
|
||||
0x0a, 0x95, 0xb0, 0xa5, 0xeb, 0x1d, 0xd2, 0x3d, 0x43, 0x9b, 0x30, 0x67, 0x12, 0xc3, 0xcf, 0xc9,
|
||||
0xa0, 0x40, 0x3e, 0x24, 0x06, 0xc5, 0x42, 0x82, 0xbe, 0x50, 0x00, 0x0d, 0xc4, 0x6d, 0xf6, 0x76,
|
||||
0x4c, 0xd3, 0x62, 0x84, 0x07, 0xd8, 0xdf, 0xd0, 0x6e, 0x81, 0x0d, 0xf9, 0xbe, 0xd4, 0x93, 0x14,
|
||||
0xca, 0x5d, 0x93, 0x39, 0xa3, 0xf0, 0x62, 0xd3, 0x0a, 0x38, 0xc3, 0x35, 0xfa, 0x21, 0x80, 0x23,
|
||||
0x31, 0x8f, 0x2d, 0x59, 0xb6, 0xf9, 0x3d, 0xc0, 0x77, 0xbf, 0x6b, 0x99, 0x8f, 0xb4, 0x7e, 0xd8,
|
||||
0x58, 0x70, 0x00, 0x81, 0x23, 0x70, 0x1b, 0x77, 0x61, 0x3d, 0x67, 0x9f, 0xe8, 0x0a, 0xcc, 0x9e,
|
||||
0xd1, 0x91, 0x17, 0x2a, 0xcc, 0xff, 0x44, 0x6b, 0x50, 0x1e, 0x12, 0x7d, 0x40, 0xbd, 0x9a, 0xc4,
|
||||
0xde, 0xc7, 0xad, 0xd2, 0xbb, 0x4a, 0xf3, 0x57, 0xe5, 0x68, 0xa6, 0xf0, 0x7e, 0x83, 0xb6, 0xf8,
|
||||
0xf3, 0x60, 0xeb, 0x5a, 0x97, 0xb8, 0x02, 0xa3, 0xdc, 0x7e, 0xc1, 0x7b, 0x1a, 0xbc, 0x35, 0x1c,
|
||||
0x48, 0xd1, 0x8f, 0xa1, 0xe2, 0x52, 0x9d, 0x76, 0x99, 0xe5, 0xc8, 0x16, 0xf7, 0x56, 0xc1, 0x9c,
|
||||
0x22, 0x1d, 0xaa, 0x1f, 0x49, 0x53, 0x0f, 0xde, 0xff, 0xc2, 0x01, 0x24, 0xfa, 0x08, 0x2a, 0x8c,
|
||||
0x1a, 0xb6, 0x4e, 0x18, 0x95, 0xd1, 0x8b, 0xe5, 0x15, 0xef, 0x1d, 0x1c, 0xec, 0xd0, 0xea, 0x1d,
|
||||
0x4b, 0x35, 0xd1, 0x3d, 0x83, 0x3c, 0xf5, 0x57, 0x71, 0x00, 0x83, 0x7e, 0x00, 0x15, 0x97, 0xf1,
|
||||
0x57, 0xbd, 0x3f, 0x12, 0xd5, 0x76, 0xde, 0xb3, 0x12, 0xed, 0xa3, 0x9e, 0x49, 0x08, 0xed, 0xaf,
|
||||
0xe0, 0x00, 0x0e, 0xed, 0xc0, 0x8a, 0xa1, 0x99, 0x98, 0x92, 0xde, 0xe8, 0x88, 0x76, 0x2d, 0xb3,
|
||||
0xe7, 0x8a, 0x32, 0x2d, 0xb7, 0xd7, 0xa5, 0xd1, 0xca, 0x41, 0x5c, 0x8c, 0x93, 0xfa, 0x68, 0x1f,
|
||||
0xd6, 0xfc, 0x67, 0xf7, 0x9e, 0xe6, 0x32, 0xcb, 0x19, 0xed, 0x6b, 0x86, 0xc6, 0x44, 0xcf, 0x2b,
|
||||
0xb7, 0x6b, 0x93, 0x71, 0x63, 0x0d, 0x67, 0xc8, 0x71, 0xa6, 0x15, 0xef, 0x2b, 0x36, 0x19, 0xb8,
|
||||
0xb4, 0x27, 0x7a, 0x58, 0x25, 0xec, 0x2b, 0x87, 0x62, 0x15, 0x4b, 0x29, 0x7a, 0x18, 0x4b, 0xd3,
|
||||
0xca, 0x74, 0x69, 0x5a, 0xcd, 0x4f, 0x51, 0x74, 0x02, 0xeb, 0xb6, 0x63, 0xf5, 0x1d, 0xea, 0xba,
|
||||
0x7b, 0x94, 0xf4, 0x74, 0xcd, 0xa4, 0x7e, 0x64, 0x16, 0xc5, 0x89, 0x5e, 0x9a, 0x8c, 0x1b, 0xeb,
|
||||
0x87, 0xd9, 0x2a, 0x38, 0xcf, 0xb6, 0xf9, 0x87, 0x39, 0xb8, 0x92, 0x7c, 0xe3, 0xd0, 0x07, 0x80,
|
||||
0xac, 0x8e, 0x4b, 0x9d, 0x21, 0xed, 0xbd, 0xef, 0x0d, 0x6e, 0x7c, 0xba, 0x51, 0xc4, 0x74, 0x13,
|
||||
0xd4, 0xed, 0x83, 0x94, 0x06, 0xce, 0xb0, 0xf2, 0xe6, 0x23, 0x59, 0x00, 0x25, 0xb1, 0xd1, 0xc8,
|
||||
0x7c, 0x94, 0x2a, 0x82, 0x1d, 0x58, 0x91, 0xb5, 0xef, 0x0b, 0x45, 0xb2, 0x46, 0xee, 0xfd, 0x24,
|
||||
0x2e, 0xc6, 0x49, 0x7d, 0x74, 0x1b, 0x96, 0x1d, 0x9e, 0x07, 0x01, 0xc0, 0x82, 0x00, 0xf8, 0x3f,
|
||||
0x09, 0xb0, 0x8c, 0xa3, 0x42, 0x1c, 0xd7, 0x45, 0xef, 0xc3, 0x55, 0x32, 0x24, 0x9a, 0x4e, 0x3a,
|
||||
0x3a, 0x0d, 0x00, 0xe6, 0x04, 0xc0, 0x8b, 0x12, 0xe0, 0xea, 0x4e, 0x52, 0x01, 0xa7, 0x6d, 0xd0,
|
||||
0x01, 0xac, 0x0e, 0xcc, 0x34, 0x94, 0x97, 0xc4, 0x2f, 0x49, 0xa8, 0xd5, 0x93, 0xb4, 0x0a, 0xce,
|
||||
0xb2, 0x43, 0x9f, 0x02, 0x74, 0xfd, 0x57, 0xdd, 0xad, 0xcd, 0x8b, 0x36, 0xfc, 0x46, 0x81, 0x62,
|
||||
0x0b, 0x46, 0x81, 0xb0, 0x05, 0x06, 0x4b, 0x2e, 0x8e, 0x60, 0xa2, 0x5b, 0x50, 0xed, 0x5a, 0xba,
|
||||
0x2e, 0x32, 0x7f, 0xd7, 0x1a, 0x98, 0x4c, 0x24, 0x6f, 0xb9, 0x8d, 0xf8, 0x63, 0xbf, 0x1b, 0x93,
|
||||
0xe0, 0x84, 0x66, 0xf3, 0x77, 0x4a, 0xf4, 0x99, 0xf1, 0xcb, 0x19, 0xdd, 0x8a, 0x8d, 0x3e, 0x2f,
|
||||
0x27, 0x46, 0x9f, 0x6b, 0x69, 0x8b, 0xc8, 0xe4, 0xa3, 0xc1, 0x32, 0x4f, 0x7e, 0xcd, 0xec, 0x7b,
|
||||
0x17, 0x2e, 0x5b, 0xe2, 0x9b, 0xe7, 0x96, 0x52, 0xa0, 0x1d, 0x79, 0x18, 0xaf, 0x8a, 0x3b, 0x8f,
|
||||
0x0a, 0x71, 0x1c, 0xb9, 0x79, 0x07, 0xaa, 0xf1, 0x3a, 0x8c, 0xcd, 0xf4, 0xca, 0x85, 0x33, 0xfd,
|
||||
0xd7, 0x0a, 0xac, 0xe7, 0x78, 0x47, 0x3a, 0x54, 0x0d, 0xf2, 0x38, 0x72, 0xcd, 0x17, 0xce, 0xc6,
|
||||
0x9c, 0x35, 0xa9, 0x1e, 0x6b, 0x52, 0xef, 0x9b, 0xec, 0x81, 0x73, 0xc4, 0x1c, 0xcd, 0xec, 0x7b,
|
||||
0xf7, 0x70, 0x10, 0xc3, 0xc2, 0x09, 0x6c, 0xf4, 0x09, 0x54, 0x0c, 0xf2, 0xf8, 0x68, 0xe0, 0xf4,
|
||||
0xb3, 0xe2, 0x55, 0xcc, 0x8f, 0x78, 0x3f, 0x0e, 0x24, 0x0a, 0x0e, 0xf0, 0x9a, 0xbf, 0x57, 0x60,
|
||||
0x33, 0x76, 0x4a, 0xde, 0x2b, 0xe8, 0xa3, 0x81, 0x7e, 0x44, 0xc3, 0x1b, 0x7f, 0x1d, 0x16, 0x6d,
|
||||
0xe2, 0x30, 0x2d, 0xe8, 0x17, 0xe5, 0xf6, 0xf2, 0x64, 0xdc, 0x58, 0x3c, 0xf4, 0x17, 0x71, 0x28,
|
||||
0xcf, 0x88, 0x4d, 0xe9, 0xf9, 0xc5, 0xa6, 0xf9, 0x2f, 0x05, 0xca, 0x47, 0x5d, 0xa2, 0xd3, 0x4b,
|
||||
0x60, 0x2a, 0x7b, 0x31, 0xa6, 0xd2, 0xcc, 0xcd, 0x59, 0xb1, 0x9f, 0x5c, 0x92, 0xb2, 0x9f, 0x20,
|
||||
0x29, 0xd7, 0x2f, 0xc0, 0x39, 0x9f, 0x9f, 0xbc, 0x07, 0x8b, 0x81, 0xbb, 0x58, 0x53, 0x56, 0x2e,
|
||||
0x6a, 0xca, 0xcd, 0x5f, 0x96, 0x60, 0x29, 0xe2, 0x62, 0x3a, 0x6b, 0x1e, 0xee, 0xc8, 0x5c, 0xc3,
|
||||
0x1b, 0xd7, 0x76, 0x91, 0x83, 0xa8, 0xfe, 0x0c, 0xe3, 0x8d, 0x8b, 0xe1, 0xb0, 0x90, 0x1e, 0x6d,
|
||||
0xee, 0x40, 0x95, 0x11, 0xa7, 0x4f, 0x99, 0x2f, 0x13, 0x01, 0x5b, 0x0c, 0xb9, 0xca, 0x71, 0x4c,
|
||||
0x8a, 0x13, 0xda, 0x1b, 0xb7, 0x61, 0x39, 0xe6, 0x6c, 0xaa, 0x99, 0xef, 0x0b, 0x1e, 0x9c, 0xb0,
|
||||
0x14, 0x2e, 0x21, 0xbb, 0x3e, 0x88, 0x65, 0xd7, 0x56, 0x7e, 0x30, 0x23, 0x05, 0x9a, 0x97, 0x63,
|
||||
0x38, 0x91, 0x63, 0xaf, 0x15, 0x42, 0x3b, 0x3f, 0xd3, 0xfe, 0x5e, 0x82, 0xb5, 0x88, 0x76, 0x48,
|
||||
0x85, 0xbf, 0x1d, 0x7b, 0x0f, 0xb6, 0x12, 0xef, 0x41, 0x2d, 0xcb, 0xe6, 0xb9, 0x71, 0xe1, 0x6c,
|
||||
0x7e, 0x3a, 0xfb, 0xdf, 0xc8, 0x4f, 0x7f, 0xab, 0xc0, 0x4a, 0x24, 0x76, 0x97, 0x40, 0x50, 0xef,
|
||||
0xc7, 0x09, 0xea, 0xf5, 0x22, 0x49, 0x93, 0xc3, 0x50, 0xff, 0xa1, 0x40, 0x2b, 0xa2, 0x75, 0x48,
|
||||
0x1d, 0x57, 0x73, 0x19, 0x35, 0xd9, 0xc7, 0x96, 0x3e, 0x30, 0xe8, 0xae, 0x4e, 0x34, 0x03, 0x53,
|
||||
0xbe, 0xa0, 0x59, 0xe6, 0xa1, 0xa5, 0x6b, 0xdd, 0x11, 0x22, 0xb0, 0xf4, 0xf9, 0x29, 0x35, 0xf7,
|
||||
0xa8, 0x4e, 0x19, 0xed, 0xc9, 0x74, 0xfa, 0xae, 0x84, 0x5f, 0x7a, 0x18, 0x8a, 0x9e, 0x8d, 0x1b,
|
||||
0x5b, 0x45, 0x10, 0x45, 0x96, 0x45, 0x31, 0xd1, 0x4f, 0x00, 0xf8, 0xa7, 0xe8, 0x47, 0x3d, 0x99,
|
||||
0x70, 0x77, 0xfc, 0xaa, 0x7c, 0x18, 0x48, 0xa6, 0x72, 0x10, 0x41, 0x6c, 0xfe, 0x65, 0x21, 0x76,
|
||||
0x67, 0xff, 0xf3, 0x54, 0xf1, 0xa7, 0xb0, 0x36, 0x0c, 0xa3, 0xe3, 0x2b, 0xf0, 0xd1, 0x7a, 0x36,
|
||||
0xf9, 0xf3, 0x5b, 0x00, 0x9f, 0x15, 0xd7, 0xf6, 0xff, 0x4b, 0x27, 0x6b, 0x1f, 0x67, 0xc0, 0xe1,
|
||||
0x4c, 0x27, 0xe8, 0x5b, 0xb0, 0xc4, 0x69, 0x89, 0xd6, 0xa5, 0x1f, 0x12, 0xc3, 0xaf, 0xa7, 0x55,
|
||||
0x3f, 0x5f, 0x8e, 0x42, 0x11, 0x8e, 0xea, 0xa1, 0x53, 0x58, 0xb5, 0xad, 0xde, 0x01, 0x31, 0x49,
|
||||
0x9f, 0xf2, 0x61, 0xce, 0xbb, 0x4a, 0xc1, 0x1f, 0x17, 0xdb, 0xef, 0xf8, 0x23, 0xfc, 0x61, 0x5a,
|
||||
0xe5, 0x19, 0x27, 0x62, 0xe9, 0x65, 0x91, 0x04, 0x59, 0x90, 0xc8, 0x81, 0xea, 0x40, 0xce, 0x54,
|
||||
0x92, 0x4e, 0x7b, 0x3f, 0x94, 0x6d, 0x17, 0x29, 0xac, 0x93, 0x98, 0x65, 0xf8, 0xe8, 0xc5, 0xd7,
|
||||
0x71, 0xc2, 0x43, 0x2e, 0x3d, 0xae, 0xfc, 0x47, 0xf4, 0x38, 0x83, 0xaf, 0x2f, 0x4e, 0xc9, 0xd7,
|
||||
0xff, 0xa8, 0xc0, 0x75, 0xbb, 0x40, 0x2d, 0xd5, 0x40, 0xc4, 0xe6, 0x5e, 0x91, 0xd8, 0x14, 0xa9,
|
||||
0xcd, 0xf6, 0xd6, 0x64, 0xdc, 0xb8, 0x5e, 0x44, 0x13, 0x17, 0xda, 0x5f, 0xf3, 0xd7, 0x65, 0xb8,
|
||||
0x9a, 0x7a, 0x2d, 0xd1, 0xf7, 0xcf, 0xe1, 0xd4, 0xd7, 0x9e, 0x1b, 0x9f, 0x4e, 0x91, 0xe1, 0xd9,
|
||||
0x29, 0xc8, 0xf0, 0x0e, 0xac, 0x74, 0x07, 0x8e, 0x43, 0x4d, 0x96, 0xa0, 0xc2, 0xc1, 0xa5, 0xee,
|
||||
0xc6, 0xc5, 0x38, 0xa9, 0x9f, 0xc5, 0xe7, 0xcb, 0x53, 0xf2, 0xf9, 0xe8, 0x2e, 0x24, 0x27, 0xf3,
|
||||
0x4a, 0x30, 0xbd, 0x0b, 0x49, 0xcd, 0x92, 0xfa, 0x7c, 0x40, 0xf4, 0x50, 0x03, 0x84, 0x85, 0xf8,
|
||||
0x80, 0x78, 0x12, 0x93, 0xe2, 0x84, 0x76, 0x06, 0x37, 0x5e, 0x2c, 0xca, 0x8d, 0x11, 0x89, 0x31,
|
||||
0x77, 0x10, 0xfd, 0xee, 0x46, 0x91, 0xdc, 0x2d, 0x4e, 0xdd, 0x33, 0x7f, 0xb4, 0x58, 0x9a, 0xfe,
|
||||
0x47, 0x8b, 0xe6, 0x9f, 0x14, 0x78, 0x31, 0xb7, 0xb3, 0xa0, 0x9d, 0xd8, 0xf8, 0x76, 0x23, 0x31,
|
||||
0xbe, 0x7d, 0x23, 0xd7, 0x30, 0x32, 0xc3, 0x39, 0xd9, 0xac, 0xfe, 0xbd, 0x62, 0xac, 0x3e, 0x83,
|
||||
0x71, 0x5e, 0x4c, 0xef, 0xdb, 0xdf, 0x79, 0xf2, 0xb4, 0x3e, 0xf3, 0xe5, 0xd3, 0xfa, 0xcc, 0x57,
|
||||
0x4f, 0xeb, 0x33, 0x3f, 0x9b, 0xd4, 0x95, 0x27, 0x93, 0xba, 0xf2, 0xe5, 0xa4, 0xae, 0x7c, 0x35,
|
||||
0xa9, 0x2b, 0x7f, 0x9d, 0xd4, 0x95, 0x5f, 0x7c, 0x5d, 0x9f, 0xf9, 0x64, 0x3d, 0xe7, 0x3f, 0xbf,
|
||||
0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x15, 0x68, 0x85, 0x2c, 0x1e, 0x00, 0x00,
|
||||
// 2038 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,
|
||||
0x15, 0xd7, 0x52, 0xa2, 0x44, 0x3d, 0x45, 0x54, 0x3c, 0x52, 0x2d, 0x46, 0x69, 0x25, 0x61, 0x6b,
|
||||
0x24, 0x4a, 0x62, 0x2f, 0x63, 0x25, 0x0d, 0x12, 0xbb, 0x75, 0x2a, 0x4a, 0x6e, 0xec, 0x40, 0x8a,
|
||||
0x94, 0x91, 0x64, 0xa3, 0xe9, 0x07, 0x32, 0x22, 0xc7, 0xd4, 0x46, 0xfb, 0x85, 0xdd, 0x21, 0x63,
|
||||
0xa2, 0x97, 0xfe, 0x01, 0x05, 0xd2, 0x73, 0xff, 0x8a, 0xf6, 0xd4, 0xa2, 0x45, 0x2f, 0x3d, 0x14,
|
||||
0x3e, 0x06, 0xbd, 0x34, 0x27, 0xa2, 0x66, 0xae, 0xed, 0xad, 0xbd, 0x18, 0x28, 0x50, 0xcc, 0xec,
|
||||
0xec, 0xf7, 0xae, 0xb4, 0x2c, 0x60, 0x01, 0xed, 0x8d, 0x3b, 0xef, 0xbd, 0xdf, 0x7b, 0xf3, 0xe6,
|
||||
0xbd, 0x37, 0xef, 0x0d, 0xe1, 0xfb, 0x67, 0xef, 0x7a, 0x9a, 0x6e, 0x37, 0xcf, 0x7a, 0x27, 0xd4,
|
||||
0xb5, 0x28, 0xa3, 0x5e, 0xb3, 0x4f, 0xad, 0x8e, 0xed, 0x36, 0x25, 0x81, 0x38, 0x7a, 0x93, 0x38,
|
||||
0x8e, 0xd7, 0xec, 0xdf, 0x3c, 0xa1, 0x8c, 0xdc, 0x6c, 0x76, 0xa9, 0x45, 0x5d, 0xc2, 0x68, 0x47,
|
||||
0x73, 0x5c, 0x9b, 0xd9, 0x68, 0xd9, 0x67, 0xd4, 0x88, 0xa3, 0x6b, 0x9c, 0x51, 0x93, 0x8c, 0x2b,
|
||||
0x37, 0xba, 0x3a, 0x3b, 0xed, 0x9d, 0x68, 0x6d, 0xdb, 0x6c, 0x76, 0xed, 0xae, 0xdd, 0x14, 0xfc,
|
||||
0x27, 0xbd, 0x47, 0xe2, 0x4b, 0x7c, 0x88, 0x5f, 0x3e, 0xce, 0x8a, 0x1a, 0x53, 0xd8, 0xb6, 0x5d,
|
||||
0xda, 0xec, 0x67, 0x74, 0xad, 0xbc, 0x1d, 0xf1, 0x98, 0xa4, 0x7d, 0xaa, 0x5b, 0xd4, 0x1d, 0x34,
|
||||
0x9d, 0xb3, 0x2e, 0x5f, 0xf0, 0x9a, 0x26, 0x65, 0x24, 0x4f, 0xaa, 0x59, 0x24, 0xe5, 0xf6, 0x2c,
|
||||
0xa6, 0x9b, 0x34, 0x23, 0xf0, 0xce, 0x45, 0x02, 0x5e, 0xfb, 0x94, 0x9a, 0x24, 0x23, 0xf7, 0x56,
|
||||
0x91, 0x5c, 0x8f, 0xe9, 0x46, 0x53, 0xb7, 0x98, 0xc7, 0xdc, 0xb4, 0x90, 0xfa, 0x2f, 0x05, 0xd0,
|
||||
0xb6, 0x6d, 0x31, 0xd7, 0x36, 0x0c, 0xea, 0x62, 0xda, 0xd7, 0x3d, 0xdd, 0xb6, 0xd0, 0xa7, 0x50,
|
||||
0xe3, 0xfb, 0xe9, 0x10, 0x46, 0x1a, 0xca, 0xba, 0xb2, 0x31, 0xb7, 0xf9, 0xa6, 0x16, 0x79, 0x3a,
|
||||
0x84, 0xd7, 0x9c, 0xb3, 0x2e, 0x5f, 0xf0, 0x34, 0xce, 0xad, 0xf5, 0x6f, 0x6a, 0xfb, 0x27, 0x9f,
|
||||
0xd1, 0x36, 0xdb, 0xa3, 0x8c, 0xb4, 0xd0, 0x93, 0xe1, 0xda, 0xc4, 0x68, 0xb8, 0x06, 0xd1, 0x1a,
|
||||
0x0e, 0x51, 0xd1, 0x3e, 0x4c, 0x09, 0xf4, 0x8a, 0x40, 0xbf, 0x51, 0x88, 0x2e, 0x37, 0xad, 0x61,
|
||||
0xf2, 0xf9, 0xdd, 0xc7, 0x8c, 0x5a, 0xdc, 0xbc, 0xd6, 0x0b, 0x12, 0x7a, 0x6a, 0x87, 0x30, 0x82,
|
||||
0x05, 0x10, 0xba, 0x0e, 0x35, 0x57, 0x9a, 0xdf, 0x98, 0x5c, 0x57, 0x36, 0x26, 0x5b, 0x2f, 0x4a,
|
||||
0xae, 0x5a, 0xb0, 0x2d, 0x1c, 0x72, 0xa8, 0x4f, 0x14, 0xb8, 0x9a, 0xdd, 0xf7, 0xae, 0xee, 0x31,
|
||||
0xf4, 0xe3, 0xcc, 0xde, 0xb5, 0x72, 0x7b, 0xe7, 0xd2, 0x62, 0xe7, 0xa1, 0xe2, 0x60, 0x25, 0xb6,
|
||||
0xef, 0x03, 0xa8, 0xea, 0x8c, 0x9a, 0x5e, 0xa3, 0xb2, 0x3e, 0xb9, 0x31, 0xb7, 0xf9, 0x86, 0x56,
|
||||
0x10, 0xc0, 0x5a, 0xd6, 0xba, 0xd6, 0xbc, 0xc4, 0xad, 0xde, 0xe7, 0x08, 0xd8, 0x07, 0x52, 0x7f,
|
||||
0x51, 0x01, 0xd8, 0xa1, 0x8e, 0x61, 0x0f, 0x4c, 0x6a, 0xb1, 0x4b, 0x38, 0xba, 0xfb, 0x30, 0xe5,
|
||||
0x39, 0xb4, 0x2d, 0x8f, 0xee, 0xd5, 0xc2, 0x1d, 0x44, 0x46, 0x1d, 0x3a, 0xb4, 0x1d, 0x1d, 0x1a,
|
||||
0xff, 0xc2, 0x02, 0x02, 0x7d, 0x0c, 0xd3, 0x1e, 0x23, 0xac, 0xe7, 0x89, 0x23, 0x9b, 0xdb, 0x7c,
|
||||
0xad, 0x0c, 0x98, 0x10, 0x68, 0xd5, 0x25, 0xdc, 0xb4, 0xff, 0x8d, 0x25, 0x90, 0xfa, 0xd7, 0x49,
|
||||
0x58, 0x8c, 0x98, 0xb7, 0x6d, 0xab, 0xa3, 0x33, 0x1e, 0xd2, 0xb7, 0x61, 0x8a, 0x0d, 0x1c, 0x2a,
|
||||
0x7c, 0x32, 0xdb, 0x7a, 0x35, 0x30, 0xe6, 0x68, 0xe0, 0xd0, 0x67, 0xc3, 0xb5, 0xe5, 0x1c, 0x11,
|
||||
0x4e, 0xc2, 0x42, 0x08, 0xed, 0x86, 0x76, 0x56, 0x84, 0xf8, 0xdb, 0x49, 0xe5, 0xcf, 0x86, 0x6b,
|
||||
0x39, 0x05, 0x44, 0x0b, 0x91, 0x92, 0x26, 0xa2, 0xcf, 0xa0, 0x6e, 0x10, 0x8f, 0x1d, 0x3b, 0x1d,
|
||||
0xc2, 0xe8, 0x91, 0x6e, 0xd2, 0xc6, 0xb4, 0xd8, 0xfd, 0xeb, 0xe5, 0x0e, 0x8a, 0x4b, 0xb4, 0xae,
|
||||
0x4a, 0x0b, 0xea, 0xbb, 0x09, 0x24, 0x9c, 0x42, 0x46, 0x7d, 0x40, 0x7c, 0xe5, 0xc8, 0x25, 0x96,
|
||||
0xe7, 0xef, 0x8a, 0xeb, 0x9b, 0x19, 0x5b, 0xdf, 0x8a, 0xd4, 0x87, 0x76, 0x33, 0x68, 0x38, 0x47,
|
||||
0x03, 0x7a, 0x05, 0xa6, 0x5d, 0x4a, 0x3c, 0xdb, 0x6a, 0x4c, 0x09, 0x8f, 0x85, 0xc7, 0x85, 0xc5,
|
||||
0x2a, 0x96, 0x54, 0xf4, 0x1a, 0xcc, 0x98, 0xd4, 0xf3, 0x48, 0x97, 0x36, 0xaa, 0x82, 0x71, 0x41,
|
||||
0x32, 0xce, 0xec, 0xf9, 0xcb, 0x38, 0xa0, 0xab, 0xbf, 0x53, 0xa0, 0x1e, 0x1d, 0xd3, 0x25, 0xe4,
|
||||
0xea, 0xbd, 0x64, 0xae, 0x7e, 0xbb, 0x44, 0x70, 0x16, 0xe4, 0xe8, 0xdf, 0x2b, 0x80, 0x22, 0x26,
|
||||
0x6c, 0x1b, 0xc6, 0x09, 0x69, 0x9f, 0xa1, 0x75, 0x98, 0xb2, 0x88, 0x19, 0xc4, 0x64, 0x98, 0x20,
|
||||
0x1f, 0x11, 0x93, 0x62, 0x41, 0x41, 0x5f, 0x28, 0x80, 0x7a, 0xe2, 0x34, 0x3b, 0x5b, 0x96, 0x65,
|
||||
0x33, 0xc2, 0x1d, 0x1c, 0x18, 0xb4, 0x5d, 0xc2, 0xa0, 0x40, 0x97, 0x76, 0x9c, 0x41, 0xb9, 0x6b,
|
||||
0x31, 0x77, 0x10, 0x1d, 0x6c, 0x96, 0x01, 0xe7, 0xa8, 0x46, 0x3f, 0x02, 0x70, 0x25, 0xe6, 0x91,
|
||||
0x2d, 0xd3, 0xb6, 0xb8, 0x06, 0x04, 0xea, 0xb7, 0x6d, 0xeb, 0x91, 0xde, 0x8d, 0x0a, 0x0b, 0x0e,
|
||||
0x21, 0x70, 0x0c, 0x6e, 0xe5, 0x2e, 0x2c, 0x17, 0xd8, 0x89, 0x5e, 0x84, 0xc9, 0x33, 0x3a, 0xf0,
|
||||
0x5d, 0x85, 0xf9, 0x4f, 0xb4, 0x04, 0xd5, 0x3e, 0x31, 0x7a, 0xd4, 0xcf, 0x49, 0xec, 0x7f, 0xdc,
|
||||
0xaa, 0xbc, 0xab, 0xa8, 0xbf, 0xae, 0xc6, 0x23, 0x85, 0xd7, 0x1b, 0xb4, 0xc1, 0xaf, 0x07, 0xc7,
|
||||
0xd0, 0xdb, 0xc4, 0x13, 0x18, 0xd5, 0xd6, 0x0b, 0xfe, 0xd5, 0xe0, 0xaf, 0xe1, 0x90, 0x8a, 0x7e,
|
||||
0x02, 0x35, 0x8f, 0x1a, 0xb4, 0xcd, 0x6c, 0x57, 0x96, 0xb8, 0xb7, 0x4a, 0xc6, 0x14, 0x39, 0xa1,
|
||||
0xc6, 0xa1, 0x14, 0xf5, 0xe1, 0x83, 0x2f, 0x1c, 0x42, 0xa2, 0x8f, 0xa1, 0xc6, 0xa8, 0xe9, 0x18,
|
||||
0x84, 0x51, 0xe9, 0xbd, 0x44, 0x5c, 0xf1, 0xda, 0xc1, 0xc1, 0x0e, 0xec, 0xce, 0x91, 0x64, 0x13,
|
||||
0xd5, 0x33, 0x8c, 0xd3, 0x60, 0x15, 0x87, 0x30, 0xe8, 0x87, 0x50, 0xf3, 0x18, 0xbf, 0xd5, 0xbb,
|
||||
0x03, 0x91, 0x6d, 0xe7, 0x5d, 0x2b, 0xf1, 0x3a, 0xea, 0x8b, 0x44, 0xd0, 0xc1, 0x0a, 0x0e, 0xe1,
|
||||
0xd0, 0x16, 0x2c, 0x98, 0xba, 0x85, 0x29, 0xe9, 0x0c, 0x0e, 0x69, 0xdb, 0xb6, 0x3a, 0x9e, 0x48,
|
||||
0xd3, 0x6a, 0x6b, 0x59, 0x0a, 0x2d, 0xec, 0x25, 0xc9, 0x38, 0xcd, 0x8f, 0x76, 0x61, 0x29, 0xb8,
|
||||
0x76, 0xef, 0xe9, 0x1e, 0xb3, 0xdd, 0xc1, 0xae, 0x6e, 0xea, 0x4c, 0xd4, 0xbc, 0x6a, 0xab, 0x31,
|
||||
0x1a, 0xae, 0x2d, 0xe1, 0x1c, 0x3a, 0xce, 0x95, 0xe2, 0x75, 0xc5, 0x21, 0x3d, 0x8f, 0x76, 0x44,
|
||||
0x0d, 0xab, 0x45, 0x75, 0xe5, 0x40, 0xac, 0x62, 0x49, 0x45, 0x0f, 0x13, 0x61, 0x5a, 0x1b, 0x2f,
|
||||
0x4c, 0xeb, 0xc5, 0x21, 0x8a, 0x8e, 0x61, 0xd9, 0x71, 0xed, 0xae, 0x4b, 0x3d, 0x6f, 0x87, 0x92,
|
||||
0x8e, 0xa1, 0x5b, 0x34, 0xf0, 0xcc, 0xac, 0xd8, 0xd1, 0xcb, 0xa3, 0xe1, 0xda, 0xf2, 0x41, 0x3e,
|
||||
0x0b, 0x2e, 0x92, 0x55, 0xff, 0x34, 0x05, 0x2f, 0xa6, 0xef, 0x38, 0xf4, 0x21, 0x20, 0xfb, 0xc4,
|
||||
0xa3, 0x6e, 0x9f, 0x76, 0x3e, 0xf0, 0x1b, 0x37, 0xde, 0xdd, 0x28, 0xa2, 0xbb, 0x09, 0xf3, 0x76,
|
||||
0x3f, 0xc3, 0x81, 0x73, 0xa4, 0xfc, 0xfe, 0x48, 0x26, 0x40, 0x45, 0x18, 0x1a, 0xeb, 0x8f, 0x32,
|
||||
0x49, 0xb0, 0x05, 0x0b, 0x32, 0xf7, 0x03, 0xa2, 0x08, 0xd6, 0xd8, 0xb9, 0x1f, 0x27, 0xc9, 0x38,
|
||||
0xcd, 0x8f, 0x6e, 0xc3, 0xbc, 0xcb, 0xe3, 0x20, 0x04, 0x98, 0x11, 0x00, 0xdf, 0x90, 0x00, 0xf3,
|
||||
0x38, 0x4e, 0xc4, 0x49, 0x5e, 0xf4, 0x01, 0x5c, 0x21, 0x7d, 0xa2, 0x1b, 0xe4, 0xc4, 0xa0, 0x21,
|
||||
0xc0, 0x94, 0x00, 0x78, 0x49, 0x02, 0x5c, 0xd9, 0x4a, 0x33, 0xe0, 0xac, 0x0c, 0xda, 0x83, 0xc5,
|
||||
0x9e, 0x95, 0x85, 0xf2, 0x83, 0xf8, 0x65, 0x09, 0xb5, 0x78, 0x9c, 0x65, 0xc1, 0x79, 0x72, 0xe8,
|
||||
0x53, 0x80, 0x76, 0x70, 0xab, 0x7b, 0x8d, 0x69, 0x51, 0x86, 0xaf, 0x97, 0x48, 0xb6, 0xb0, 0x15,
|
||||
0x88, 0x4a, 0x60, 0xb8, 0xe4, 0xe1, 0x18, 0x26, 0xba, 0x05, 0xf5, 0xb6, 0x6d, 0x18, 0x22, 0xf2,
|
||||
0xb7, 0xed, 0x9e, 0xc5, 0x44, 0xf0, 0x56, 0x5b, 0x88, 0x5f, 0xf6, 0xdb, 0x09, 0x0a, 0x4e, 0x71,
|
||||
0xaa, 0x7f, 0x50, 0xe2, 0xd7, 0x4c, 0x90, 0xce, 0xe8, 0x56, 0xa2, 0xf5, 0x79, 0x25, 0xd5, 0xfa,
|
||||
0x5c, 0xcd, 0x4a, 0xc4, 0x3a, 0x1f, 0x1d, 0xe6, 0x79, 0xf0, 0xeb, 0x56, 0xd7, 0x3f, 0x70, 0x59,
|
||||
0x12, 0xdf, 0x3c, 0x37, 0x95, 0x42, 0xee, 0xd8, 0xc5, 0x78, 0x45, 0x9c, 0x79, 0x9c, 0x88, 0x93,
|
||||
0xc8, 0xea, 0x1d, 0xa8, 0x27, 0xf3, 0x30, 0xd1, 0xd3, 0x2b, 0x17, 0xf6, 0xf4, 0x5f, 0x2b, 0xb0,
|
||||
0x5c, 0xa0, 0x1d, 0x19, 0x50, 0x37, 0xc9, 0xe3, 0xd8, 0x31, 0x5f, 0xd8, 0x1b, 0xf3, 0xa9, 0x49,
|
||||
0xf3, 0xa7, 0x26, 0xed, 0xbe, 0xc5, 0xf6, 0xdd, 0x43, 0xe6, 0xea, 0x56, 0xd7, 0x3f, 0x87, 0xbd,
|
||||
0x04, 0x16, 0x4e, 0x61, 0xa3, 0x4f, 0xa0, 0x66, 0x92, 0xc7, 0x87, 0x3d, 0xb7, 0x9b, 0xe7, 0xaf,
|
||||
0x72, 0x7a, 0xc4, 0xfd, 0xb1, 0x27, 0x51, 0x70, 0x88, 0xa7, 0xfe, 0x51, 0x81, 0xf5, 0xc4, 0x2e,
|
||||
0x79, 0xad, 0xa0, 0x8f, 0x7a, 0xc6, 0x21, 0x8d, 0x4e, 0xfc, 0x0d, 0x98, 0x75, 0x88, 0xcb, 0xf4,
|
||||
0xb0, 0x5e, 0x54, 0x5b, 0xf3, 0xa3, 0xe1, 0xda, 0xec, 0x41, 0xb0, 0x88, 0x23, 0x7a, 0x8e, 0x6f,
|
||||
0x2a, 0xcf, 0xcf, 0x37, 0xea, 0xbf, 0x15, 0xa8, 0x1e, 0xb6, 0x89, 0x41, 0x2f, 0x61, 0x52, 0xd9,
|
||||
0x49, 0x4c, 0x2a, 0x6a, 0x61, 0xcc, 0x0a, 0x7b, 0x0a, 0x87, 0x94, 0xdd, 0xd4, 0x90, 0x72, 0xed,
|
||||
0x02, 0x9c, 0xf3, 0xe7, 0x93, 0xf7, 0x60, 0x36, 0x54, 0x97, 0x28, 0xca, 0xca, 0x45, 0x45, 0x59,
|
||||
0xfd, 0x55, 0x05, 0xe6, 0x62, 0x2a, 0xc6, 0x93, 0xe6, 0xee, 0x8e, 0xf5, 0x35, 0xbc, 0x70, 0x6d,
|
||||
0x96, 0xd9, 0x88, 0x16, 0xf4, 0x30, 0x7e, 0xbb, 0x18, 0x35, 0x0b, 0xd9, 0xd6, 0xe6, 0x0e, 0xd4,
|
||||
0x19, 0x71, 0xbb, 0x94, 0x05, 0x34, 0xe1, 0xb0, 0xd9, 0x68, 0x56, 0x39, 0x4a, 0x50, 0x71, 0x8a,
|
||||
0x7b, 0xe5, 0x36, 0xcc, 0x27, 0x94, 0x8d, 0xd5, 0xf3, 0x7d, 0xc1, 0x9d, 0x13, 0xa5, 0xc2, 0x25,
|
||||
0x44, 0xd7, 0x87, 0x89, 0xe8, 0xda, 0x28, 0x76, 0x66, 0x2c, 0x41, 0x8b, 0x62, 0x0c, 0xa7, 0x62,
|
||||
0xec, 0xf5, 0x52, 0x68, 0xe7, 0x47, 0xda, 0x3f, 0x2a, 0xb0, 0x14, 0xe3, 0x8e, 0x46, 0xe1, 0xef,
|
||||
0x26, 0xee, 0x83, 0x8d, 0xd4, 0x7d, 0xd0, 0xc8, 0x93, 0x79, 0x6e, 0xb3, 0x70, 0xfe, 0x7c, 0x3a,
|
||||
0xf9, 0xbf, 0x38, 0x9f, 0xfe, 0x5e, 0x81, 0x85, 0x98, 0xef, 0x2e, 0x61, 0x40, 0xbd, 0x9f, 0x1c,
|
||||
0x50, 0xaf, 0x95, 0x09, 0x9a, 0x82, 0x09, 0xf5, 0x01, 0x2c, 0xc6, 0x98, 0xf6, 0xdd, 0x8e, 0x6e,
|
||||
0x11, 0xc3, 0x43, 0xef, 0xc3, 0xa2, 0x2c, 0x20, 0x87, 0x8c, 0xb8, 0xc1, 0x7a, 0x70, 0xa5, 0x04,
|
||||
0x48, 0x82, 0x86, 0xf3, 0x38, 0xd5, 0x7f, 0x2a, 0xd0, 0x8c, 0x01, 0x1f, 0x50, 0xd7, 0xd3, 0x3d,
|
||||
0x46, 0x2d, 0xf6, 0xc0, 0x36, 0x7a, 0x26, 0xdd, 0x36, 0x88, 0x6e, 0x62, 0xca, 0x17, 0x74, 0xdb,
|
||||
0x3a, 0xb0, 0x0d, 0xbd, 0x3d, 0x40, 0x04, 0xe6, 0x3e, 0x3f, 0xa5, 0xd6, 0x0e, 0x35, 0x28, 0xa3,
|
||||
0x1d, 0x19, 0xa6, 0xef, 0x4b, 0x65, 0x73, 0x0f, 0x23, 0xd2, 0xb3, 0xe1, 0xda, 0x46, 0x19, 0x44,
|
||||
0x11, 0xbd, 0x71, 0x4c, 0xf4, 0x53, 0x00, 0xfe, 0x29, 0xea, 0x5c, 0x47, 0x06, 0xf2, 0x9d, 0x20,
|
||||
0xdb, 0x1f, 0x86, 0x94, 0xb1, 0x14, 0xc4, 0x10, 0xd5, 0xdf, 0xd4, 0x12, 0xb1, 0xf0, 0x7f, 0x3f,
|
||||
0x82, 0xfe, 0x0c, 0x96, 0xfa, 0x91, 0x77, 0x02, 0x06, 0xde, 0xb2, 0x4f, 0xa6, 0x9f, 0xf5, 0x42,
|
||||
0xf8, 0x3c, 0xbf, 0xb6, 0xbe, 0x29, 0x95, 0x2c, 0x3d, 0xc8, 0x81, 0xc3, 0xb9, 0x4a, 0xd0, 0x77,
|
||||
0x60, 0x8e, 0x8f, 0x3b, 0x7a, 0x9b, 0x7e, 0x44, 0xcc, 0x20, 0x4f, 0x17, 0x83, 0x78, 0x39, 0x8c,
|
||||
0x48, 0x38, 0xce, 0x87, 0x4e, 0x61, 0xd1, 0xb1, 0x3b, 0x7b, 0xc4, 0x22, 0x5d, 0xca, 0x9b, 0x44,
|
||||
0xff, 0x28, 0xc5, 0x5c, 0x3a, 0xdb, 0x7a, 0x27, 0x18, 0x0d, 0x0e, 0xb2, 0x2c, 0xcf, 0xf8, 0x80,
|
||||
0x97, 0x5d, 0x16, 0x41, 0x90, 0x07, 0x89, 0x5c, 0xa8, 0xf7, 0x64, 0xaf, 0x26, 0xc7, 0x74, 0xff,
|
||||
0x01, 0x6e, 0xb3, 0x4c, 0xc2, 0x1e, 0x27, 0x24, 0xa3, 0xcb, 0x34, 0xb9, 0x8e, 0x53, 0x1a, 0x0a,
|
||||
0xc7, 0xee, 0xda, 0x7f, 0x35, 0x76, 0xe7, 0xbc, 0x03, 0xcc, 0x8e, 0xf9, 0x0e, 0xf0, 0x67, 0x05,
|
||||
0xae, 0x39, 0x25, 0x72, 0xa9, 0x01, 0xc2, 0x37, 0xf7, 0xca, 0xf8, 0xa6, 0x4c, 0x6e, 0xb6, 0x36,
|
||||
0x46, 0xc3, 0xb5, 0x6b, 0x65, 0x38, 0x71, 0x29, 0xfb, 0xd0, 0x03, 0xa8, 0xd9, 0xb2, 0x3e, 0x36,
|
||||
0xe6, 0x84, 0xad, 0xd7, 0xcb, 0xd8, 0x1a, 0xd4, 0x54, 0x3f, 0x2d, 0x83, 0x2f, 0x1c, 0x62, 0xa9,
|
||||
0xbf, 0xad, 0xc2, 0x95, 0xcc, 0xed, 0x8e, 0x7e, 0x70, 0xce, 0x1b, 0xc0, 0xd5, 0xe7, 0x36, 0xff,
|
||||
0x67, 0x86, 0xf7, 0xc9, 0x31, 0x86, 0xf7, 0x2d, 0x58, 0x68, 0xf7, 0x5c, 0x97, 0x5a, 0x2c, 0x35,
|
||||
0xba, 0x87, 0xc1, 0xb2, 0x9d, 0x24, 0xe3, 0x34, 0x7f, 0xde, 0xfb, 0x43, 0x75, 0xcc, 0xf7, 0x87,
|
||||
0xb8, 0x15, 0x72, 0x86, 0xf4, 0x53, 0x3b, 0x6b, 0x85, 0x1c, 0x25, 0xd3, 0xfc, 0xbc, 0xa1, 0xf5,
|
||||
0x51, 0x43, 0x84, 0x99, 0x64, 0x43, 0x7b, 0x9c, 0xa0, 0xe2, 0x14, 0x77, 0xce, 0x2c, 0x3f, 0x5b,
|
||||
0x76, 0x96, 0x47, 0x24, 0xf1, 0xd2, 0x00, 0xa2, 0x8e, 0xde, 0x28, 0x13, 0x67, 0xe5, 0x9f, 0x1a,
|
||||
0x72, 0x1f, 0x59, 0xe6, 0xc6, 0x7f, 0x64, 0x51, 0xff, 0xa2, 0xc0, 0x4b, 0x85, 0x15, 0x0b, 0x6d,
|
||||
0x25, 0xda, 0xcd, 0x1b, 0xa9, 0x76, 0xf3, 0x5b, 0x85, 0x82, 0xb1, 0x9e, 0xd3, 0xcd, 0x7f, 0x85,
|
||||
0x78, 0xaf, 0xdc, 0x2b, 0x44, 0xce, 0x84, 0x7c, 0xf1, 0x73, 0x44, 0xeb, 0x7b, 0x4f, 0x9e, 0xae,
|
||||
0x4e, 0x7c, 0xf9, 0x74, 0x75, 0xe2, 0xab, 0xa7, 0xab, 0x13, 0x3f, 0x1f, 0xad, 0x2a, 0x4f, 0x46,
|
||||
0xab, 0xca, 0x97, 0xa3, 0x55, 0xe5, 0xab, 0xd1, 0xaa, 0xf2, 0xb7, 0xd1, 0xaa, 0xf2, 0xcb, 0xaf,
|
||||
0x57, 0x27, 0x3e, 0x59, 0x2e, 0xf8, 0xa7, 0xfa, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xec, 0xbb,
|
||||
0x1f, 0x87, 0xdc, 0x1e, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *ControllerRevision) Marshal() (dAtA []byte, err error) {
|
||||
@ -1737,6 +1770,32 @@ func (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.Start))
|
||||
i--
|
||||
dAtA[i] = 0x8
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -1790,6 +1849,18 @@ func (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if m.Ordinals != nil {
|
||||
{
|
||||
size, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x5a
|
||||
}
|
||||
if m.PersistentVolumeClaimRetentionPolicy != nil {
|
||||
{
|
||||
size, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -2312,6 +2383,16 @@ func (m *StatefulSetList) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
n += 1 + sovGenerated(uint64(m.Start))
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -2360,6 +2441,10 @@ func (m *StatefulSetSpec) Size() (n int) {
|
||||
l = m.PersistentVolumeClaimRetentionPolicy.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
if m.Ordinals != nil {
|
||||
l = m.Ordinals.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@ -2676,6 +2761,16 @@ func (this *StatefulSetList) String() string {
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *StatefulSetOrdinals) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
s := strings.Join([]string{`&StatefulSetOrdinals{`,
|
||||
`Start:` + fmt.Sprintf("%v", this.Start) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
@ -2707,6 +2802,7 @@ func (this *StatefulSetSpec) String() string {
|
||||
`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,
|
||||
`MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`,
|
||||
`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), "StatefulSetPersistentVolumeClaimRetentionPolicy", "StatefulSetPersistentVolumeClaimRetentionPolicy", 1) + `,`,
|
||||
`Ordinals:` + strings.Replace(this.Ordinals.String(), "StatefulSetOrdinals", "StatefulSetOrdinals", 1) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@ -5601,6 +5697,75 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: StatefulSetOrdinals: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: StatefulSetOrdinals: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
|
||||
}
|
||||
m.Start = 0
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
m.Start |= int32(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
@ -6039,6 +6204,42 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 11:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Ordinals", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.Ordinals == nil {
|
||||
m.Ordinals = &StatefulSetOrdinals{}
|
||||
}
|
||||
if err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
|
@ -380,6 +380,17 @@ message StatefulSetList {
|
||||
repeated StatefulSet items = 2;
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
message StatefulSetOrdinals {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
optional int32 replicaStartOrdinal = 1;
|
||||
}
|
||||
|
||||
// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs
|
||||
// created from the StatefulSet VolumeClaimTemplates.
|
||||
message StatefulSetPersistentVolumeClaimRetentionPolicy {
|
||||
@ -469,6 +480,14 @@ message StatefulSetSpec {
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
optional StatefulSetOrdinals ordinals = 11;
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
@ -204,6 +204,17 @@ type StatefulSetPersistentVolumeClaimRetentionPolicy struct {
|
||||
WhenScaled PersistentVolumeClaimRetentionPolicyType `json:"whenScaled,omitempty" protobuf:"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType"`
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
type StatefulSetOrdinals struct {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
Start int32 `json:"start" protobuf:"varint,1,opt,name=start"`
|
||||
}
|
||||
|
||||
// A StatefulSetSpec is the specification of a StatefulSet.
|
||||
type StatefulSetSpec struct {
|
||||
// replicas is the desired number of replicas of the given Template.
|
||||
@ -276,6 +287,14 @@ type StatefulSetSpec struct {
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"`
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
Ordinals *StatefulSetOrdinals `json:"ordinals,omitempty" protobuf:"bytes,11,opt,name=ordinals"`
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
@ -228,6 +228,15 @@ func (StatefulSetList) SwaggerDoc() map[string]string {
|
||||
return map_StatefulSetList
|
||||
}
|
||||
|
||||
var map_StatefulSetOrdinals = map[string]string{
|
||||
"": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
"start": "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
}
|
||||
|
||||
func (StatefulSetOrdinals) SwaggerDoc() map[string]string {
|
||||
return map_StatefulSetOrdinals
|
||||
}
|
||||
|
||||
var map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{
|
||||
"": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
|
||||
"whenDeleted": "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.",
|
||||
@ -250,6 +259,7 @@ var map_StatefulSetSpec = map[string]string{
|
||||
"revisionHistoryLimit": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.",
|
||||
"minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
|
||||
"persistentVolumeClaimRetentionPolicy": "PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.",
|
||||
"ordinals": "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha.",
|
||||
}
|
||||
|
||||
func (StatefulSetSpec) SwaggerDoc() map[string]string {
|
||||
|
@ -505,6 +505,22 @@ func (in *StatefulSetList) DeepCopyObject() runtime.Object {
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.
|
||||
func (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(StatefulSetOrdinals)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {
|
||||
*out = *in
|
||||
@ -553,6 +569,11 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {
|
||||
*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)
|
||||
**out = **in
|
||||
}
|
||||
if in.Ordinals != nil {
|
||||
in, out := &in.Ordinals, &out.Ordinals
|
||||
*out = new(StatefulSetOrdinals)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
498
staging/src/k8s.io/api/apps/v1beta2/generated.pb.go
generated
498
staging/src/k8s.io/api/apps/v1beta2/generated.pb.go
generated
@ -833,12 +833,40 @@ func (m *StatefulSetList) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_StatefulSetList proto.InternalMessageInfo
|
||||
|
||||
func (m *StatefulSetOrdinals) Reset() { *m = StatefulSetOrdinals{} }
|
||||
func (*StatefulSetOrdinals) ProtoMessage() {}
|
||||
func (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_42fe616264472f7e, []int{28}
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_StatefulSetOrdinals.Merge(m, src)
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *StatefulSetOrdinals) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {
|
||||
*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}
|
||||
}
|
||||
func (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}
|
||||
func (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_42fe616264472f7e, []int{28}
|
||||
return fileDescriptor_42fe616264472f7e, []int{29}
|
||||
}
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -866,7 +894,7 @@ var xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.Intern
|
||||
func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} }
|
||||
func (*StatefulSetSpec) ProtoMessage() {}
|
||||
func (*StatefulSetSpec) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_42fe616264472f7e, []int{29}
|
||||
return fileDescriptor_42fe616264472f7e, []int{30}
|
||||
}
|
||||
func (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -894,7 +922,7 @@ var xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo
|
||||
func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} }
|
||||
func (*StatefulSetStatus) ProtoMessage() {}
|
||||
func (*StatefulSetStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_42fe616264472f7e, []int{30}
|
||||
return fileDescriptor_42fe616264472f7e, []int{31}
|
||||
}
|
||||
func (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -922,7 +950,7 @@ var xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo
|
||||
func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} }
|
||||
func (*StatefulSetUpdateStrategy) ProtoMessage() {}
|
||||
func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_42fe616264472f7e, []int{31}
|
||||
return fileDescriptor_42fe616264472f7e, []int{32}
|
||||
}
|
||||
func (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -977,6 +1005,7 @@ func init() {
|
||||
proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1beta2.StatefulSet")
|
||||
proto.RegisterType((*StatefulSetCondition)(nil), "k8s.io.api.apps.v1beta2.StatefulSetCondition")
|
||||
proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1beta2.StatefulSetList")
|
||||
proto.RegisterType((*StatefulSetOrdinals)(nil), "k8s.io.api.apps.v1beta2.StatefulSetOrdinals")
|
||||
proto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), "k8s.io.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy")
|
||||
proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1beta2.StatefulSetSpec")
|
||||
proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1beta2.StatefulSetStatus")
|
||||
@ -988,151 +1017,154 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_42fe616264472f7e = []byte{
|
||||
// 2295 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcf, 0x6f, 0x1b, 0xc7,
|
||||
0xf5, 0xd7, 0xf2, 0x87, 0x44, 0x8e, 0x2c, 0xc9, 0x1e, 0xe9, 0x2b, 0x31, 0xf2, 0xb7, 0xa4, 0xb1,
|
||||
0x31, 0x1c, 0x25, 0xb6, 0x49, 0x5b, 0xf9, 0x81, 0xc4, 0x6e, 0x93, 0x8a, 0x52, 0x6a, 0x3b, 0x90,
|
||||
0x64, 0x66, 0x64, 0x39, 0x68, 0xd0, 0x1f, 0x1e, 0x91, 0x63, 0x6a, 0xa3, 0xe5, 0xee, 0x62, 0x77,
|
||||
0x96, 0x31, 0xd1, 0x4b, 0xaf, 0x05, 0x0a, 0xb4, 0xbd, 0xf6, 0x9f, 0xe8, 0xad, 0x28, 0x1a, 0xf4,
|
||||
0x52, 0x04, 0x81, 0x8f, 0x41, 0x2f, 0x49, 0x2f, 0x44, 0xcd, 0x9c, 0x8a, 0xa2, 0xb7, 0xf6, 0x62,
|
||||
0xa0, 0x40, 0x31, 0xb3, 0xb3, 0xbf, 0x77, 0xcd, 0xa5, 0x62, 0x2b, 0x4d, 0x90, 0x1b, 0x77, 0xde,
|
||||
0x7b, 0x9f, 0x79, 0x33, 0xf3, 0xde, 0xbc, 0xcf, 0xcc, 0x10, 0x7c, 0xff, 0xe8, 0x75, 0xab, 0xae,
|
||||
0xe8, 0x8d, 0x23, 0xfb, 0x80, 0x98, 0x1a, 0xa1, 0xc4, 0x6a, 0xf4, 0x89, 0xd6, 0xd1, 0xcd, 0x86,
|
||||
0x10, 0x60, 0x43, 0x69, 0x60, 0xc3, 0xb0, 0x1a, 0xfd, 0xab, 0x07, 0x84, 0xe2, 0xf5, 0x46, 0x97,
|
||||
0x68, 0xc4, 0xc4, 0x94, 0x74, 0xea, 0x86, 0xa9, 0x53, 0x1d, 0xae, 0x38, 0x8a, 0x75, 0x6c, 0x28,
|
||||
0x75, 0xa6, 0x58, 0x17, 0x8a, 0xab, 0x97, 0xbb, 0x0a, 0x3d, 0xb4, 0x0f, 0xea, 0x6d, 0xbd, 0xd7,
|
||||
0xe8, 0xea, 0x5d, 0xbd, 0xc1, 0xf5, 0x0f, 0xec, 0xfb, 0xfc, 0x8b, 0x7f, 0xf0, 0x5f, 0x0e, 0xce,
|
||||
0xaa, 0x1c, 0xe8, 0xb0, 0xad, 0x9b, 0xa4, 0xd1, 0xbf, 0x1a, 0xed, 0x6b, 0xf5, 0x15, 0x5f, 0xa7,
|
||||
0x87, 0xdb, 0x87, 0x8a, 0x46, 0xcc, 0x41, 0xc3, 0x38, 0xea, 0xb2, 0x06, 0xab, 0xd1, 0x23, 0x14,
|
||||
0x27, 0x59, 0x35, 0xd2, 0xac, 0x4c, 0x5b, 0xa3, 0x4a, 0x8f, 0xc4, 0x0c, 0x5e, 0x1b, 0x67, 0x60,
|
||||
0xb5, 0x0f, 0x49, 0x0f, 0xc7, 0xec, 0x5e, 0x4e, 0xb3, 0xb3, 0xa9, 0xa2, 0x36, 0x14, 0x8d, 0x5a,
|
||||
0xd4, 0x8c, 0x1a, 0xc9, 0xff, 0x96, 0x00, 0xdc, 0xd4, 0x35, 0x6a, 0xea, 0xaa, 0x4a, 0x4c, 0x44,
|
||||
0xfa, 0x8a, 0xa5, 0xe8, 0x1a, 0xbc, 0x07, 0x4a, 0x6c, 0x3c, 0x1d, 0x4c, 0x71, 0x45, 0x3a, 0x27,
|
||||
0xad, 0xcd, 0xae, 0x5f, 0xa9, 0xfb, 0x33, 0xed, 0xc1, 0xd7, 0x8d, 0xa3, 0x2e, 0x6b, 0xb0, 0xea,
|
||||
0x4c, 0xbb, 0xde, 0xbf, 0x5a, 0xbf, 0x7d, 0xf0, 0x01, 0x69, 0xd3, 0x1d, 0x42, 0x71, 0x13, 0x3e,
|
||||
0x1c, 0xd6, 0xa6, 0x46, 0xc3, 0x1a, 0xf0, 0xdb, 0x90, 0x87, 0x0a, 0x6f, 0x83, 0x02, 0x47, 0xcf,
|
||||
0x71, 0xf4, 0xcb, 0xa9, 0xe8, 0x62, 0xd0, 0x75, 0x84, 0x3f, 0x7c, 0xfb, 0x01, 0x25, 0x1a, 0x73,
|
||||
0xaf, 0x79, 0x4a, 0x40, 0x17, 0xb6, 0x30, 0xc5, 0x88, 0x03, 0xc1, 0x4b, 0xa0, 0x64, 0x0a, 0xf7,
|
||||
0x2b, 0xf9, 0x73, 0xd2, 0x5a, 0xbe, 0x79, 0x5a, 0x68, 0x95, 0xdc, 0x61, 0x21, 0x4f, 0x43, 0x7e,
|
||||
0x28, 0x81, 0xe5, 0xf8, 0xb8, 0xb7, 0x15, 0x8b, 0xc2, 0x1f, 0xc5, 0xc6, 0x5e, 0xcf, 0x36, 0x76,
|
||||
0x66, 0xcd, 0x47, 0xee, 0x75, 0xec, 0xb6, 0x04, 0xc6, 0xdd, 0x02, 0x45, 0x85, 0x92, 0x9e, 0x55,
|
||||
0xc9, 0x9d, 0xcb, 0xaf, 0xcd, 0xae, 0x5f, 0xac, 0xa7, 0x04, 0x70, 0x3d, 0xee, 0x5d, 0x73, 0x4e,
|
||||
0xe0, 0x16, 0x6f, 0x31, 0x04, 0xe4, 0x00, 0xc9, 0xbf, 0xc8, 0x81, 0xf2, 0x16, 0x26, 0x3d, 0x5d,
|
||||
0xdb, 0x23, 0xf4, 0x04, 0x56, 0xee, 0x26, 0x28, 0x58, 0x06, 0x69, 0x8b, 0x95, 0xbb, 0x90, 0x3a,
|
||||
0x00, 0xcf, 0xa7, 0x3d, 0x83, 0xb4, 0xfd, 0x25, 0x63, 0x5f, 0x88, 0x23, 0xc0, 0x16, 0x98, 0xb6,
|
||||
0x28, 0xa6, 0xb6, 0xc5, 0x17, 0x6c, 0x76, 0x7d, 0x2d, 0x03, 0x16, 0xd7, 0x6f, 0xce, 0x0b, 0xb4,
|
||||
0x69, 0xe7, 0x1b, 0x09, 0x1c, 0xf9, 0xef, 0x39, 0x00, 0x3d, 0xdd, 0x4d, 0x5d, 0xeb, 0x28, 0x94,
|
||||
0x85, 0xf3, 0x35, 0x50, 0xa0, 0x03, 0x83, 0xf0, 0x09, 0x29, 0x37, 0x2f, 0xb8, 0xae, 0xdc, 0x19,
|
||||
0x18, 0xe4, 0xf1, 0xb0, 0xb6, 0x1c, 0xb7, 0x60, 0x12, 0xc4, 0x6d, 0xe0, 0xb6, 0xe7, 0x64, 0x8e,
|
||||
0x5b, 0xbf, 0x12, 0xee, 0xfa, 0xf1, 0xb0, 0x96, 0xb0, 0x77, 0xd4, 0x3d, 0xa4, 0xb0, 0x83, 0xb0,
|
||||
0x0f, 0xa0, 0x8a, 0x2d, 0x7a, 0xc7, 0xc4, 0x9a, 0xe5, 0xf4, 0xa4, 0xf4, 0x88, 0x18, 0xfe, 0x4b,
|
||||
0xd9, 0x16, 0x8a, 0x59, 0x34, 0x57, 0x85, 0x17, 0x70, 0x3b, 0x86, 0x86, 0x12, 0x7a, 0x80, 0x17,
|
||||
0xc0, 0xb4, 0x49, 0xb0, 0xa5, 0x6b, 0x95, 0x02, 0x1f, 0x85, 0x37, 0x81, 0x88, 0xb7, 0x22, 0x21,
|
||||
0x85, 0x2f, 0x82, 0x99, 0x1e, 0xb1, 0x2c, 0xdc, 0x25, 0x95, 0x22, 0x57, 0x5c, 0x10, 0x8a, 0x33,
|
||||
0x3b, 0x4e, 0x33, 0x72, 0xe5, 0xf2, 0xef, 0x25, 0x30, 0xe7, 0xcd, 0xdc, 0x09, 0x64, 0xce, 0x8d,
|
||||
0x70, 0xe6, 0xc8, 0xe3, 0x83, 0x25, 0x25, 0x61, 0x3e, 0xce, 0x07, 0x1c, 0x67, 0xe1, 0x08, 0x7f,
|
||||
0x0c, 0x4a, 0x16, 0x51, 0x49, 0x9b, 0xea, 0xa6, 0x70, 0xfc, 0xe5, 0x8c, 0x8e, 0xe3, 0x03, 0xa2,
|
||||
0xee, 0x09, 0xd3, 0xe6, 0x29, 0xe6, 0xb9, 0xfb, 0x85, 0x3c, 0x48, 0xf8, 0x2e, 0x28, 0x51, 0xd2,
|
||||
0x33, 0x54, 0x4c, 0x89, 0xc8, 0x9a, 0xe7, 0x83, 0xce, 0xb3, 0x98, 0x61, 0x60, 0x2d, 0xbd, 0x73,
|
||||
0x47, 0xa8, 0xf1, 0x94, 0xf1, 0x26, 0xc3, 0x6d, 0x45, 0x1e, 0x0c, 0x34, 0xc0, 0xbc, 0x6d, 0x74,
|
||||
0x98, 0x26, 0x65, 0xdb, 0x79, 0x77, 0x20, 0x62, 0xe8, 0xca, 0xf8, 0x59, 0xd9, 0x0f, 0xd9, 0x35,
|
||||
0x97, 0x45, 0x2f, 0xf3, 0xe1, 0x76, 0x14, 0xc1, 0x87, 0x1b, 0x60, 0xa1, 0xa7, 0x68, 0x88, 0xe0,
|
||||
0xce, 0x60, 0x8f, 0xb4, 0x75, 0xad, 0x63, 0xf1, 0x50, 0x2a, 0x36, 0x57, 0x04, 0xc0, 0xc2, 0x4e,
|
||||
0x58, 0x8c, 0xa2, 0xfa, 0x70, 0x1b, 0x2c, 0xb9, 0x1b, 0xf0, 0x4d, 0xc5, 0xa2, 0xba, 0x39, 0xd8,
|
||||
0x56, 0x7a, 0x0a, 0xad, 0x4c, 0x73, 0x9c, 0xca, 0x68, 0x58, 0x5b, 0x42, 0x09, 0x72, 0x94, 0x68,
|
||||
0x25, 0xff, 0x66, 0x1a, 0x2c, 0x44, 0xf6, 0x05, 0x78, 0x17, 0x2c, 0xb7, 0x6d, 0xd3, 0x24, 0x1a,
|
||||
0xdd, 0xb5, 0x7b, 0x07, 0xc4, 0xdc, 0x6b, 0x1f, 0x92, 0x8e, 0xad, 0x92, 0x0e, 0x5f, 0xd6, 0x62,
|
||||
0xb3, 0x2a, 0x7c, 0x5d, 0xde, 0x4c, 0xd4, 0x42, 0x29, 0xd6, 0xf0, 0x1d, 0x00, 0x35, 0xde, 0xb4,
|
||||
0xa3, 0x58, 0x96, 0x87, 0x99, 0xe3, 0x98, 0x5e, 0x2a, 0xee, 0xc6, 0x34, 0x50, 0x82, 0x15, 0xf3,
|
||||
0xb1, 0x43, 0x2c, 0xc5, 0x24, 0x9d, 0xa8, 0x8f, 0xf9, 0xb0, 0x8f, 0x5b, 0x89, 0x5a, 0x28, 0xc5,
|
||||
0x1a, 0xbe, 0x0a, 0x66, 0x9d, 0xde, 0xf8, 0x9c, 0x8b, 0xc5, 0x59, 0x14, 0x60, 0xb3, 0xbb, 0xbe,
|
||||
0x08, 0x05, 0xf5, 0xd8, 0xd0, 0xf4, 0x03, 0x8b, 0x98, 0x7d, 0xd2, 0xb9, 0xe1, 0x90, 0x03, 0x56,
|
||||
0x41, 0x8b, 0xbc, 0x82, 0x7a, 0x43, 0xbb, 0x1d, 0xd3, 0x40, 0x09, 0x56, 0x6c, 0x68, 0x4e, 0xd4,
|
||||
0xc4, 0x86, 0x36, 0x1d, 0x1e, 0xda, 0x7e, 0xa2, 0x16, 0x4a, 0xb1, 0x66, 0xb1, 0xe7, 0xb8, 0xbc,
|
||||
0xd1, 0xc7, 0x8a, 0x8a, 0x0f, 0x54, 0x52, 0x99, 0x09, 0xc7, 0xde, 0x6e, 0x58, 0x8c, 0xa2, 0xfa,
|
||||
0xf0, 0x06, 0x38, 0xe3, 0x34, 0xed, 0x6b, 0xd8, 0x03, 0x29, 0x71, 0x90, 0xe7, 0x04, 0xc8, 0x99,
|
||||
0xdd, 0xa8, 0x02, 0x8a, 0xdb, 0xc0, 0x6b, 0x60, 0xbe, 0xad, 0xab, 0x2a, 0x8f, 0xc7, 0x4d, 0xdd,
|
||||
0xd6, 0x68, 0xa5, 0xcc, 0x51, 0x20, 0xcb, 0xa1, 0xcd, 0x90, 0x04, 0x45, 0x34, 0xe1, 0x4f, 0x01,
|
||||
0x68, 0xbb, 0x85, 0xc1, 0xaa, 0x80, 0x31, 0x0c, 0x20, 0x5e, 0x96, 0xfc, 0xca, 0xec, 0x35, 0x59,
|
||||
0x28, 0x00, 0x29, 0x7f, 0x2c, 0x81, 0x95, 0x94, 0x44, 0x87, 0x6f, 0x85, 0x8a, 0xe0, 0xc5, 0x48,
|
||||
0x11, 0x3c, 0x9b, 0x62, 0x16, 0xa8, 0x84, 0x87, 0x60, 0x8e, 0x11, 0x12, 0x45, 0xeb, 0x3a, 0x2a,
|
||||
0x62, 0x2f, 0x6b, 0xa4, 0x0e, 0x00, 0x05, 0xb5, 0xfd, 0x5d, 0xf9, 0xcc, 0x68, 0x58, 0x9b, 0x0b,
|
||||
0xc9, 0x50, 0x18, 0x58, 0xfe, 0x65, 0x0e, 0x80, 0x2d, 0x62, 0xa8, 0xfa, 0xa0, 0x47, 0xb4, 0x93,
|
||||
0xe0, 0x34, 0xb7, 0x42, 0x9c, 0xe6, 0x85, 0xf4, 0x25, 0xf1, 0x9c, 0x4a, 0x25, 0x35, 0xef, 0x46,
|
||||
0x48, 0xcd, 0x8b, 0x59, 0xc0, 0x9e, 0xcc, 0x6a, 0x3e, 0xcb, 0x83, 0x45, 0x5f, 0xd9, 0xa7, 0x35,
|
||||
0xd7, 0x43, 0x2b, 0xfa, 0x42, 0x64, 0x45, 0x57, 0x12, 0x4c, 0x9e, 0x19, 0xaf, 0xf9, 0x00, 0xcc,
|
||||
0x33, 0xd6, 0xe1, 0xac, 0x1f, 0xe7, 0x34, 0xd3, 0x13, 0x73, 0x1a, 0xaf, 0x12, 0x6d, 0x87, 0x90,
|
||||
0x50, 0x04, 0x39, 0x85, 0x43, 0xcd, 0x7c, 0x1d, 0x39, 0xd4, 0x1f, 0x24, 0x30, 0xef, 0x2f, 0xd3,
|
||||
0x09, 0x90, 0xa8, 0x9b, 0x61, 0x12, 0xf5, 0x7c, 0x86, 0xe0, 0x4c, 0x61, 0x51, 0x9f, 0x15, 0x82,
|
||||
0xae, 0x73, 0x1a, 0xb5, 0xc6, 0x8e, 0x60, 0x86, 0xaa, 0xb4, 0xb1, 0x25, 0xea, 0xed, 0x29, 0xe7,
|
||||
0xf8, 0xe5, 0xb4, 0x21, 0x4f, 0x1a, 0x22, 0x5c, 0xb9, 0x67, 0x4b, 0xb8, 0xf2, 0x4f, 0x87, 0x70,
|
||||
0xfd, 0x10, 0x94, 0x2c, 0x97, 0x6a, 0x15, 0x38, 0xe4, 0xc5, 0x4c, 0x89, 0x2d, 0x58, 0x96, 0x07,
|
||||
0xed, 0xf1, 0x2b, 0x0f, 0x2e, 0x89, 0x59, 0x15, 0xbf, 0x4a, 0x66, 0xc5, 0x02, 0xdd, 0xc0, 0xb6,
|
||||
0x45, 0x3a, 0x3c, 0xa9, 0x4a, 0x7e, 0xa0, 0xb7, 0x78, 0x2b, 0x12, 0x52, 0xb8, 0x0f, 0x56, 0x0c,
|
||||
0x53, 0xef, 0x9a, 0xc4, 0xb2, 0xb6, 0x08, 0xee, 0xa8, 0x8a, 0x46, 0xdc, 0x01, 0x38, 0x35, 0xf1,
|
||||
0xec, 0x68, 0x58, 0x5b, 0x69, 0x25, 0xab, 0xa0, 0x34, 0x5b, 0xf9, 0xcf, 0x05, 0x70, 0x3a, 0xba,
|
||||
0x37, 0xa6, 0xd0, 0x14, 0xe9, 0x58, 0x34, 0xe5, 0x52, 0x20, 0x4e, 0x1d, 0x0e, 0x17, 0xb8, 0x2a,
|
||||
0x88, 0xc5, 0xea, 0x06, 0x58, 0x10, 0xb4, 0xc4, 0x15, 0x0a, 0xa2, 0xe6, 0x2d, 0xcf, 0x7e, 0x58,
|
||||
0x8c, 0xa2, 0xfa, 0xf0, 0x3a, 0x98, 0x33, 0x39, 0xf3, 0x72, 0x01, 0x1c, 0xf6, 0xf2, 0x7f, 0x02,
|
||||
0x60, 0x0e, 0x05, 0x85, 0x28, 0xac, 0xcb, 0x98, 0x8b, 0x4f, 0x48, 0x5c, 0x80, 0x42, 0x98, 0xb9,
|
||||
0x6c, 0x44, 0x15, 0x50, 0xdc, 0x06, 0xee, 0x80, 0x45, 0x5b, 0x8b, 0x43, 0x39, 0xb1, 0x76, 0x56,
|
||||
0x40, 0x2d, 0xee, 0xc7, 0x55, 0x50, 0x92, 0x1d, 0xbc, 0x17, 0x22, 0x33, 0xd3, 0x7c, 0x3f, 0xb9,
|
||||
0x94, 0x21, 0x27, 0x32, 0xb3, 0x99, 0x04, 0xaa, 0x55, 0xca, 0x4a, 0xb5, 0xe4, 0x8f, 0x24, 0x00,
|
||||
0xe3, 0x79, 0x38, 0xf6, 0x26, 0x20, 0x66, 0x11, 0xa8, 0x98, 0x4a, 0x32, 0xff, 0xb9, 0x92, 0x91,
|
||||
0xff, 0xf8, 0x1b, 0x6a, 0x36, 0x02, 0x24, 0x26, 0xfa, 0x64, 0x2e, 0x75, 0xb2, 0x12, 0x20, 0xdf,
|
||||
0xa9, 0xa7, 0x40, 0x80, 0x02, 0x60, 0x4f, 0x26, 0x40, 0xff, 0xc8, 0x81, 0x45, 0x5f, 0x39, 0x33,
|
||||
0x01, 0x4a, 0x30, 0xf9, 0xf6, 0x62, 0x27, 0x1b, 0x29, 0xf1, 0xa7, 0xee, 0x7f, 0x89, 0x94, 0xf8,
|
||||
0x5e, 0xa5, 0x90, 0x92, 0xdf, 0xe5, 0x82, 0xae, 0x4f, 0x48, 0x4a, 0x9e, 0xc2, 0x0d, 0xc7, 0xd7,
|
||||
0x8e, 0xd7, 0xc8, 0x9f, 0xe4, 0xc1, 0xe9, 0x68, 0x1e, 0x86, 0x0a, 0xa4, 0x34, 0xb6, 0x40, 0xb6,
|
||||
0xc0, 0xd2, 0x7d, 0x5b, 0x55, 0x07, 0x7c, 0x0c, 0x81, 0x2a, 0xe9, 0x94, 0xd6, 0xff, 0x17, 0x96,
|
||||
0x4b, 0x3f, 0x48, 0xd0, 0x41, 0x89, 0x96, 0xf1, 0x7a, 0x59, 0xf8, 0xb2, 0xf5, 0xb2, 0x78, 0x8c,
|
||||
0x7a, 0x99, 0x4c, 0x39, 0xf2, 0xc7, 0xa2, 0x1c, 0x93, 0x15, 0xcb, 0x84, 0x8d, 0x6b, 0xec, 0xd1,
|
||||
0x7f, 0x24, 0x81, 0xe5, 0xe4, 0x03, 0x37, 0x54, 0xc1, 0x7c, 0x0f, 0x3f, 0x08, 0x5e, 0x7c, 0x8c,
|
||||
0x2b, 0x22, 0x36, 0x55, 0xd4, 0xba, 0xf3, 0x64, 0x54, 0xbf, 0xa5, 0xd1, 0xdb, 0xe6, 0x1e, 0x35,
|
||||
0x15, 0xad, 0xeb, 0x54, 0xde, 0x9d, 0x10, 0x16, 0x8a, 0x60, 0xc3, 0xf7, 0x41, 0xa9, 0x87, 0x1f,
|
||||
0xec, 0xd9, 0x66, 0x37, 0xa9, 0x42, 0x66, 0xeb, 0x87, 0x27, 0xc0, 0x8e, 0x40, 0x41, 0x1e, 0x9e,
|
||||
0xfc, 0x85, 0x04, 0x56, 0x52, 0xaa, 0xea, 0x37, 0x68, 0x94, 0x7f, 0x92, 0xc0, 0xb9, 0xd0, 0x28,
|
||||
0x59, 0x5a, 0x92, 0xfb, 0xb6, 0xca, 0x33, 0x54, 0x30, 0x99, 0x8b, 0xa0, 0x6c, 0x60, 0x93, 0x2a,
|
||||
0x1e, 0x0f, 0x2e, 0x36, 0xe7, 0x46, 0xc3, 0x5a, 0xb9, 0xe5, 0x36, 0x22, 0x5f, 0x9e, 0x30, 0x37,
|
||||
0xb9, 0x67, 0x37, 0x37, 0xf2, 0x7f, 0x24, 0x50, 0xdc, 0x6b, 0x63, 0x95, 0x9c, 0x00, 0x71, 0xd9,
|
||||
0x0a, 0x11, 0x97, 0xf4, 0x47, 0x01, 0xee, 0x4f, 0x2a, 0x67, 0xd9, 0x8e, 0x70, 0x96, 0xf3, 0x63,
|
||||
0x70, 0x9e, 0x4c, 0x57, 0xde, 0x00, 0x65, 0xaf, 0xbb, 0xc9, 0xf6, 0x52, 0xf9, 0xb7, 0x39, 0x30,
|
||||
0x1b, 0xe8, 0x62, 0xc2, 0x9d, 0xf8, 0x5e, 0xa8, 0xfc, 0xb0, 0x3d, 0x66, 0x3d, 0xcb, 0x40, 0xea,
|
||||
0x6e, 0xa9, 0x79, 0x5b, 0xa3, 0x66, 0xf0, 0xac, 0x1a, 0xaf, 0x40, 0x6f, 0x82, 0x79, 0x8a, 0xcd,
|
||||
0x2e, 0xa1, 0xae, 0x8c, 0x4f, 0x58, 0xd9, 0xbf, 0xbb, 0xb9, 0x13, 0x92, 0xa2, 0x88, 0xf6, 0xea,
|
||||
0x75, 0x30, 0x17, 0xea, 0x0c, 0x9e, 0x06, 0xf9, 0x23, 0x32, 0x70, 0x18, 0x1c, 0x62, 0x3f, 0xe1,
|
||||
0x12, 0x28, 0xf6, 0xb1, 0x6a, 0x3b, 0x21, 0x5a, 0x46, 0xce, 0xc7, 0xb5, 0xdc, 0xeb, 0x92, 0xfc,
|
||||
0x2b, 0x36, 0x39, 0x7e, 0x2a, 0x9c, 0x40, 0x74, 0xbd, 0x13, 0x8a, 0xae, 0xf4, 0xf7, 0xc9, 0x60,
|
||||
0x82, 0xa6, 0xc5, 0x18, 0x8a, 0xc4, 0xd8, 0x4b, 0x99, 0xd0, 0x9e, 0x1c, 0x69, 0xff, 0xcc, 0x81,
|
||||
0xa5, 0x80, 0xb6, 0xcf, 0x8c, 0xbf, 0x1b, 0x62, 0xc6, 0x6b, 0x11, 0x66, 0x5c, 0x49, 0xb2, 0xf9,
|
||||
0x96, 0x1a, 0x8f, 0xa7, 0xc6, 0x7f, 0x94, 0xc0, 0x42, 0x60, 0xee, 0x4e, 0x80, 0x1b, 0xdf, 0x0a,
|
||||
0x73, 0xe3, 0xf3, 0x59, 0x82, 0x26, 0x85, 0x1c, 0xff, 0x4b, 0x02, 0x8d, 0x80, 0x56, 0x8b, 0x98,
|
||||
0x96, 0x62, 0x51, 0xa2, 0xd1, 0xbb, 0xba, 0x6a, 0xf7, 0xc8, 0xa6, 0x8a, 0x95, 0x1e, 0x22, 0xac,
|
||||
0x41, 0xd1, 0xb5, 0x96, 0xae, 0x2a, 0xed, 0x01, 0xc4, 0x60, 0xf6, 0xc3, 0x43, 0xa2, 0x6d, 0x11,
|
||||
0x95, 0x50, 0xf1, 0x8a, 0x56, 0x6e, 0xbe, 0xe5, 0x3e, 0x2a, 0xbd, 0xe7, 0x8b, 0x1e, 0x0f, 0x6b,
|
||||
0x6b, 0x59, 0x10, 0x79, 0x94, 0x05, 0x31, 0xe1, 0x4f, 0x00, 0x60, 0x9f, 0x7c, 0x3f, 0xea, 0x88,
|
||||
0x80, 0x7b, 0xd3, 0xcd, 0xca, 0xf7, 0x3c, 0xc9, 0x44, 0x1d, 0x04, 0x10, 0xe5, 0xbf, 0xce, 0x84,
|
||||
0xd6, 0xec, 0x1b, 0x7f, 0x53, 0xf9, 0x33, 0xb0, 0xd4, 0xf7, 0x67, 0xc7, 0x55, 0x60, 0x1c, 0x3a,
|
||||
0x1f, 0x3d, 0x8d, 0x7b, 0xf0, 0x49, 0xf3, 0xea, 0x33, 0xf7, 0xbb, 0x09, 0x70, 0x28, 0xb1, 0x13,
|
||||
0xf8, 0x2a, 0x98, 0x65, 0xdc, 0x57, 0x69, 0x93, 0x5d, 0xdc, 0x73, 0xf3, 0xc9, 0x7b, 0x84, 0xdc,
|
||||
0xf3, 0x45, 0x28, 0xa8, 0x07, 0x0f, 0xc1, 0xa2, 0xa1, 0x77, 0x76, 0xb0, 0x86, 0xbb, 0x84, 0x91,
|
||||
0x39, 0x67, 0x29, 0xf9, 0xf5, 0x65, 0xb9, 0xf9, 0x9a, 0x7b, 0x35, 0xd5, 0x8a, 0xab, 0xb0, 0x63,
|
||||
0x7e, 0x42, 0x33, 0x0f, 0x82, 0x24, 0x48, 0x68, 0xc6, 0x1e, 0xce, 0x9d, 0x87, 0x83, 0xf5, 0x2c,
|
||||
0x89, 0x75, 0xcc, 0xa7, 0xf3, 0xb4, 0xdb, 0xd9, 0xd2, 0xb1, 0x6e, 0x67, 0x13, 0x8e, 0xa9, 0xe5,
|
||||
0x09, 0x8f, 0xa9, 0x9f, 0x48, 0xe0, 0xbc, 0x91, 0x21, 0x97, 0x2a, 0x80, 0xcf, 0xcd, 0xcd, 0x2c,
|
||||
0x73, 0x93, 0x25, 0x37, 0x9b, 0x6b, 0xa3, 0x61, 0xed, 0x7c, 0x16, 0x4d, 0x94, 0xc9, 0x3f, 0xf9,
|
||||
0xa3, 0x22, 0x38, 0x13, 0xab, 0x96, 0x5f, 0xe1, 0x5d, 0x71, 0xec, 0xe0, 0x9a, 0x9f, 0xe0, 0xe0,
|
||||
0xba, 0x01, 0x16, 0xc4, 0xdf, 0x0f, 0x22, 0xe7, 0x5e, 0x6f, 0x61, 0x37, 0xc3, 0x62, 0x14, 0xd5,
|
||||
0x4f, 0xba, 0xab, 0x2e, 0x4e, 0x78, 0x57, 0x1d, 0xf4, 0x42, 0xfc, 0x9d, 0xce, 0x49, 0xc3, 0xb8,
|
||||
0x17, 0xe2, 0x5f, 0x75, 0x51, 0x7d, 0x46, 0x12, 0x1d, 0x54, 0x0f, 0x61, 0x26, 0x4c, 0x12, 0xf7,
|
||||
0x43, 0x52, 0x14, 0xd1, 0xfe, 0x52, 0x4f, 0xec, 0x38, 0xe1, 0x89, 0xfd, 0x72, 0x96, 0xf8, 0xcd,
|
||||
0x7e, 0x2d, 0x9d, 0x78, 0xc1, 0x30, 0x3b, 0xf9, 0x05, 0x83, 0xfc, 0x17, 0x09, 0x3c, 0x97, 0xba,
|
||||
0xbb, 0xc0, 0x8d, 0x10, 0x85, 0xbb, 0x1c, 0xa1, 0x70, 0xdf, 0x49, 0x35, 0x0c, 0xf0, 0x38, 0x33,
|
||||
0xf9, 0xc6, 0xfa, 0x8d, 0x6c, 0x37, 0xd6, 0x09, 0xa7, 0xce, 0xf1, 0x57, 0xd7, 0xcd, 0xef, 0x3d,
|
||||
0x7c, 0x54, 0x9d, 0xfa, 0xf4, 0x51, 0x75, 0xea, 0xf3, 0x47, 0xd5, 0xa9, 0x9f, 0x8f, 0xaa, 0xd2,
|
||||
0xc3, 0x51, 0x55, 0xfa, 0x74, 0x54, 0x95, 0x3e, 0x1f, 0x55, 0xa5, 0xbf, 0x8d, 0xaa, 0xd2, 0xaf,
|
||||
0xbf, 0xa8, 0x4e, 0xbd, 0xbf, 0x92, 0xf2, 0x07, 0xdf, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x5c,
|
||||
0xbc, 0x64, 0x9c, 0x13, 0x2c, 0x00, 0x00,
|
||||
// 2349 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7,
|
||||
0x15, 0xf7, 0xf2, 0x43, 0x26, 0x87, 0x96, 0x64, 0x8f, 0x54, 0x89, 0xb1, 0x5b, 0xd2, 0xd8, 0x18,
|
||||
0x8e, 0x12, 0xdb, 0xa4, 0xad, 0x7c, 0x20, 0xb1, 0xdb, 0xb8, 0xa2, 0x94, 0xda, 0x0e, 0xf4, 0xc1,
|
||||
0x0c, 0x2d, 0x05, 0x0d, 0xfa, 0xe1, 0x11, 0x39, 0xa6, 0x36, 0x5a, 0xee, 0x2e, 0x76, 0x87, 0x8c,
|
||||
0x89, 0x5e, 0x7a, 0x2d, 0x50, 0xa0, 0xed, 0xb5, 0xff, 0x44, 0xd1, 0x4b, 0x51, 0x34, 0xe8, 0xa5,
|
||||
0x08, 0x02, 0x1f, 0x83, 0x5e, 0x92, 0x13, 0x51, 0x33, 0xa7, 0xa2, 0xe8, 0xad, 0xbd, 0x18, 0x28,
|
||||
0x50, 0xcc, 0xec, 0xec, 0xf7, 0xae, 0xb9, 0x54, 0x6c, 0xe5, 0x03, 0xb9, 0x71, 0xe7, 0xbd, 0xf7,
|
||||
0x9b, 0xf7, 0x66, 0xde, 0x9b, 0xf7, 0xdb, 0x59, 0x82, 0x1f, 0x1e, 0xbe, 0x6e, 0xd5, 0x14, 0xbd,
|
||||
0x7e, 0xd8, 0xdf, 0x27, 0xa6, 0x46, 0x28, 0xb1, 0xea, 0x03, 0xa2, 0x75, 0x74, 0xb3, 0x2e, 0x04,
|
||||
0xd8, 0x50, 0xea, 0xd8, 0x30, 0xac, 0xfa, 0xe0, 0xda, 0x3e, 0xa1, 0x78, 0xb5, 0xde, 0x25, 0x1a,
|
||||
0x31, 0x31, 0x25, 0x9d, 0x9a, 0x61, 0xea, 0x54, 0x87, 0xcb, 0xb6, 0x62, 0x0d, 0x1b, 0x4a, 0x8d,
|
||||
0x29, 0xd6, 0x84, 0xe2, 0xd9, 0x2b, 0x5d, 0x85, 0x1e, 0xf4, 0xf7, 0x6b, 0x6d, 0xbd, 0x57, 0xef,
|
||||
0xea, 0x5d, 0xbd, 0xce, 0xf5, 0xf7, 0xfb, 0xf7, 0xf9, 0x13, 0x7f, 0xe0, 0xbf, 0x6c, 0x9c, 0xb3,
|
||||
0xb2, 0x6f, 0xc2, 0xb6, 0x6e, 0x92, 0xfa, 0xe0, 0x5a, 0x78, 0xae, 0xb3, 0xaf, 0x78, 0x3a, 0x3d,
|
||||
0xdc, 0x3e, 0x50, 0x34, 0x62, 0x0e, 0xeb, 0xc6, 0x61, 0x97, 0x0d, 0x58, 0xf5, 0x1e, 0xa1, 0x38,
|
||||
0xce, 0xaa, 0x9e, 0x64, 0x65, 0xf6, 0x35, 0xaa, 0xf4, 0x48, 0xc4, 0xe0, 0xb5, 0x49, 0x06, 0x56,
|
||||
0xfb, 0x80, 0xf4, 0x70, 0xc4, 0xee, 0xe5, 0x24, 0xbb, 0x3e, 0x55, 0xd4, 0xba, 0xa2, 0x51, 0x8b,
|
||||
0x9a, 0x61, 0x23, 0xf9, 0xbf, 0x12, 0x80, 0xeb, 0xba, 0x46, 0x4d, 0x5d, 0x55, 0x89, 0x89, 0xc8,
|
||||
0x40, 0xb1, 0x14, 0x5d, 0x83, 0xf7, 0x40, 0x81, 0xc5, 0xd3, 0xc1, 0x14, 0x97, 0xa5, 0xf3, 0xd2,
|
||||
0x4a, 0x69, 0xf5, 0x6a, 0xcd, 0x5b, 0x69, 0x17, 0xbe, 0x66, 0x1c, 0x76, 0xd9, 0x80, 0x55, 0x63,
|
||||
0xda, 0xb5, 0xc1, 0xb5, 0xda, 0xce, 0xfe, 0xfb, 0xa4, 0x4d, 0xb7, 0x08, 0xc5, 0x0d, 0xf8, 0x70,
|
||||
0x54, 0x3d, 0x31, 0x1e, 0x55, 0x81, 0x37, 0x86, 0x5c, 0x54, 0xb8, 0x03, 0x72, 0x1c, 0x3d, 0xc3,
|
||||
0xd1, 0xaf, 0x24, 0xa2, 0x8b, 0xa0, 0x6b, 0x08, 0x7f, 0xf0, 0xd6, 0x03, 0x4a, 0x34, 0xe6, 0x5e,
|
||||
0xe3, 0x94, 0x80, 0xce, 0x6d, 0x60, 0x8a, 0x11, 0x07, 0x82, 0x97, 0x41, 0xc1, 0x14, 0xee, 0x97,
|
||||
0xb3, 0xe7, 0xa5, 0x95, 0x6c, 0xe3, 0xb4, 0xd0, 0x2a, 0x38, 0x61, 0x21, 0x57, 0x43, 0x7e, 0x28,
|
||||
0x81, 0xa5, 0x68, 0xdc, 0x9b, 0x8a, 0x45, 0xe1, 0x4f, 0x22, 0xb1, 0xd7, 0xd2, 0xc5, 0xce, 0xac,
|
||||
0x79, 0xe4, 0xee, 0xc4, 0xce, 0x88, 0x2f, 0xee, 0x26, 0xc8, 0x2b, 0x94, 0xf4, 0xac, 0x72, 0xe6,
|
||||
0x7c, 0x76, 0xa5, 0xb4, 0x7a, 0xa9, 0x96, 0x90, 0xc0, 0xb5, 0xa8, 0x77, 0x8d, 0x59, 0x81, 0x9b,
|
||||
0xbf, 0xc3, 0x10, 0x90, 0x0d, 0x24, 0xff, 0x2a, 0x03, 0x8a, 0x1b, 0x98, 0xf4, 0x74, 0xad, 0x45,
|
||||
0xe8, 0x31, 0xec, 0xdc, 0x6d, 0x90, 0xb3, 0x0c, 0xd2, 0x16, 0x3b, 0x77, 0x31, 0x31, 0x00, 0xd7,
|
||||
0xa7, 0x96, 0x41, 0xda, 0xde, 0x96, 0xb1, 0x27, 0xc4, 0x11, 0x60, 0x13, 0xcc, 0x58, 0x14, 0xd3,
|
||||
0xbe, 0xc5, 0x37, 0xac, 0xb4, 0xba, 0x92, 0x02, 0x8b, 0xeb, 0x37, 0xe6, 0x04, 0xda, 0x8c, 0xfd,
|
||||
0x8c, 0x04, 0x8e, 0xfc, 0xcf, 0x0c, 0x80, 0xae, 0xee, 0xba, 0xae, 0x75, 0x14, 0xca, 0xd2, 0xf9,
|
||||
0x3a, 0xc8, 0xd1, 0xa1, 0x41, 0xf8, 0x82, 0x14, 0x1b, 0x17, 0x1d, 0x57, 0xee, 0x0e, 0x0d, 0xf2,
|
||||
0x78, 0x54, 0x5d, 0x8a, 0x5a, 0x30, 0x09, 0xe2, 0x36, 0x70, 0xd3, 0x75, 0x32, 0xc3, 0xad, 0x5f,
|
||||
0x09, 0x4e, 0xfd, 0x78, 0x54, 0x8d, 0x39, 0x3b, 0x6a, 0x2e, 0x52, 0xd0, 0x41, 0x38, 0x00, 0x50,
|
||||
0xc5, 0x16, 0xbd, 0x6b, 0x62, 0xcd, 0xb2, 0x67, 0x52, 0x7a, 0x44, 0x84, 0xff, 0x52, 0xba, 0x8d,
|
||||
0x62, 0x16, 0x8d, 0xb3, 0xc2, 0x0b, 0xb8, 0x19, 0x41, 0x43, 0x31, 0x33, 0xc0, 0x8b, 0x60, 0xc6,
|
||||
0x24, 0xd8, 0xd2, 0xb5, 0x72, 0x8e, 0x47, 0xe1, 0x2e, 0x20, 0xe2, 0xa3, 0x48, 0x48, 0xe1, 0x8b,
|
||||
0xe0, 0x64, 0x8f, 0x58, 0x16, 0xee, 0x92, 0x72, 0x9e, 0x2b, 0xce, 0x0b, 0xc5, 0x93, 0x5b, 0xf6,
|
||||
0x30, 0x72, 0xe4, 0xf2, 0x9f, 0x24, 0x30, 0xeb, 0xae, 0xdc, 0x31, 0x54, 0xce, 0xad, 0x60, 0xe5,
|
||||
0xc8, 0x93, 0x93, 0x25, 0xa1, 0x60, 0x3e, 0xca, 0xfa, 0x1c, 0x67, 0xe9, 0x08, 0x7f, 0x0a, 0x0a,
|
||||
0x16, 0x51, 0x49, 0x9b, 0xea, 0xa6, 0x70, 0xfc, 0xe5, 0x94, 0x8e, 0xe3, 0x7d, 0xa2, 0xb6, 0x84,
|
||||
0x69, 0xe3, 0x14, 0xf3, 0xdc, 0x79, 0x42, 0x2e, 0x24, 0x7c, 0x07, 0x14, 0x28, 0xe9, 0x19, 0x2a,
|
||||
0xa6, 0x44, 0x54, 0xcd, 0xf3, 0x7e, 0xe7, 0x59, 0xce, 0x30, 0xb0, 0xa6, 0xde, 0xb9, 0x2b, 0xd4,
|
||||
0x78, 0xc9, 0xb8, 0x8b, 0xe1, 0x8c, 0x22, 0x17, 0x06, 0x1a, 0x60, 0xae, 0x6f, 0x74, 0x98, 0x26,
|
||||
0x65, 0xc7, 0x79, 0x77, 0x28, 0x72, 0xe8, 0xea, 0xe4, 0x55, 0xd9, 0x0d, 0xd8, 0x35, 0x96, 0xc4,
|
||||
0x2c, 0x73, 0xc1, 0x71, 0x14, 0xc2, 0x87, 0x6b, 0x60, 0xbe, 0xa7, 0x68, 0x88, 0xe0, 0xce, 0xb0,
|
||||
0x45, 0xda, 0xba, 0xd6, 0xb1, 0x78, 0x2a, 0xe5, 0x1b, 0xcb, 0x02, 0x60, 0x7e, 0x2b, 0x28, 0x46,
|
||||
0x61, 0x7d, 0xb8, 0x09, 0x16, 0x9d, 0x03, 0xf8, 0xb6, 0x62, 0x51, 0xdd, 0x1c, 0x6e, 0x2a, 0x3d,
|
||||
0x85, 0x96, 0x67, 0x38, 0x4e, 0x79, 0x3c, 0xaa, 0x2e, 0xa2, 0x18, 0x39, 0x8a, 0xb5, 0x92, 0x7f,
|
||||
0x37, 0x03, 0xe6, 0x43, 0xe7, 0x02, 0xdc, 0x03, 0x4b, 0xed, 0xbe, 0x69, 0x12, 0x8d, 0x6e, 0xf7,
|
||||
0x7b, 0xfb, 0xc4, 0x6c, 0xb5, 0x0f, 0x48, 0xa7, 0xaf, 0x92, 0x0e, 0xdf, 0xd6, 0x7c, 0xa3, 0x22,
|
||||
0x7c, 0x5d, 0x5a, 0x8f, 0xd5, 0x42, 0x09, 0xd6, 0xf0, 0x6d, 0x00, 0x35, 0x3e, 0xb4, 0xa5, 0x58,
|
||||
0x96, 0x8b, 0x99, 0xe1, 0x98, 0x6e, 0x29, 0x6e, 0x47, 0x34, 0x50, 0x8c, 0x15, 0xf3, 0xb1, 0x43,
|
||||
0x2c, 0xc5, 0x24, 0x9d, 0xb0, 0x8f, 0xd9, 0xa0, 0x8f, 0x1b, 0xb1, 0x5a, 0x28, 0xc1, 0x1a, 0xbe,
|
||||
0x0a, 0x4a, 0xf6, 0x6c, 0x7c, 0xcd, 0xc5, 0xe6, 0x2c, 0x08, 0xb0, 0xd2, 0xb6, 0x27, 0x42, 0x7e,
|
||||
0x3d, 0x16, 0x9a, 0xbe, 0x6f, 0x11, 0x73, 0x40, 0x3a, 0xb7, 0x6c, 0x72, 0xc0, 0x3a, 0x68, 0x9e,
|
||||
0x77, 0x50, 0x37, 0xb4, 0x9d, 0x88, 0x06, 0x8a, 0xb1, 0x62, 0xa1, 0xd9, 0x59, 0x13, 0x09, 0x6d,
|
||||
0x26, 0x18, 0xda, 0x6e, 0xac, 0x16, 0x4a, 0xb0, 0x66, 0xb9, 0x67, 0xbb, 0xbc, 0x36, 0xc0, 0x8a,
|
||||
0x8a, 0xf7, 0x55, 0x52, 0x3e, 0x19, 0xcc, 0xbd, 0xed, 0xa0, 0x18, 0x85, 0xf5, 0xe1, 0x2d, 0x70,
|
||||
0xc6, 0x1e, 0xda, 0xd5, 0xb0, 0x0b, 0x52, 0xe0, 0x20, 0xcf, 0x09, 0x90, 0x33, 0xdb, 0x61, 0x05,
|
||||
0x14, 0xb5, 0x81, 0xd7, 0xc1, 0x5c, 0x5b, 0x57, 0x55, 0x9e, 0x8f, 0xeb, 0x7a, 0x5f, 0xa3, 0xe5,
|
||||
0x22, 0x47, 0x81, 0xac, 0x86, 0xd6, 0x03, 0x12, 0x14, 0xd2, 0x84, 0x3f, 0x07, 0xa0, 0xed, 0x34,
|
||||
0x06, 0xab, 0x0c, 0x26, 0x30, 0x80, 0x68, 0x5b, 0xf2, 0x3a, 0xb3, 0x3b, 0x64, 0x21, 0x1f, 0xa4,
|
||||
0xfc, 0x91, 0x04, 0x96, 0x13, 0x0a, 0x1d, 0xde, 0x0c, 0x34, 0xc1, 0x4b, 0xa1, 0x26, 0x78, 0x2e,
|
||||
0xc1, 0xcc, 0xd7, 0x09, 0x0f, 0xc0, 0x2c, 0x23, 0x24, 0x8a, 0xd6, 0xb5, 0x55, 0xc4, 0x59, 0x56,
|
||||
0x4f, 0x0c, 0x00, 0xf9, 0xb5, 0xbd, 0x53, 0xf9, 0xcc, 0x78, 0x54, 0x9d, 0x0d, 0xc8, 0x50, 0x10,
|
||||
0x58, 0xfe, 0x75, 0x06, 0x80, 0x0d, 0x62, 0xa8, 0xfa, 0xb0, 0x47, 0xb4, 0xe3, 0xe0, 0x34, 0x77,
|
||||
0x02, 0x9c, 0xe6, 0x85, 0xe4, 0x2d, 0x71, 0x9d, 0x4a, 0x24, 0x35, 0xef, 0x84, 0x48, 0xcd, 0x8b,
|
||||
0x69, 0xc0, 0x9e, 0xcc, 0x6a, 0x3e, 0xcd, 0x82, 0x05, 0x4f, 0xd9, 0xa3, 0x35, 0x37, 0x02, 0x3b,
|
||||
0xfa, 0x42, 0x68, 0x47, 0x97, 0x63, 0x4c, 0x9e, 0x19, 0xaf, 0x79, 0x1f, 0xcc, 0x31, 0xd6, 0x61,
|
||||
0xef, 0x1f, 0xe7, 0x34, 0x33, 0x53, 0x73, 0x1a, 0xb7, 0x13, 0x6d, 0x06, 0x90, 0x50, 0x08, 0x39,
|
||||
0x81, 0x43, 0x9d, 0xfc, 0x3a, 0x72, 0xa8, 0x3f, 0x4b, 0x60, 0xce, 0xdb, 0xa6, 0x63, 0x20, 0x51,
|
||||
0xb7, 0x83, 0x24, 0xea, 0xf9, 0x14, 0xc9, 0x99, 0xc0, 0xa2, 0x3e, 0xcd, 0xf9, 0x5d, 0xe7, 0x34,
|
||||
0x6a, 0x85, 0xbd, 0x82, 0x19, 0xaa, 0xd2, 0xc6, 0x96, 0xe8, 0xb7, 0xa7, 0xec, 0xd7, 0x2f, 0x7b,
|
||||
0x0c, 0xb9, 0xd2, 0x00, 0xe1, 0xca, 0x3c, 0x5b, 0xc2, 0x95, 0x7d, 0x3a, 0x84, 0xeb, 0xc7, 0xa0,
|
||||
0x60, 0x39, 0x54, 0x2b, 0xc7, 0x21, 0x2f, 0xa5, 0x2a, 0x6c, 0xc1, 0xb2, 0x5c, 0x68, 0x97, 0x5f,
|
||||
0xb9, 0x70, 0x71, 0xcc, 0x2a, 0xff, 0x65, 0x32, 0x2b, 0x96, 0xe8, 0x06, 0xee, 0x5b, 0xa4, 0xc3,
|
||||
0x8b, 0xaa, 0xe0, 0x25, 0x7a, 0x93, 0x8f, 0x22, 0x21, 0x85, 0xbb, 0x60, 0xd9, 0x30, 0xf5, 0xae,
|
||||
0x49, 0x2c, 0x6b, 0x83, 0xe0, 0x8e, 0xaa, 0x68, 0xc4, 0x09, 0xc0, 0xee, 0x89, 0xe7, 0xc6, 0xa3,
|
||||
0xea, 0x72, 0x33, 0x5e, 0x05, 0x25, 0xd9, 0xca, 0x7f, 0xcb, 0x81, 0xd3, 0xe1, 0xb3, 0x31, 0x81,
|
||||
0xa6, 0x48, 0x47, 0xa2, 0x29, 0x97, 0x7d, 0x79, 0x6a, 0x73, 0x38, 0xdf, 0x55, 0x41, 0x24, 0x57,
|
||||
0xd7, 0xc0, 0xbc, 0xa0, 0x25, 0x8e, 0x50, 0x10, 0x35, 0x77, 0x7b, 0x76, 0x83, 0x62, 0x14, 0xd6,
|
||||
0x87, 0x37, 0xc0, 0xac, 0xc9, 0x99, 0x97, 0x03, 0x60, 0xb3, 0x97, 0xef, 0x08, 0x80, 0x59, 0xe4,
|
||||
0x17, 0xa2, 0xa0, 0x2e, 0x63, 0x2e, 0x1e, 0x21, 0x71, 0x00, 0x72, 0x41, 0xe6, 0xb2, 0x16, 0x56,
|
||||
0x40, 0x51, 0x1b, 0xb8, 0x05, 0x16, 0xfa, 0x5a, 0x14, 0xca, 0xce, 0xb5, 0x73, 0x02, 0x6a, 0x61,
|
||||
0x37, 0xaa, 0x82, 0xe2, 0xec, 0xe0, 0xbd, 0x00, 0x99, 0x99, 0xe1, 0xe7, 0xc9, 0xe5, 0x14, 0x35,
|
||||
0x91, 0x9a, 0xcd, 0xc4, 0x50, 0xad, 0x42, 0x5a, 0xaa, 0x25, 0x7f, 0x28, 0x01, 0x18, 0xad, 0xc3,
|
||||
0x89, 0x37, 0x01, 0x11, 0x0b, 0x5f, 0xc7, 0x54, 0xe2, 0xf9, 0xcf, 0xd5, 0x94, 0xfc, 0xc7, 0x3b,
|
||||
0x50, 0xd3, 0x11, 0x20, 0xb1, 0xd0, 0xc7, 0x73, 0xa9, 0x93, 0x96, 0x00, 0x79, 0x4e, 0x3d, 0x05,
|
||||
0x02, 0xe4, 0x03, 0x7b, 0x32, 0x01, 0xfa, 0x57, 0x06, 0x2c, 0x78, 0xca, 0xa9, 0x09, 0x50, 0x8c,
|
||||
0xc9, 0xb7, 0x17, 0x3b, 0xe9, 0x48, 0x89, 0xb7, 0x74, 0x5f, 0x25, 0x52, 0xe2, 0x79, 0x95, 0x40,
|
||||
0x4a, 0xfe, 0x90, 0xf1, 0xbb, 0x3e, 0x25, 0x29, 0x79, 0x0a, 0x37, 0x1c, 0x5f, 0x3b, 0x5e, 0x23,
|
||||
0x7f, 0x9c, 0x05, 0xa7, 0xc3, 0x75, 0x18, 0x68, 0x90, 0xd2, 0xc4, 0x06, 0xd9, 0x04, 0x8b, 0xf7,
|
||||
0xfb, 0xaa, 0x3a, 0xe4, 0x31, 0xf8, 0xba, 0xa4, 0xdd, 0x5a, 0xbf, 0x2b, 0x2c, 0x17, 0x7f, 0x14,
|
||||
0xa3, 0x83, 0x62, 0x2d, 0xa3, 0xfd, 0x32, 0xf7, 0x45, 0xfb, 0x65, 0xfe, 0x08, 0xfd, 0x32, 0x9e,
|
||||
0x72, 0x64, 0x8f, 0x44, 0x39, 0xa6, 0x6b, 0x96, 0x31, 0x07, 0xd7, 0xc4, 0x57, 0xff, 0xb1, 0x04,
|
||||
0x96, 0xe2, 0x5f, 0xb8, 0xa1, 0x0a, 0xe6, 0x7a, 0xf8, 0x81, 0xff, 0xe2, 0x63, 0x52, 0x13, 0xe9,
|
||||
0x53, 0x45, 0xad, 0xd9, 0x9f, 0x8c, 0x6a, 0x77, 0x34, 0xba, 0x63, 0xb6, 0xa8, 0xa9, 0x68, 0x5d,
|
||||
0xbb, 0xf3, 0x6e, 0x05, 0xb0, 0x50, 0x08, 0x1b, 0xbe, 0x07, 0x0a, 0x3d, 0xfc, 0xa0, 0xd5, 0x37,
|
||||
0xbb, 0x71, 0x1d, 0x32, 0xdd, 0x3c, 0xbc, 0x00, 0xb6, 0x04, 0x0a, 0x72, 0xf1, 0xe4, 0xcf, 0x25,
|
||||
0xb0, 0x9c, 0xd0, 0x55, 0xbf, 0x41, 0x51, 0xfe, 0x55, 0x02, 0xe7, 0x03, 0x51, 0xb2, 0xb2, 0x24,
|
||||
0xf7, 0xfb, 0x2a, 0xaf, 0x50, 0xc1, 0x64, 0x2e, 0x81, 0xa2, 0x81, 0x4d, 0xaa, 0xb8, 0x3c, 0x38,
|
||||
0xdf, 0x98, 0x1d, 0x8f, 0xaa, 0xc5, 0xa6, 0x33, 0x88, 0x3c, 0x79, 0xcc, 0xda, 0x64, 0x9e, 0xdd,
|
||||
0xda, 0xc8, 0xff, 0x93, 0x40, 0xbe, 0xd5, 0xc6, 0x2a, 0x39, 0x06, 0xe2, 0xb2, 0x11, 0x20, 0x2e,
|
||||
0xc9, 0x1f, 0x05, 0xb8, 0x3f, 0x89, 0x9c, 0x65, 0x33, 0xc4, 0x59, 0x2e, 0x4c, 0xc0, 0x79, 0x32,
|
||||
0x5d, 0x79, 0x03, 0x14, 0xdd, 0xe9, 0xa6, 0x3b, 0x4b, 0xe5, 0xdf, 0x67, 0x40, 0xc9, 0x37, 0xc5,
|
||||
0x94, 0x27, 0xf1, 0xbd, 0x40, 0xfb, 0x61, 0x67, 0xcc, 0x6a, 0x9a, 0x40, 0x6a, 0x4e, 0xab, 0x79,
|
||||
0x4b, 0xa3, 0xa6, 0xff, 0x5d, 0x35, 0xda, 0x81, 0xde, 0x04, 0x73, 0x14, 0x9b, 0x5d, 0x42, 0x1d,
|
||||
0x19, 0x5f, 0xb0, 0xa2, 0x77, 0x77, 0x73, 0x37, 0x20, 0x45, 0x21, 0xed, 0xb3, 0x37, 0xc0, 0x6c,
|
||||
0x60, 0x32, 0x78, 0x1a, 0x64, 0x0f, 0xc9, 0xd0, 0x66, 0x70, 0x88, 0xfd, 0x84, 0x8b, 0x20, 0x3f,
|
||||
0xc0, 0x6a, 0xdf, 0x4e, 0xd1, 0x22, 0xb2, 0x1f, 0xae, 0x67, 0x5e, 0x97, 0xe4, 0xdf, 0xb0, 0xc5,
|
||||
0xf1, 0x4a, 0xe1, 0x18, 0xb2, 0xeb, 0xed, 0x40, 0x76, 0x25, 0x7f, 0x9f, 0xf4, 0x17, 0x68, 0x52,
|
||||
0x8e, 0xa1, 0x50, 0x8e, 0xbd, 0x94, 0x0a, 0xed, 0xc9, 0x99, 0xf6, 0xef, 0x0c, 0x58, 0xf4, 0x69,
|
||||
0x7b, 0xcc, 0xf8, 0xfb, 0x01, 0x66, 0xbc, 0x12, 0x62, 0xc6, 0xe5, 0x38, 0x9b, 0x6f, 0xa9, 0xf1,
|
||||
0x64, 0x6a, 0xfc, 0x17, 0x09, 0xcc, 0xfb, 0xd6, 0xee, 0x18, 0xb8, 0xf1, 0x9d, 0x20, 0x37, 0xbe,
|
||||
0x90, 0x26, 0x69, 0x12, 0xc8, 0xf1, 0x1e, 0x58, 0xf0, 0x29, 0xed, 0x98, 0x1d, 0x45, 0xc3, 0xaa,
|
||||
0x05, 0x6f, 0x82, 0x05, 0x71, 0x80, 0xb4, 0x28, 0x36, 0x9d, 0x71, 0xa7, 0xa5, 0x38, 0x48, 0x5c,
|
||||
0x86, 0xe2, 0x34, 0xe5, 0xff, 0x48, 0xa0, 0xee, 0x03, 0x6e, 0x12, 0xd3, 0x52, 0x2c, 0x4a, 0x34,
|
||||
0xba, 0xa7, 0xab, 0xfd, 0x1e, 0x59, 0x57, 0xb1, 0xd2, 0x43, 0x84, 0x0d, 0x28, 0xba, 0xd6, 0xd4,
|
||||
0x55, 0xa5, 0x3d, 0x84, 0x18, 0x94, 0x3e, 0x38, 0x20, 0xda, 0x06, 0x51, 0x09, 0x15, 0x5f, 0xe7,
|
||||
0x8a, 0x8d, 0x9b, 0xce, 0xc7, 0xaa, 0x77, 0x3d, 0xd1, 0xe3, 0x51, 0x75, 0x25, 0x0d, 0x22, 0xcf,
|
||||
0x5e, 0x3f, 0x26, 0xfc, 0x19, 0x00, 0xec, 0x91, 0x9f, 0x73, 0x1d, 0x91, 0xc8, 0x6f, 0x3a, 0xd5,
|
||||
0xfe, 0xae, 0x2b, 0x99, 0x6a, 0x02, 0x1f, 0xa2, 0xfc, 0xc7, 0x42, 0x20, 0x17, 0xbe, 0xf1, 0x37,
|
||||
0xa0, 0xbf, 0x00, 0x8b, 0x03, 0x6f, 0x75, 0x1c, 0x05, 0xc6, 0xcd, 0xb3, 0xe1, 0xb7, 0x7c, 0x17,
|
||||
0x3e, 0x6e, 0x5d, 0xbd, 0x37, 0x82, 0xbd, 0x18, 0x38, 0x14, 0x3b, 0x09, 0x7c, 0x15, 0x94, 0x18,
|
||||
0xa7, 0x56, 0xda, 0x64, 0x1b, 0xf7, 0x9c, 0x3a, 0x75, 0x3f, 0x6e, 0xb6, 0x3c, 0x11, 0xf2, 0xeb,
|
||||
0xc1, 0x03, 0xb0, 0x60, 0xe8, 0x9d, 0x2d, 0xac, 0xe1, 0x2e, 0x61, 0x24, 0xd1, 0xde, 0x4a, 0x7e,
|
||||
0x2d, 0x5a, 0x6c, 0xbc, 0xe6, 0x5c, 0x79, 0x35, 0xa3, 0x2a, 0x8f, 0x47, 0xd5, 0xe5, 0x98, 0x61,
|
||||
0x9e, 0x04, 0x71, 0x90, 0xd0, 0x8c, 0x7c, 0x90, 0xb7, 0x3f, 0x48, 0xac, 0xa6, 0x29, 0xd8, 0x23,
|
||||
0x7e, 0x92, 0x4f, 0xba, 0xf5, 0x2d, 0x1c, 0xe9, 0xd6, 0x37, 0xe6, 0xf5, 0xb7, 0x38, 0xe5, 0xeb,
|
||||
0xef, 0xc7, 0x12, 0xb8, 0x60, 0xa4, 0xa8, 0xa5, 0x32, 0xe0, 0x6b, 0x73, 0x3b, 0xcd, 0xda, 0xa4,
|
||||
0xa9, 0xcd, 0xc6, 0xca, 0x78, 0x54, 0xbd, 0x90, 0x46, 0x13, 0xa5, 0xf2, 0x0f, 0xee, 0x81, 0x82,
|
||||
0x2e, 0xce, 0xc7, 0x72, 0x89, 0xfb, 0x7a, 0x39, 0x8d, 0xaf, 0xce, 0x99, 0x6a, 0x97, 0xa5, 0xf3,
|
||||
0x84, 0x5c, 0x2c, 0xf9, 0xc3, 0x3c, 0x38, 0x13, 0xe9, 0xee, 0x5f, 0xe2, 0xdd, 0x76, 0xe4, 0x45,
|
||||
0x3b, 0x3b, 0xc5, 0x8b, 0xf6, 0x1a, 0x98, 0x17, 0x7f, 0x97, 0x08, 0xbd, 0xa7, 0xbb, 0x09, 0xb3,
|
||||
0x1e, 0x14, 0xa3, 0xb0, 0x7e, 0xdc, 0xdd, 0x7a, 0x7e, 0xca, 0xbb, 0x75, 0xbf, 0x17, 0xe2, 0xef,
|
||||
0x7f, 0x76, 0x79, 0x47, 0xbd, 0x10, 0xff, 0x02, 0x0c, 0xeb, 0x33, 0x52, 0x6b, 0xa3, 0xba, 0x08,
|
||||
0x27, 0x83, 0xa4, 0x76, 0x37, 0x20, 0x45, 0x21, 0xed, 0x2f, 0xf4, 0x97, 0x00, 0x1c, 0xf3, 0x97,
|
||||
0x80, 0x2b, 0x69, 0x72, 0x2d, 0xfd, 0x35, 0x7a, 0xec, 0x85, 0x48, 0x69, 0xfa, 0x0b, 0x11, 0xf9,
|
||||
0xef, 0x12, 0x78, 0x2e, 0xf1, 0xd4, 0x82, 0x6b, 0x01, 0xca, 0x79, 0x25, 0x44, 0x39, 0xbf, 0x97,
|
||||
0x68, 0xe8, 0xe3, 0x9d, 0x66, 0xfc, 0x0d, 0xfb, 0x1b, 0xe9, 0x6e, 0xd8, 0x63, 0xde, 0x92, 0x27,
|
||||
0x5f, 0xb5, 0x37, 0x7e, 0xf0, 0xf0, 0x51, 0xe5, 0xc4, 0x27, 0x8f, 0x2a, 0x27, 0x3e, 0x7b, 0x54,
|
||||
0x39, 0xf1, 0xcb, 0x71, 0x45, 0x7a, 0x38, 0xae, 0x48, 0x9f, 0x8c, 0x2b, 0xd2, 0x67, 0xe3, 0x8a,
|
||||
0xf4, 0x8f, 0x71, 0x45, 0xfa, 0xed, 0xe7, 0x95, 0x13, 0xef, 0x2d, 0x27, 0xfc, 0x21, 0xf9, 0xff,
|
||||
0x01, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x93, 0x41, 0x4c, 0xc3, 0x2c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *ControllerRevision) Marshal() (dAtA []byte, err error) {
|
||||
@ -2573,6 +2605,32 @@ func (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.Start))
|
||||
i--
|
||||
dAtA[i] = 0x8
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -2626,6 +2684,18 @@ func (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if m.Ordinals != nil {
|
||||
{
|
||||
size, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x5a
|
||||
}
|
||||
if m.PersistentVolumeClaimRetentionPolicy != nil {
|
||||
{
|
||||
size, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -3331,6 +3401,16 @@ func (m *StatefulSetList) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *StatefulSetOrdinals) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
n += 1 + sovGenerated(uint64(m.Start))
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -3379,6 +3459,10 @@ func (m *StatefulSetSpec) Size() (n int) {
|
||||
l = m.PersistentVolumeClaimRetentionPolicy.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
if m.Ordinals != nil {
|
||||
l = m.Ordinals.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@ -3837,6 +3921,16 @@ func (this *StatefulSetList) String() string {
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *StatefulSetOrdinals) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
s := strings.Join([]string{`&StatefulSetOrdinals{`,
|
||||
`Start:` + fmt.Sprintf("%v", this.Start) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
@ -3868,6 +3962,7 @@ func (this *StatefulSetSpec) String() string {
|
||||
`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,
|
||||
`MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`,
|
||||
`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), "StatefulSetPersistentVolumeClaimRetentionPolicy", "StatefulSetPersistentVolumeClaimRetentionPolicy", 1) + `,`,
|
||||
`Ordinals:` + strings.Replace(this.Ordinals.String(), "StatefulSetOrdinals", "StatefulSetOrdinals", 1) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@ -8393,6 +8488,75 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: StatefulSetOrdinals: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: StatefulSetOrdinals: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
|
||||
}
|
||||
m.Start = 0
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
m.Start |= int32(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
@ -8831,6 +8995,42 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 11:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Ordinals", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.Ordinals == nil {
|
||||
m.Ordinals = &StatefulSetOrdinals{}
|
||||
}
|
||||
if err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
|
@ -667,6 +667,17 @@ message StatefulSetList {
|
||||
repeated StatefulSet items = 2;
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
message StatefulSetOrdinals {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
optional int32 replicaStartOrdinal = 1;
|
||||
}
|
||||
|
||||
// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs
|
||||
// created from the StatefulSet VolumeClaimTemplates.
|
||||
message StatefulSetPersistentVolumeClaimRetentionPolicy {
|
||||
@ -755,6 +766,14 @@ message StatefulSetSpec {
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
optional StatefulSetOrdinals ordinals = 11;
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
@ -214,6 +214,17 @@ type StatefulSetPersistentVolumeClaimRetentionPolicy struct {
|
||||
WhenScaled PersistentVolumeClaimRetentionPolicyType `json:"whenScaled,omitempty" protobuf:"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType"`
|
||||
}
|
||||
|
||||
// StatefulSetOrdinals describes the policy used for replica ordinal assignment
|
||||
// in this StatefulSet.
|
||||
type StatefulSetOrdinals struct {
|
||||
// Start is the number representing the first index that is used to represent
|
||||
// replica ordinals. Defaults to 0.
|
||||
// If set, replica ordinals will be numbered
|
||||
// [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).
|
||||
// +optional
|
||||
Start int32 `json:"start" protobuf:"varint,1,opt,name=start"`
|
||||
}
|
||||
|
||||
// A StatefulSetSpec is the specification of a StatefulSet.
|
||||
type StatefulSetSpec struct {
|
||||
// replicas is the desired number of replicas of the given Template.
|
||||
@ -285,6 +296,14 @@ type StatefulSetSpec struct {
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"`
|
||||
|
||||
// Ordinals controls how the stateful set creates pod and persistent volume
|
||||
// claim names.
|
||||
// The default behavior assigns a number starting with zero and incremented by
|
||||
// one for each additional replica requested. This requires the
|
||||
// StatefulSetSlice feature gate to be enabled, which is alpha.
|
||||
// +optional
|
||||
Ordinals *StatefulSetOrdinals `json:"ordinals,omitempty" protobuf:"bytes,11,opt,name=ordinals"`
|
||||
}
|
||||
|
||||
// StatefulSetStatus represents the current state of a StatefulSet.
|
||||
|
@ -352,6 +352,15 @@ func (StatefulSetList) SwaggerDoc() map[string]string {
|
||||
return map_StatefulSetList
|
||||
}
|
||||
|
||||
var map_StatefulSetOrdinals = map[string]string{
|
||||
"": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
|
||||
"start": "Start is the number representing the first index that is used to represent replica ordinals. Defaults to 0. If set, replica ordinals will be numbered [.spec.ordinals.start, .spec.ordinals.start - .spec.replicas).",
|
||||
}
|
||||
|
||||
func (StatefulSetOrdinals) SwaggerDoc() map[string]string {
|
||||
return map_StatefulSetOrdinals
|
||||
}
|
||||
|
||||
var map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{
|
||||
"": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
|
||||
"whenDeleted": "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.",
|
||||
@ -374,6 +383,7 @@ var map_StatefulSetSpec = map[string]string{
|
||||
"revisionHistoryLimit": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.",
|
||||
"minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
|
||||
"persistentVolumeClaimRetentionPolicy": "PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.",
|
||||
"ordinals": "Ordinals controls how the stateful set creates pod and persistent volume claim names. The default behavior assigns a number starting with zero and incremented by one for each additional replica requested. This requires the StatefulSetSlice feature gate to be enabled, which is alpha.",
|
||||
}
|
||||
|
||||
func (StatefulSetSpec) SwaggerDoc() map[string]string {
|
||||
|
@ -760,6 +760,22 @@ func (in *StatefulSetList) DeepCopyObject() runtime.Object {
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.
|
||||
func (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(StatefulSetOrdinals)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {
|
||||
*out = *in
|
||||
@ -808,6 +824,11 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {
|
||||
*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)
|
||||
**out = **in
|
||||
}
|
||||
if in.Ordinals != nil {
|
||||
in, out := &in.Ordinals, &out.Ordinals
|
||||
*out = new(StatefulSetOrdinals)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
||||
|
||||
package v1
|
||||
|
||||
// StatefulSetOrdinalsApplyConfiguration represents an declarative configuration of the StatefulSetOrdinals type for use
|
||||
// with apply.
|
||||
type StatefulSetOrdinalsApplyConfiguration struct {
|
||||
Start *int32 `json:"start,omitempty"`
|
||||
}
|
||||
|
||||
// StatefulSetOrdinalsApplyConfiguration constructs an declarative configuration of the StatefulSetOrdinals type for use with
|
||||
// apply.
|
||||
func StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {
|
||||
return &StatefulSetOrdinalsApplyConfiguration{}
|
||||
}
|
||||
|
||||
// WithStart sets the Start 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 Start field is set to the value of the last call.
|
||||
func (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {
|
||||
b.Start = &value
|
||||
return b
|
||||
}
|
@ -37,6 +37,7 @@ type StatefulSetSpecApplyConfiguration struct {
|
||||
RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
|
||||
MinReadySeconds *int32 `json:"minReadySeconds,omitempty"`
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:"persistentVolumeClaimRetentionPolicy,omitempty"`
|
||||
Ordinals *StatefulSetOrdinalsApplyConfiguration `json:"ordinals,omitempty"`
|
||||
}
|
||||
|
||||
// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with
|
||||
@ -129,3 +130,11 @@ func (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPo
|
||||
b.PersistentVolumeClaimRetentionPolicy = value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithOrdinals sets the Ordinals 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 Ordinals field is set to the value of the last call.
|
||||
func (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {
|
||||
b.Ordinals = value
|
||||
return b
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
// StatefulSetOrdinalsApplyConfiguration represents an declarative configuration of the StatefulSetOrdinals type for use
|
||||
// with apply.
|
||||
type StatefulSetOrdinalsApplyConfiguration struct {
|
||||
Start *int32 `json:"start,omitempty"`
|
||||
}
|
||||
|
||||
// StatefulSetOrdinalsApplyConfiguration constructs an declarative configuration of the StatefulSetOrdinals type for use with
|
||||
// apply.
|
||||
func StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {
|
||||
return &StatefulSetOrdinalsApplyConfiguration{}
|
||||
}
|
||||
|
||||
// WithStart sets the Start 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 Start field is set to the value of the last call.
|
||||
func (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {
|
||||
b.Start = &value
|
||||
return b
|
||||
}
|
@ -37,6 +37,7 @@ type StatefulSetSpecApplyConfiguration struct {
|
||||
RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
|
||||
MinReadySeconds *int32 `json:"minReadySeconds,omitempty"`
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:"persistentVolumeClaimRetentionPolicy,omitempty"`
|
||||
Ordinals *StatefulSetOrdinalsApplyConfiguration `json:"ordinals,omitempty"`
|
||||
}
|
||||
|
||||
// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with
|
||||
@ -129,3 +130,11 @@ func (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPo
|
||||
b.PersistentVolumeClaimRetentionPolicy = value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithOrdinals sets the Ordinals 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 Ordinals field is set to the value of the last call.
|
||||
func (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {
|
||||
b.Ordinals = value
|
||||
return b
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
||||
|
||||
package v1beta2
|
||||
|
||||
// StatefulSetOrdinalsApplyConfiguration represents an declarative configuration of the StatefulSetOrdinals type for use
|
||||
// with apply.
|
||||
type StatefulSetOrdinalsApplyConfiguration struct {
|
||||
Start *int32 `json:"start,omitempty"`
|
||||
}
|
||||
|
||||
// StatefulSetOrdinalsApplyConfiguration constructs an declarative configuration of the StatefulSetOrdinals type for use with
|
||||
// apply.
|
||||
func StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {
|
||||
return &StatefulSetOrdinalsApplyConfiguration{}
|
||||
}
|
||||
|
||||
// WithStart sets the Start 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 Start field is set to the value of the last call.
|
||||
func (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {
|
||||
b.Start = &value
|
||||
return b
|
||||
}
|
@ -37,6 +37,7 @@ type StatefulSetSpecApplyConfiguration struct {
|
||||
RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
|
||||
MinReadySeconds *int32 `json:"minReadySeconds,omitempty"`
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:"persistentVolumeClaimRetentionPolicy,omitempty"`
|
||||
Ordinals *StatefulSetOrdinalsApplyConfiguration `json:"ordinals,omitempty"`
|
||||
}
|
||||
|
||||
// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with
|
||||
@ -129,3 +130,11 @@ func (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPo
|
||||
b.PersistentVolumeClaimRetentionPolicy = value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithOrdinals sets the Ordinals 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 Ordinals field is set to the value of the last call.
|
||||
func (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {
|
||||
b.Ordinals = value
|
||||
return b
|
||||
}
|
||||
|
@ -1039,6 +1039,13 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
type:
|
||||
scalar: string
|
||||
default: ""
|
||||
- name: io.k8s.api.apps.v1.StatefulSetOrdinals
|
||||
map:
|
||||
fields:
|
||||
- name: start
|
||||
type:
|
||||
scalar: numeric
|
||||
default: 0
|
||||
- name: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
map:
|
||||
fields:
|
||||
@ -1054,6 +1061,9 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
- name: minReadySeconds
|
||||
type:
|
||||
scalar: numeric
|
||||
- name: ordinals
|
||||
type:
|
||||
namedType: io.k8s.api.apps.v1.StatefulSetOrdinals
|
||||
- name: persistentVolumeClaimRetentionPolicy
|
||||
type:
|
||||
namedType: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
@ -1342,6 +1352,13 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
type:
|
||||
scalar: string
|
||||
default: ""
|
||||
- name: io.k8s.api.apps.v1beta1.StatefulSetOrdinals
|
||||
map:
|
||||
fields:
|
||||
- name: start
|
||||
type:
|
||||
scalar: numeric
|
||||
default: 0
|
||||
- name: io.k8s.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
map:
|
||||
fields:
|
||||
@ -1357,6 +1374,9 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
- name: minReadySeconds
|
||||
type:
|
||||
scalar: numeric
|
||||
- name: ordinals
|
||||
type:
|
||||
namedType: io.k8s.api.apps.v1beta1.StatefulSetOrdinals
|
||||
- name: persistentVolumeClaimRetentionPolicy
|
||||
type:
|
||||
namedType: io.k8s.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
@ -1843,6 +1863,13 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
type:
|
||||
scalar: string
|
||||
default: ""
|
||||
- name: io.k8s.api.apps.v1beta2.StatefulSetOrdinals
|
||||
map:
|
||||
fields:
|
||||
- name: start
|
||||
type:
|
||||
scalar: numeric
|
||||
default: 0
|
||||
- name: io.k8s.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
map:
|
||||
fields:
|
||||
@ -1858,6 +1885,9 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
- name: minReadySeconds
|
||||
type:
|
||||
scalar: numeric
|
||||
- name: ordinals
|
||||
type:
|
||||
namedType: io.k8s.api.apps.v1beta2.StatefulSetOrdinals
|
||||
- name: persistentVolumeClaimRetentionPolicy
|
||||
type:
|
||||
namedType: io.k8s.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
|
@ -211,6 +211,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
|
||||
return &applyconfigurationsappsv1.StatefulSetApplyConfiguration{}
|
||||
case appsv1.SchemeGroupVersion.WithKind("StatefulSetCondition"):
|
||||
return &applyconfigurationsappsv1.StatefulSetConditionApplyConfiguration{}
|
||||
case appsv1.SchemeGroupVersion.WithKind("StatefulSetOrdinals"):
|
||||
return &applyconfigurationsappsv1.StatefulSetOrdinalsApplyConfiguration{}
|
||||
case appsv1.SchemeGroupVersion.WithKind("StatefulSetPersistentVolumeClaimRetentionPolicy"):
|
||||
return &applyconfigurationsappsv1.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}
|
||||
case appsv1.SchemeGroupVersion.WithKind("StatefulSetSpec"):
|
||||
@ -243,6 +245,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
|
||||
return &applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration{}
|
||||
case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetCondition"):
|
||||
return &applyconfigurationsappsv1beta1.StatefulSetConditionApplyConfiguration{}
|
||||
case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetOrdinals"):
|
||||
return &applyconfigurationsappsv1beta1.StatefulSetOrdinalsApplyConfiguration{}
|
||||
case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetPersistentVolumeClaimRetentionPolicy"):
|
||||
return &applyconfigurationsappsv1beta1.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}
|
||||
case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetSpec"):
|
||||
@ -295,6 +299,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
|
||||
return &appsv1beta2.StatefulSetApplyConfiguration{}
|
||||
case v1beta2.SchemeGroupVersion.WithKind("StatefulSetCondition"):
|
||||
return &appsv1beta2.StatefulSetConditionApplyConfiguration{}
|
||||
case v1beta2.SchemeGroupVersion.WithKind("StatefulSetOrdinals"):
|
||||
return &appsv1beta2.StatefulSetOrdinalsApplyConfiguration{}
|
||||
case v1beta2.SchemeGroupVersion.WithKind("StatefulSetPersistentVolumeClaimRetentionPolicy"):
|
||||
return &appsv1beta2.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}
|
||||
case v1beta2.SchemeGroupVersion.WithKind("StatefulSetSpec"):
|
||||
|
Loading…
Reference in New Issue
Block a user