From f3183aef680b093a97b53ea91f8b13e9db18adbc Mon Sep 17 00:00:00 2001 From: Aleksey Dukhovniy Date: Fri, 15 May 2020 13:13:15 +0200 Subject: [PATCH] Add `KudoOperator` task types (#1515) to help parallelize upcoming work on KEP-29. Signed-off-by: Aleksey Dukhovniy alex.dukhovniy@googlemail.com Fixes: #1509 --- config/crds/kudo.dev_operatorversions.yaml | 64 ++++--------------- keps/0029-operator-dependencies.md | 2 +- .../kudo/v1beta1/operatorversion_types.go | 40 ++++++------ .../kudo/v1beta1/zz_generated.deepcopy.go | 39 +++++------ pkg/engine/task/task.go | 28 ++++++-- pkg/engine/task/task_kudo_operator.go | 19 ++++++ pkg/engine/task/task_test.go | 19 ++++++ .../cmd/testdata/deploy-kudo-ns.yaml.golden | 64 ++++--------------- .../cmd/testdata/deploy-kudo-sa.yaml.golden | 64 ++++--------------- .../testdata/deploy-kudo-webhook.yaml.golden | 64 ++++--------------- .../cmd/testdata/deploy-kudo.yaml.golden | 64 ++++--------------- pkg/kudoctl/kudoinit/crd/bindata.go | 2 +- 12 files changed, 170 insertions(+), 299 deletions(-) create mode 100644 pkg/engine/task/task_kudo_operator.go diff --git a/config/crds/kudo.dev_operatorversions.yaml b/config/crds/kudo.dev_operatorversions.yaml index 3972e6122..18636d602 100644 --- a/config/crds/kudo.dev_operatorversions.yaml +++ b/config/crds/kudo.dev_operatorversions.yaml @@ -40,56 +40,6 @@ spec: description: ConnectionString defines a templated string that can be used to connect to an instance of the Operator. type: string - dependencies: - description: Dependencies a list of all dependencies of the operator. - items: - description: OperatorDependency references a defined operator. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - referenceName: - description: Name specifies the name of the dependency. Referenced - via defaults.config. - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - version: - description: "Version captures the requirements for what versions - of the above object are allowed. \n Example: ^3.1.4" - type: string - required: - - referenceName - - version - type: object - type: array operator: description: ObjectReference contains enough information to let you inspect or modify the referred object. @@ -223,10 +173,24 @@ spec: parser. We might revisit this approach in the future should this become an issue. properties: + appVersion: + description: a specific app version in the official repo, + defaults to the most recent + type: string done: type: boolean fatal: type: boolean + instanceName: + type: string + operatorVersion: + description: a specific operator version in the official repo, + defaults to the most recent one + type: string + package: + description: either repo package name, local package folder + or an URL to package tarball + type: string parameter: type: string pipe: diff --git a/keps/0029-operator-dependencies.md b/keps/0029-operator-dependencies.md index cc9c94c74..c367f2d5a 100644 --- a/keps/0029-operator-dependencies.md +++ b/keps/0029-operator-dependencies.md @@ -102,7 +102,7 @@ The `zookeeper-operator` task specification is equivalent to `kudo install zooke ```yaml tasks: - name: demo - kind: Operator + kind: KudoOperator spec: package: # required, either repo package name, local package folder or an URL to package tarball appVersion: # optional, a specific app version in the official repo, defaults to the most recent one diff --git a/pkg/apis/kudo/v1beta1/operatorversion_types.go b/pkg/apis/kudo/v1beta1/operatorversion_types.go index 4c3f8257f..29166629a 100644 --- a/pkg/apis/kudo/v1beta1/operatorversion_types.go +++ b/pkg/apis/kudo/v1beta1/operatorversion_types.go @@ -42,9 +42,6 @@ type OperatorVersionSpec struct { // +optional ConnectionString string `json:"connectionString,omitempty"` - // Dependencies a list of all dependencies of the operator. - Dependencies []OperatorDependency `json:"dependencies,omitempty"` - // UpgradableFrom lists all OperatorVersions that can upgrade to this OperatorVersion. UpgradableFrom []corev1.ObjectReference `json:"upgradableFrom,omitempty"` } @@ -149,10 +146,11 @@ type Task struct { // with the same json names as it would become ambiguous for the default parser. We might revisit this approach in the // future should this become an issue. type TaskSpec struct { - ResourceTaskSpec `json:",inline"` - DummyTaskSpec `json:",inline"` - PipeTaskSpec `json:",inline"` - ToggleTaskSpec `json:",inline"` + ResourceTaskSpec `json:",inline"` + DummyTaskSpec `json:",inline"` + PipeTaskSpec `json:",inline"` + ToggleTaskSpec `json:",inline"` + KudoOperatorTaskSpec `json:",inline"` } // ResourceTaskSpec is referencing a list of resources @@ -199,6 +197,21 @@ type PipeSpec struct { Key string `json:"key"` } +// KudoOperatorSpec specifies how a KUDO operator is installed +type KudoOperatorTaskSpec struct { + // either repo package name, local package folder or an URL to package tarball + // +optional + Package string `json:"package,omitempty"` + // +optional + InstanceName string `json:"instanceName,omitempty"` + // a specific app version in the official repo, defaults to the most recent + // +optional + AppVersion string `json:"appVersion,omitempty"` + // a specific operator version in the official repo, defaults to the most recent one + // +optional + OperatorVersion string `json:"operatorVersion,omitempty"` +} + // OperatorVersionStatus defines the observed state of OperatorVersion. type OperatorVersionStatus struct { // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster @@ -230,16 +243,3 @@ type OperatorVersionList struct { func init() { SchemeBuilder.Register(&OperatorVersion{}, &OperatorVersionList{}) } - -// OperatorDependency references a defined operator. -type OperatorDependency struct { - // Name specifies the name of the dependency. Referenced via defaults.config. - ReferenceName string `json:"referenceName"` - corev1.ObjectReference `json:",inline"` - - // Version captures the requirements for what versions of the above object - // are allowed. - // - // Example: ^3.1.4 - Version string `json:"version"` -} diff --git a/pkg/apis/kudo/v1beta1/zz_generated.deepcopy.go b/pkg/apis/kudo/v1beta1/zz_generated.deepcopy.go index 6f1aa4960..3d520e404 100644 --- a/pkg/apis/kudo/v1beta1/zz_generated.deepcopy.go +++ b/pkg/apis/kudo/v1beta1/zz_generated.deepcopy.go @@ -148,6 +148,22 @@ func (in *InstanceStatus) DeepCopy() *InstanceStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KudoOperatorTaskSpec) DeepCopyInto(out *KudoOperatorTaskSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KudoOperatorTaskSpec. +func (in *KudoOperatorTaskSpec) DeepCopy() *KudoOperatorTaskSpec { + if in == nil { + return nil + } + out := new(KudoOperatorTaskSpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Maintainer) DeepCopyInto(out *Maintainer) { *out = *in @@ -192,23 +208,6 @@ func (in *Operator) DeepCopyObject() runtime.Object { return nil } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OperatorDependency) DeepCopyInto(out *OperatorDependency) { - *out = *in - out.ObjectReference = in.ObjectReference - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorDependency. -func (in *OperatorDependency) DeepCopy() *OperatorDependency { - if in == nil { - return nil - } - out := new(OperatorDependency) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OperatorList) DeepCopyInto(out *OperatorList) { *out = *in @@ -378,11 +377,6 @@ func (in *OperatorVersionSpec) DeepCopyInto(out *OperatorVersionSpec) { (*out)[key] = *val.DeepCopy() } } - if in.Dependencies != nil { - in, out := &in.Dependencies, &out.Dependencies - *out = make([]OperatorDependency, len(*in)) - copy(*out, *in) - } if in.UpgradableFrom != nil { in, out := &in.UpgradableFrom, &out.UpgradableFrom *out = make([]v1.ObjectReference, len(*in)) @@ -672,6 +666,7 @@ func (in *TaskSpec) DeepCopyInto(out *TaskSpec) { out.DummyTaskSpec = in.DummyTaskSpec in.PipeTaskSpec.DeepCopyInto(&out.PipeTaskSpec) out.ToggleTaskSpec = in.ToggleTaskSpec + out.KudoOperatorTaskSpec = in.KudoOperatorTaskSpec return } diff --git a/pkg/engine/task/task.go b/pkg/engine/task/task.go index 2d1a375e8..6b44f6193 100644 --- a/pkg/engine/task/task.go +++ b/pkg/engine/task/task.go @@ -40,11 +40,12 @@ type Tasker interface { // Available tasks kinds const ( - ApplyTaskKind = "Apply" - DeleteTaskKind = "Delete" - DummyTaskKind = "Dummy" - PipeTaskKind = "Pipe" - ToggleTaskKind = "Toggle" + ApplyTaskKind = "Apply" + DeleteTaskKind = "Delete" + DummyTaskKind = "Dummy" + PipeTaskKind = "Pipe" + ToggleTaskKind = "Toggle" + KudoOperatorTaskKind = "KudoOperator" ) var ( @@ -69,6 +70,8 @@ func Build(task *v1beta1.Task) (Tasker, error) { return newPipe(task) case ToggleTaskKind: return newToggle(task) + case KudoOperatorTaskKind: + return newKudoOperator(task) default: return nil, fmt.Errorf("unknown task kind %s", task.Kind) } @@ -181,3 +184,18 @@ func fatalExecutionError(cause error, eventName string, meta renderer.Metadata) EventName: eventName, } } + +func newKudoOperator(task *v1beta1.Task) (Tasker, error) { + // validate KudoOperatorTask + if len(task.Spec.KudoOperatorTaskSpec.Package) == 0 { + return nil, fmt.Errorf("task validation error: kudo operator task '%s' has an empty package name", task.Name) + } + + return KudoOperatorTask{ + Name: task.Name, + Package: task.Spec.KudoOperatorTaskSpec.Package, + InstanceName: task.Spec.KudoOperatorTaskSpec.InstanceName, + AppVersion: task.Spec.KudoOperatorTaskSpec.AppVersion, + OperatorVersion: task.Spec.KudoOperatorTaskSpec.OperatorVersion, + }, nil +} diff --git a/pkg/engine/task/task_kudo_operator.go b/pkg/engine/task/task_kudo_operator.go new file mode 100644 index 000000000..e404fa761 --- /dev/null +++ b/pkg/engine/task/task_kudo_operator.go @@ -0,0 +1,19 @@ +package task + +import ( + "errors" +) + +// KudoOperatorTask installs an instance of a KUDO operator in a cluster +type KudoOperatorTask struct { + Name string + Package string + InstanceName string + AppVersion string + OperatorVersion string +} + +// Run method for the KudoOperatorTask. Not yet implemented +func (dt KudoOperatorTask) Run(ctx Context) (bool, error) { + return false, errors.New("kudo-operator task is not yet implemented. Stay tuned though ;)") +} diff --git a/pkg/engine/task/task_test.go b/pkg/engine/task/task_test.go index cf25c6aca..3e8f16c0c 100644 --- a/pkg/engine/task/task_test.go +++ b/pkg/engine/task/task_test.go @@ -163,6 +163,25 @@ spec: want: nil, wantErr: true, }, + { + name: "kudo-operator task", + taskYaml: ` +name: deploy-zk +kind: KudoOperator +spec: + package: zookeeper + appVersion: 0.0.3 + operatorVersion: 0.0.4 + instanceName: zk`, + want: KudoOperatorTask{ + Name: "deploy-zk", + Package: "zookeeper", + AppVersion: "0.0.3", + OperatorVersion: "0.0.4", + InstanceName: "zk", + }, + wantErr: false, + }, { name: "unknown task", taskYaml: ` diff --git a/pkg/kudoctl/cmd/testdata/deploy-kudo-ns.yaml.golden b/pkg/kudoctl/cmd/testdata/deploy-kudo-ns.yaml.golden index ba12a3364..2b29b12af 100644 --- a/pkg/kudoctl/cmd/testdata/deploy-kudo-ns.yaml.golden +++ b/pkg/kudoctl/cmd/testdata/deploy-kudo-ns.yaml.golden @@ -112,56 +112,6 @@ spec: description: ConnectionString defines a templated string that can be used to connect to an instance of the Operator. type: string - dependencies: - description: Dependencies a list of all dependencies of the operator. - items: - description: OperatorDependency references a defined operator. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - referenceName: - description: Name specifies the name of the dependency. Referenced - via defaults.config. - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - version: - description: "Version captures the requirements for what versions - of the above object are allowed. \n Example: ^3.1.4" - type: string - required: - - referenceName - - version - type: object - type: array operator: description: ObjectReference contains enough information to let you inspect or modify the referred object. @@ -295,10 +245,24 @@ spec: parser. We might revisit this approach in the future should this become an issue. properties: + appVersion: + description: a specific app version in the official repo, + defaults to the most recent + type: string done: type: boolean fatal: type: boolean + instanceName: + type: string + operatorVersion: + description: a specific operator version in the official repo, + defaults to the most recent one + type: string + package: + description: either repo package name, local package folder + or an URL to package tarball + type: string parameter: type: string pipe: diff --git a/pkg/kudoctl/cmd/testdata/deploy-kudo-sa.yaml.golden b/pkg/kudoctl/cmd/testdata/deploy-kudo-sa.yaml.golden index 1d2edf3a7..52c12a273 100644 --- a/pkg/kudoctl/cmd/testdata/deploy-kudo-sa.yaml.golden +++ b/pkg/kudoctl/cmd/testdata/deploy-kudo-sa.yaml.golden @@ -112,56 +112,6 @@ spec: description: ConnectionString defines a templated string that can be used to connect to an instance of the Operator. type: string - dependencies: - description: Dependencies a list of all dependencies of the operator. - items: - description: OperatorDependency references a defined operator. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - referenceName: - description: Name specifies the name of the dependency. Referenced - via defaults.config. - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - version: - description: "Version captures the requirements for what versions - of the above object are allowed. \n Example: ^3.1.4" - type: string - required: - - referenceName - - version - type: object - type: array operator: description: ObjectReference contains enough information to let you inspect or modify the referred object. @@ -295,10 +245,24 @@ spec: parser. We might revisit this approach in the future should this become an issue. properties: + appVersion: + description: a specific app version in the official repo, + defaults to the most recent + type: string done: type: boolean fatal: type: boolean + instanceName: + type: string + operatorVersion: + description: a specific operator version in the official repo, + defaults to the most recent one + type: string + package: + description: either repo package name, local package folder + or an URL to package tarball + type: string parameter: type: string pipe: diff --git a/pkg/kudoctl/cmd/testdata/deploy-kudo-webhook.yaml.golden b/pkg/kudoctl/cmd/testdata/deploy-kudo-webhook.yaml.golden index 8d241d2eb..0c9a76cdb 100644 --- a/pkg/kudoctl/cmd/testdata/deploy-kudo-webhook.yaml.golden +++ b/pkg/kudoctl/cmd/testdata/deploy-kudo-webhook.yaml.golden @@ -112,56 +112,6 @@ spec: description: ConnectionString defines a templated string that can be used to connect to an instance of the Operator. type: string - dependencies: - description: Dependencies a list of all dependencies of the operator. - items: - description: OperatorDependency references a defined operator. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - referenceName: - description: Name specifies the name of the dependency. Referenced - via defaults.config. - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - version: - description: "Version captures the requirements for what versions - of the above object are allowed. \n Example: ^3.1.4" - type: string - required: - - referenceName - - version - type: object - type: array operator: description: ObjectReference contains enough information to let you inspect or modify the referred object. @@ -295,10 +245,24 @@ spec: parser. We might revisit this approach in the future should this become an issue. properties: + appVersion: + description: a specific app version in the official repo, + defaults to the most recent + type: string done: type: boolean fatal: type: boolean + instanceName: + type: string + operatorVersion: + description: a specific operator version in the official repo, + defaults to the most recent one + type: string + package: + description: either repo package name, local package folder + or an URL to package tarball + type: string parameter: type: string pipe: diff --git a/pkg/kudoctl/cmd/testdata/deploy-kudo.yaml.golden b/pkg/kudoctl/cmd/testdata/deploy-kudo.yaml.golden index d1240f608..ebbd21f6b 100644 --- a/pkg/kudoctl/cmd/testdata/deploy-kudo.yaml.golden +++ b/pkg/kudoctl/cmd/testdata/deploy-kudo.yaml.golden @@ -112,56 +112,6 @@ spec: description: ConnectionString defines a templated string that can be used to connect to an instance of the Operator. type: string - dependencies: - description: Dependencies a list of all dependencies of the operator. - items: - description: OperatorDependency references a defined operator. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - referenceName: - description: Name specifies the name of the dependency. Referenced - via defaults.config. - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - version: - description: "Version captures the requirements for what versions - of the above object are allowed. \n Example: ^3.1.4" - type: string - required: - - referenceName - - version - type: object - type: array operator: description: ObjectReference contains enough information to let you inspect or modify the referred object. @@ -295,10 +245,24 @@ spec: parser. We might revisit this approach in the future should this become an issue. properties: + appVersion: + description: a specific app version in the official repo, + defaults to the most recent + type: string done: type: boolean fatal: type: boolean + instanceName: + type: string + operatorVersion: + description: a specific operator version in the official repo, + defaults to the most recent one + type: string + package: + description: either repo package name, local package folder + or an URL to package tarball + type: string parameter: type: string pipe: diff --git a/pkg/kudoctl/kudoinit/crd/bindata.go b/pkg/kudoctl/kudoinit/crd/bindata.go index 1b59f138f..b637c9ea5 100644 --- a/pkg/kudoctl/kudoinit/crd/bindata.go +++ b/pkg/kudoctl/kudoinit/crd/bindata.go @@ -119,7 +119,7 @@ func configCrdsKudoDev_operatorsYaml() (*asset, error) { return a, nil } -var _configCrdsKudoDev_operatorversionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\x5f\x6f\xe3\x36\x12\x7f\xcf\xa7\x18\xa4\x0f\x7b\x05\x62\xfb\xba\x3d\x1c\x0e\x7e\x5b\xec\xb6\x87\x5c\xdb\x24\xd8\x64\x7b\x38\xb4\x3d\x84\x96\xc6\x16\x1b\x8a\x54\x49\xca\x5e\xdf\xa2\xdf\xfd\x30\xfc\x23\xc9\xb6\x28\x2b\xde\x4d\x6f\x0f\x88\x5e\x12\x4b\xd4\x70\x66\x38\x7f\x7e\x33\xa4\xce\x26\x93\xc9\x19\xab\xf8\x8f\xa8\x0d\x57\x72\x0e\xac\xe2\xf8\xde\xa2\xa4\x5f\x66\xfa\xf0\x37\x33\xe5\x6a\xb6\xfe\x6a\x81\x96\x7d\x75\xf6\xc0\x65\x3e\x87\xd7\xb5\xb1\xaa\x7c\x8b\x46\xd5\x3a\xc3\x37\xb8\xe4\x92\x5b\xae\xe4\x59\x89\x96\xe5\xcc\xb2\xf9\x19\x00\x93\x52\x59\x46\xb7\x0d\xfd\x04\xc8\x94\xb4\x5a\x09\x81\x7a\xb2\x42\x39\x7d\xa8\x17\xb8\xa8\xb9\xc8\x51\xbb\x19\xe2\xfc\xeb\x3f\x4f\x5f\x4e\xff\x7a\x06\x90\x69\x74\xaf\xdf\xf1\x12\x8d\x65\x65\x35\x07\x59\x0b\x71\x06\x20\x59\x89\x73\x50\x15\x6a\x66\x95\x0e\x6f\x9a\xe9\x43\x9d\xab\x69\x8e\xeb\x33\x53\x61\x46\x73\xae\xb4\xaa\xab\x39\x34\xf7\xfd\x9b\x81\x1d\x2f\xca\x75\x20\x12\xc4\x77\x4f\x04\x37\xf6\xbb\xbe\xa7\xdf\x73\x63\xdd\x88\x4a\xd4\x9a\x89\x43\x16\xdc\x43\xc3\xe5\xaa\x16\x4c\x1f\x3c\x3e\x03\x30\x99\xaa\x70\x0e\x57\xc4\x46\xc5\x32\xcc\xcf\x00\xd6\x4c\xf0\xdc\x49\xea\x19\x53\x15\xca\x57\x37\x97\x3f\x7e\x7d\x9b\x15\x58\x32\x7f\x13\x20\x47\x93\x69\x5e\xb9\x71\xfb\x8c\x01\x37\x60\x0b\x04\xff\x06\x2c\x95\x76\x3f\xf7\xd9\x83\x57\x37\x97\xd3\x40\xae\xd2\xf4\xd4\xf2\xa8\x0e\xba\x3a\x66\xd0\xdc\xdb\x9b\xf8\x05\x71\x16\x26\xcd\x69\xe1\xd1\xcf\x1c\xa6\xc0\x1c\x8c\xe7\x41\x2d\xc1\x16\xdc\x80\xc6\x4a\xa3\x41\xe9\x4d\xa1\x43\x16\x68\x08\x93\xa0\x16\xbf\x62\x66\xa7\x70\x8b\x8e\x4f\x30\x85\xaa\x45\x4e\xd6\xb2\x46\x6d\x41\x63\xa6\x56\x92\xff\xa7\xa1\x6c\xc0\x2a\x37\xa5\x60\x16\xc3\x7a\xc4\x8b\x4b\x8b\x5a\x32\x41\x3a\xad\xf1\x02\x98\xcc\xa1\x64\x5b\xd0\x48\x73\x40\x2d\x3b\xd4\xdc\x10\x33\x85\x1f\x94\x46\xe0\x72\xa9\xe6\x50\x58\x5b\x99\xf9\x6c\xb6\xe2\x36\x1a\x7e\xa6\xca\xb2\x96\xdc\x6e\x67\xce\x7c\xf9\xa2\xb6\x4a\x9b\x59\x8e\x6b\x14\x33\xc3\x57\x13\xa6\xb3\x82\x5b\xcc\x6c\xad\x71\xc6\x2a\x3e\x71\x8c\x4b\x67\xf7\xd3\x32\xff\x42\x07\x2f\x31\x2f\x3a\x9c\xda\x2d\x59\x81\xb1\x9a\xcb\x55\x73\xdb\x19\x64\x52\xef\x64\x90\xb4\xcc\x2c\xbc\xe6\xf9\x6f\xd5\x4b\xb7\x48\x2b\x6f\xbf\xb9\xbd\x83\x38\xa9\x5b\x82\x5d\x9d\x3b\x6d\xb7\xaf\x99\x56\xf1\xa4\x28\x2e\x97\xa8\xfd\xc2\x2d\xb5\x2a\x1d\x45\x94\x79\xa5\xb8\xb4\xee\x47\x26\x38\xca\x5d\xa5\x9b\x7a\x51\x72\x4b\x2b\xfd\x5b\x8d\xc6\xd2\xfa\x4c\xe1\xb5\x73\x7f\x58\x20\xd4\x55\xce\x2c\xe6\x53\xb8\x94\xf0\x9a\x95\x28\x5e\x33\x83\x4f\xae\x76\xd2\xb0\x99\x90\x4a\x8f\x2b\xbe\x1b\xb5\x76\x07\x7a\x6d\x35\xb7\x63\x5c\xe9\x5d\xa1\x3d\x97\xbc\xad\x30\xdb\xf1\x90\x1c\x0d\xd7\x64\xc5\x96\x59\x24\xdb\xdf\x7b\x61\xda\x21\xdc\xe7\x9c\xde\x41\xab\x1e\x07\x4d\x0a\x06\x3e\xea\x4a\xcc\x88\xc5\x5b\xf7\x70\xff\xc5\x1d\x19\x5e\xef\x0d\x6e\x04\x60\x60\xb1\xac\xc8\xe3\xf2\x68\x7f\xb6\x60\x16\x32\x26\x61\x81\x7b\x24\x01\x6a\x83\x39\xb9\x69\x98\x9c\xfe\x65\x12\xb8\x34\x96\xc9\x0c\x7d\x6c\xc0\x46\x01\xd3\xb1\xb2\xe4\x58\xa1\xcc\x51\x66\x07\x8a\xd9\x93\xe3\x4d\x67\x20\x30\x17\xd0\x5d\xb4\x11\x62\x87\x46\x64\x44\x25\x18\xe1\x16\xcb\x83\x89\x12\xcb\xde\x4c\x49\xd1\x66\x89\x1a\x65\xe6\xe6\xf6\x1a\xcc\x93\x73\xa4\x17\x3b\x2e\x79\x5f\x4c\x4e\x30\xf3\xea\xe6\x32\x46\xe2\x28\x5b\x60\xc6\x1e\xce\x3b\xa8\x6a\x7f\x2d\x39\x8a\xfc\x86\xd9\x62\xc4\xdc\x2f\x2e\x97\x7e\x32\x6f\x1d\x0a\x18\x54\x1c\xfd\x6a\x37\x61\xde\xd9\x00\xb2\x1c\xd4\xb2\x97\x22\xc1\x06\x20\x37\xd6\x18\xde\xb8\xf0\xd1\x28\x18\x5d\x9b\x1c\x2c\xe3\x12\x98\x4f\x9e\xf0\x8f\xdb\xeb\xab\xd9\xdf\x55\x82\xa4\x93\x02\x58\x96\xa1\x31\xde\xfd\x4a\x94\xf6\x02\x4c\x9d\x15\xc0\x4c\xf4\xcc\x5b\x7a\x32\x2d\x99\xe4\x4b\x34\x76\x1a\xe6\x40\x6d\x7e\x7a\xf9\x4b\xbf\xf6\x00\xbe\x55\x1a\xf0\x3d\x2b\x2b\x81\x17\xc0\x83\x35\xc5\x10\x1b\xac\xc0\x25\x67\x52\x47\x43\x11\x36\xdc\x16\x5c\xa6\x34\x00\x95\xca\x83\xd8\x1b\x27\xae\x65\x0f\x08\x2a\x88\x5b\x23\x08\xfe\x80\x73\x38\xa7\x70\xd4\x61\xf3\x03\x81\x9b\xdf\xcf\x13\x54\xff\xb4\x29\x50\x23\x9c\xd3\xa0\x73\xcf\x5c\x93\x49\xe9\x5e\xb4\x97\x96\x49\xe7\xe0\x56\xf3\xd5\x0a\xb5\x03\x2a\x7d\x97\x4b\x10\x14\x78\xbf\x04\xa5\x49\x03\x52\x75\x48\x38\xc2\xb4\x7a\x15\x66\x7c\xc9\x31\x3f\x60\xfa\xa7\x97\xbf\x24\x39\xde\xd5\x17\x70\x99\xe3\x7b\x78\x09\x5c\x7a\xdd\x54\x2a\xff\x72\x0a\x77\xce\x3a\xb6\xd2\xb2\xf7\x34\x53\x56\x28\x83\x29\xcd\x2a\x29\xb6\x24\x73\xc1\xd6\x08\x46\x95\x08\x1b\x14\x62\x12\x5d\x74\xc3\xb6\xa4\x85\xb8\x70\x64\x6f\x0c\x2a\xa6\xed\xa0\xb5\x46\xfc\x72\x77\xfd\xe6\x7a\xee\x39\x23\x83\x5a\x39\x50\x46\x39\x70\xc9\x09\x91\x10\x14\xf1\x79\xd5\x59\xe3\x5e\x5a\x6e\x2f\x53\x7b\xf3\xa1\xe8\x59\x30\xb9\x42\x2f\x2f\xc2\xb2\xa6\x5c\x37\x7d\x71\x8a\x1f\xef\x43\x8b\xf6\xea\x01\x19\xfb\x81\xe3\x7f\x94\xaa\x47\x0b\xe7\xaa\x81\x11\xc2\x5d\x75\xac\x7c\x50\x38\xaa\x4c\xb4\x44\x8b\x4e\xbe\x5c\x65\x86\x44\xcb\xb0\xb2\x66\xa6\xd6\xa8\xd7\x1c\x37\xb3\x8d\xd2\x0f\x5c\xae\x26\x64\x9a\x13\x6f\x03\x66\xe6\xca\x8b\xd9\x17\xee\xcf\xc9\xb2\xb8\xc2\x60\xac\x40\x6e\xf0\x1f\x21\x15\xcd\x63\x66\x27\x09\xd5\x44\xc2\xab\x71\x2b\xe5\x16\x2a\x86\x0c\x73\x10\xa1\x9a\x0c\xbe\x9d\xc2\xdb\x48\x3a\x15\x9f\xd6\xdc\xa5\x60\x56\x0b\x6b\x28\xec\x2c\xf9\xea\xa4\x4c\x18\x11\xf5\xf8\x5c\xfc\xe2\xd6\x4b\x90\xed\xbf\x4b\xae\xbd\x29\x78\x56\xc4\x02\x29\x88\x90\x90\x80\x13\x32\xcf\x7d\x7a\x61\x72\xfb\xe4\xee\x48\x46\x51\x6b\xe2\x68\x3b\x09\x25\xfb\x84\xc9\x9c\xfe\x37\xdc\x58\xba\x7f\x92\x15\xd4\x7c\x54\x08\x7a\x77\xf9\xe6\x8f\x71\xd2\x9a\x9f\x18\x6f\xd6\xa3\x4d\xe0\x3c\xae\x78\xc6\x2a\x52\xb7\x09\x62\xfd\x56\x73\xed\x30\x88\x71\xa5\xfa\x86\x12\xed\x4e\x0b\xe1\xf0\x0a\x2a\x61\x0b\xb5\x6e\x10\x06\xd3\x48\x90\x56\x6d\xa8\xba\xfa\x59\xc2\x37\x1e\x88\xcc\xe1\xdf\x5f\x4f\xbf\x9a\xfe\xa5\x3f\xaf\x0e\x0a\x17\x58\xeb\x59\xa8\xc9\xae\x17\xf7\x3c\x5f\x77\x3a\x28\x87\x13\xee\x55\x52\xdd\x47\x4c\x6b\xb6\xdd\x2d\x52\x03\x56\x1e\xc4\xf8\xd7\x8e\x62\x13\x00\x22\xea\x30\x80\x52\xd5\xab\xc2\x99\x8b\x2e\x5d\xd7\x81\x3c\x4e\xa0\x85\xad\xaa\x0f\xd8\xe3\x92\x22\x8d\x25\xf4\x52\xaa\x9c\x2f\xb7\xad\xe9\x51\xb5\x16\xb2\xfb\xde\x6b\x43\x90\x7d\x18\xb0\x7f\x0c\x5c\x1f\x5c\xba\x41\xa8\xfe\x51\x40\x1d\x58\x3f\x9e\x3a\x19\xa6\x7b\x5e\x7b\x69\x3e\x01\x48\xff\xf4\x10\xfd\x29\x00\xfa\x93\xc0\xf3\x27\x03\xe7\x1f\x01\xcd\x1d\x08\xef\xe7\xf6\x24\x60\xde\x81\xe0\xbd\x54\x1f\x0b\xcb\x0f\x01\x78\x2f\xd9\xe3\xa0\x7c\xd0\x5b\x53\x80\xfc\xf3\x87\xe3\x83\x62\xa5\xa0\xf8\x67\x07\xc4\x8f\x4a\x91\x04\xe1\x9f\x25\x04\x3f\x92\xd4\x8f\x42\xd7\x8f\x03\xae\xa9\x62\xf6\xff\x01\xb6\x0e\x6a\x2e\x01\x59\x3f\x33\xc0\x3a\x20\x42\x12\x7b\x55\x4c\xb3\x12\x2d\xea\x03\x00\x33\xa6\xe7\x79\x13\xdf\xde\x05\xb6\x6b\xa6\x39\x5b\x70\xc1\xed\x36\x04\xe6\xbe\xdd\xb5\xdd\x6b\x81\x14\xcd\x7d\x67\xd8\x72\xd7\x5f\x26\xc0\xd0\x36\x8b\x1f\xdb\x2f\x0d\xc5\xde\x08\x74\xfe\xc6\x8f\xf4\x9b\x2a\xe1\xb5\x90\xbf\x7d\xaa\x6c\x94\x44\x43\x2a\xad\xd6\x3c\x4f\xd6\x99\x0b\x8f\x1b\xd3\x5c\xc3\xf1\xc2\xa2\xcb\xdd\x18\xf6\x9b\x1f\xed\x32\x30\x10\x4a\xae\x50\x77\x87\xd2\x5a\x14\x6a\x33\xd0\xc0\x6b\x05\xdd\x70\x21\xdc\xa6\x8d\xc1\xfc\x34\x19\xb8\xa9\x04\xdb\x8e\xac\xf4\xdf\xb4\xa3\xc3\x56\x82\xdf\x3a\x58\x6c\xe1\xdd\xa5\x39\x89\x81\x91\xdd\xa0\xf3\xab\x80\x7e\x48\xfe\xee\x8e\x46\x80\xae\x91\x93\x90\xe7\xe3\xee\x47\xb2\xc3\x2c\xd0\x95\x72\x5d\xa0\x79\xef\xb7\xa9\x5f\x5f\xbf\xbb\xba\xbb\x27\x2a\x12\x6a\x13\xb7\xe9\xbc\xaf\x08\xb2\x98\x64\x1b\x98\xd0\x58\x80\x92\x3f\x4b\xbf\xf9\xe4\xc2\x79\x25\x78\xc6\xcc\x1c\xe0\xc3\x07\x98\x3a\x5f\x34\x53\x37\x0b\xfc\x9e\x40\x97\x47\x9b\x1b\xa9\xb2\xef\x40\x6f\x6f\xc3\xd0\x4e\x7f\x26\x60\xea\x1d\x6f\x89\x14\xc1\xa6\x9a\xf2\x0b\x6c\x5c\x8a\x96\x9b\x09\xd1\x38\x8f\xb9\x00\x57\x15\xa3\x2d\x50\x77\x7c\x93\x2c\xc4\xd4\xcb\x25\x1f\xf6\xaf\x85\x52\x02\x7b\x6b\x96\x80\x96\x47\x88\x79\xe7\x47\x02\xcf\x29\xc5\x34\x6d\xa8\x4a\x30\xe9\xcd\x64\x85\xd6\x00\xbe\xc7\xac\xa6\x90\xb5\x29\x92\x3d\x67\x8f\x87\xdb\x80\xe9\x20\xa5\x89\x76\x75\xd9\x6c\x89\x85\x2e\x72\x27\x28\xdd\xfb\x9d\xd3\xfb\x54\x5f\x68\x49\x20\x98\x18\x72\x10\xdc\x71\xe5\x20\x3d\xbe\xe7\xc6\x92\x0e\x49\x7d\x1b\x6e\x10\xb8\x7d\x61\xe0\x3e\xc7\x4a\xa8\xed\xfd\x49\x5e\xe5\xc2\xe2\xc4\x0d\x1a\xa1\xbc\x6d\xb5\xdf\xbf\xf3\x61\x95\xde\x6f\x44\x74\xe5\xcd\xbd\x9f\xf1\x14\xa6\x4e\xe8\x2b\x90\xb6\x0e\x92\x06\xcb\x73\x77\x78\x85\x89\x9b\x81\xc4\xb2\x9b\xff\x48\xeb\xad\x80\x0c\x0c\xea\xb0\x9d\x78\x53\x30\xe3\x64\xa6\xd5\x40\xbf\x0b\xba\xa0\xb2\x8d\xc2\x82\xed\x0b\xaa\xc3\xe9\xac\x72\xf4\x46\x28\x3d\x4c\x5c\xb2\x8a\x18\x72\xaf\x79\x73\x70\x75\xad\x7b\x3a\x58\x27\x25\xf2\x7e\x6a\xa6\x1d\xf1\xe3\xfe\xaa\xb1\x58\x05\xd9\x63\xe9\xff\x5d\x83\x7a\x12\xa4\xe3\x91\x84\x44\xb4\x3f\xa6\x1f\x7f\xa5\x83\xbe\xbf\x8e\x58\xb7\xbf\x1c\xf7\x43\x54\x76\xb4\x70\xeb\x64\x0d\xea\xa6\x57\x3b\xda\x8e\xfa\x68\xf6\xcc\x07\x88\x42\x47\x45\x51\x15\x60\xac\xa2\xe0\xc9\xda\xe3\x1e\x29\xed\xc0\xb1\xa5\x4b\xb0\xde\xd9\xd9\x37\x11\xee\x1b\x74\x5c\xfb\xee\xdb\x40\x2f\x32\x5e\x6e\xa1\x55\x96\xd5\x3d\x9b\xda\xdd\x6b\xcc\x0a\xfa\xeb\xd8\x3a\x86\x79\xc7\xac\x66\x18\xca\xcc\xc3\xd1\x59\x47\x69\xf0\xd1\x53\xa7\xc3\x50\xff\xb8\xde\x48\xf6\x58\x72\xc6\x6a\x66\x71\xb5\x1d\x6d\xc6\xd7\x3a\x47\xdf\xb2\x6b\xfc\xb9\x50\x1b\x8f\x8a\xea\x85\xd3\x4b\xec\xea\x0c\xaf\xb1\x60\x72\xe6\xa3\x4e\x8b\xa0\xdc\x69\xbf\x1c\x54\x9d\x88\x39\x5d\xb9\x06\x75\x7a\x54\x43\xb2\x16\x82\xe0\xd4\x1c\xac\xae\xfb\x51\xda\xb0\xfa\x86\x15\x77\xaa\xca\x3a\x6a\x49\x48\x36\x5e\x59\xa7\x26\xc3\x83\xcc\xd5\x26\x09\x4a\x63\x6d\xd4\xa2\x9f\xfb\x53\x0f\xea\x35\x39\x69\xaf\xd7\xed\xf0\xf1\x7d\xe7\x44\x8e\x1b\x0d\x6c\xcd\xb8\x08\x88\xd8\xeb\x6e\xe0\x7c\x14\x8c\x2c\x54\xef\x98\x79\xf0\xf5\xdd\x4a\xa8\x05\x13\x17\x50\x29\xb1\x2d\x95\xae\x0a\x9e\x01\xa7\x9c\x5c\xc6\xa3\x89\x91\x9d\xaa\x5e\x08\x9e\xf5\xf6\x28\x5b\x1e\x1d\xcf\x8f\x4c\xe5\xe9\x4d\xf8\x93\x4b\x9a\x23\x2f\xee\x9f\x57\x1b\xd0\x92\x3b\xae\x86\xe5\x02\x73\xe3\xb5\xa0\x8c\xe1\x51\x52\x47\xc8\x84\x86\xae\xdb\x71\x4a\x05\x83\xda\xf7\xd1\xd7\x8a\xe7\xb0\xd1\xdc\x9d\x4a\xcc\xdc\x69\x61\xa8\xe5\xac\x64\xda\x14\x4c\x08\xd7\xdb\xa6\xe4\xe1\xbb\xe7\xee\x58\x46\xc5\x74\xd2\x49\x32\xd4\x0e\x4c\xb8\x1e\xad\x09\x1b\xc0\x44\x5a\x85\xea\x8c\x78\xfc\x8e\xcb\x9c\x58\x44\xc8\xd5\x46\x1a\x9e\x63\x3c\x83\x9a\x2a\xb0\xaa\x4a\x2b\x96\x15\xc0\xcd\x85\x67\xc7\xc9\x4f\x05\x89\xeb\x81\xba\x7a\x43\x2a\xeb\xbb\xd2\x61\xee\x80\xb5\x93\xee\x4c\xde\xf4\xab\x51\xde\xaf\x0c\x65\x70\x1e\xc5\x5c\x60\xa6\x4a\x04\x56\x2e\xf8\xaa\x56\xb5\x69\x8e\xe9\x86\xfa\x26\x85\x7f\x48\x31\x7a\x0a\xff\x44\x28\xf9\xaa\xb0\xa0\x71\xcd\x0d\xb7\xde\x49\x5a\x21\xba\x0d\xe9\x10\x56\x86\x4a\x92\xc8\x8d\x04\x6e\x4c\x9d\x28\xa8\x8e\x67\xee\x5c\xc9\x81\x8c\x7d\xac\x20\xa3\x6b\xc9\x2c\x13\x1f\x47\xa2\x29\xaf\x8e\x91\x19\x4c\x32\x15\x4f\x55\x37\x30\x06\x22\xec\xc6\x59\x5e\x61\x38\x01\x4a\x77\x17\x21\x47\x30\xdf\x29\x58\xa1\xa4\xd0\xe6\x2a\xdf\xc1\xac\xca\x1c\xa1\x18\xc5\x22\x2a\x94\x79\xdb\x7b\x1d\x82\x96\x63\x71\x17\xca\xf5\xb7\x5c\x1c\x05\x5e\xa3\xb1\xcf\xf2\x53\x12\x7b\xc0\x41\x30\xf3\x38\x5a\xc9\x08\xfc\x68\x62\xa3\x30\xdb\x08\x54\x02\xa3\x80\x5d\xa5\x06\xf8\x1e\xc1\x71\x73\x08\xfd\x23\xec\x7b\x94\x62\x3e\x99\xc4\x1b\x26\xed\x37\xfa\xa8\x43\x0f\xc5\x85\xc1\x25\x3a\xa1\x7b\x10\xab\xb9\x13\x3b\x08\x03\xfa\xdb\xcd\xc6\x71\x1a\x0f\x5c\x62\x2d\xd9\x39\x54\x6c\x15\xfc\xeb\xd5\x0f\xdf\xb7\x0c\x81\x50\x59\x6f\x99\xb9\xd7\xbd\xa4\x94\x23\x72\xd4\x2e\x84\xd0\x0d\xdd\x09\x24\xe1\xc0\x3f\x01\x9b\xfe\x03\xd9\x3d\xca\xaa\xab\x95\x66\x39\x2d\xf8\xb7\x5a\x95\x83\x88\xef\xdd\xce\x50\x27\x96\x47\x1a\x7b\x30\xcf\xb4\x07\xcb\x3d\xf5\x43\x2b\x72\xdb\xe2\x9f\x06\x20\x7e\xa2\x43\x24\x27\x1e\x23\x79\x3e\xfb\xbd\x27\xef\xf3\xd9\xef\xe7\xb3\xdf\x9e\xe3\xe7\xb3\xdf\xcf\x67\xbf\x47\x08\xf7\x7c\xf6\xfb\xb3\x3f\xfb\xfd\x7c\x6e\xfa\xf9\xdc\xf4\x69\x80\x3b\x71\xd0\x3a\x31\x4d\xff\x17\x9b\x96\xd9\xda\x8c\xfe\x66\xd3\x8d\xde\xf9\x6a\x53\x2d\x0c\xea\xf5\xc8\xcf\x36\x7b\x58\xd8\xbb\xd5\x7e\xe5\x1e\x3e\xa8\x6f\x6e\x39\x26\x27\xe1\xd3\xf6\xf6\x29\x80\x9f\xbf\x53\x50\x19\xab\x34\x5b\xc5\x12\xab\x95\x90\x40\x4e\x65\x31\xbf\xda\xff\xc6\xfd\xdc\x67\xd9\xf8\xd1\xba\xfb\x99\x29\xe9\x8b\x16\x33\x87\x9f\x7e\x39\x83\xd0\x5c\x88\x20\xdc\xdd\xfc\x6f\x00\x00\x00\xff\xff\xac\xc2\xd6\x24\x1b\x40\x00\x00") +var _configCrdsKudoDev_operatorversionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x3b\x5d\x6f\xe3\x36\xb6\xef\xf9\x15\x07\xd3\x87\xb9\x05\x62\xfb\x76\x2e\x70\x71\xe1\xb7\xc1\x4c\x7b\x91\xed\x34\x09\x26\x99\x2e\x16\xdd\x02\xa1\xc5\x63\x8b\x0d\x45\x72\x49\xca\x1e\x6f\xd1\xff\xbe\x38\x24\x25\x59\x8e\x28\x2b\xc9\xa4\x3b\xab\x97\xc4\x12\x79\x78\xbe\xbf\x74\x74\x36\x9b\xcd\xce\x98\x11\x3f\xa3\x75\x42\xab\x25\x30\x23\xf0\xb3\x47\x45\xbf\xdc\xfc\xfe\xff\xdc\x5c\xe8\xc5\xf6\xbb\x15\x7a\xf6\xdd\xd9\xbd\x50\x7c\x09\xef\x6a\xe7\x75\xf5\x11\x9d\xae\x6d\x81\xef\x71\x2d\x94\xf0\x42\xab\xb3\x0a\x3d\xe3\xcc\xb3\xe5\x19\x00\x53\x4a\x7b\x46\xb7\x1d\xfd\x04\x28\xb4\xf2\x56\x4b\x89\x76\xb6\x41\x35\xbf\xaf\x57\xb8\xaa\x85\xe4\x68\xc3\x09\xcd\xf9\xdb\xff\x9e\xbf\x99\xff\xef\x19\x40\x61\x31\x6c\xbf\x15\x15\x3a\xcf\x2a\xb3\x04\x55\x4b\x79\x06\xa0\x58\x85\x4b\xd0\x06\x2d\xf3\xda\xa6\x9d\x6e\x7e\x5f\x73\x3d\xe7\xb8\x3d\x73\x06\x0b\x3a\x73\x63\x75\x6d\x96\xd0\xde\x8f\x3b\x13\x3a\x91\x94\xab\x04\x24\x91\x1f\x9e\x48\xe1\xfc\x8f\x43\x4f\x3f\x08\xe7\xc3\x0a\x23\x6b\xcb\xe4\x43\x14\xc2\x43\x27\xd4\xa6\x96\xcc\x3e\x78\x7c\x06\xe0\x0a\x6d\x70\x09\x97\x84\x86\x61\x05\xf2\x33\x80\x2d\x93\x82\x07\x4a\x23\x62\xda\xa0\x7a\x7b\x7d\xf1\xf3\xff\xdc\x14\x25\x56\x2c\xde\x04\xe0\xe8\x0a\x2b\x4c\x58\x77\x8c\x18\x08\x07\xbe\x44\x88\x3b\x60\xad\x6d\xf8\x79\x8c\x1e\xbc\xbd\xbe\x98\x27\x70\xc6\xd2\x53\x2f\x1a\x76\xd0\x75\xa0\x06\xed\xbd\xa3\x83\x5f\x13\x66\xe9\x50\x4e\x82\xc7\x78\x72\x3a\x02\x39\xb8\x88\x83\x5e\x83\x2f\x85\x03\x8b\xc6\xa2\x43\x15\x55\xe1\x00\x2c\xd0\x12\xa6\x40\xaf\x7e\xc3\xc2\xcf\xe1\x06\x03\x9e\xe0\x4a\x5d\x4b\x4e\xda\xb2\x45\xeb\xc1\x62\xa1\x37\x4a\xfc\xb3\x85\xec\xc0\xeb\x70\xa4\x64\x1e\x93\x3c\x9a\x4b\x28\x8f\x56\x31\x49\x3c\xad\xf1\x1c\x98\xe2\x50\xb1\x3d\x58\xa4\x33\xa0\x56\x07\xd0\xc2\x12\x37\x87\x9f\xb4\x45\x10\x6a\xad\x97\x50\x7a\x6f\xdc\x72\xb1\xd8\x08\xdf\x28\x7e\xa1\xab\xaa\x56\xc2\xef\x17\x41\x7d\xc5\xaa\xf6\xda\xba\x05\xc7\x2d\xca\x85\x13\x9b\x19\xb3\x45\x29\x3c\x16\xbe\xb6\xb8\x60\x46\xcc\x02\xe2\x2a\xe8\xfd\xbc\xe2\xdf\xd8\x64\x25\xee\xf5\x01\xa6\x7e\x4f\x5a\xe0\xbc\x15\x6a\xd3\xde\x0e\x0a\x99\xe5\x3b\x29\x24\x89\x99\xa5\x6d\x11\xff\x8e\xbd\x74\x8b\xb8\xf2\xf1\xfb\x9b\x5b\x68\x0e\x0d\x22\xe8\xf3\x3c\x70\xbb\xdb\xe6\x3a\xc6\x13\xa3\x84\x5a\xa3\x8d\x82\x5b\x5b\x5d\x05\x88\xa8\xb8\xd1\x42\xf9\xf0\xa3\x90\x02\x55\x9f\xe9\xae\x5e\x55\xc2\x93\xa4\xff\x51\xa3\xf3\x24\x9f\x39\xbc\x0b\xe6\x0f\x2b\x84\xda\x70\xe6\x91\xcf\xe1\x42\xc1\x3b\x56\xa1\x7c\xc7\x1c\xbe\x38\xdb\x89\xc3\x6e\x46\x2c\x3d\xcd\xf8\x43\xaf\xd5\x5f\x18\xb9\xd5\xde\x6e\xfc\xca\xa0\x84\x8e\x4c\xf2\xc6\x60\xd1\xb3\x10\x8e\x4e\x58\xd2\x62\xcf\x3c\x92\xee\x1f\x6d\x98\x1f\x00\x1e\x32\xce\x68\xa0\x66\xc0\x40\xb3\x84\x41\xf4\xba\x0a\x0b\x42\xf1\x26\x3c\x3c\xde\xd8\xa3\xe1\xdd\xd1\xe2\x96\x00\x06\x1e\x2b\x43\x16\xc7\x1b\xfd\xf3\x25\xf3\x50\x30\x05\x2b\x3c\x02\x09\x50\x3b\xe4\x64\xa6\xe9\x70\xfa\x97\x29\x10\xca\x79\xa6\x0a\x8c\xbe\x01\x5b\x06\xcc\xa7\xd2\xd2\xf8\xb3\x51\x1a\xae\x82\xcc\x3e\xe2\x1a\x2d\xd2\x61\xa4\x40\x4c\x28\x07\xa8\x74\xbd\x29\x83\xce\xd9\x2a\x78\x23\xc2\x4b\xa2\x87\xbd\xae\x1f\x90\x20\x14\x49\xdb\x83\xb6\x50\x69\x2e\xd6\xfb\x80\xb2\x25\xb0\x24\xc5\xe4\xb5\x8e\xb6\xe5\xe4\x06\x59\xe7\x3a\x48\xc2\xdb\xeb\x8b\xc6\xa1\x36\xbc\xb2\x91\x9e\x07\x27\x8e\xf2\x8b\xae\xb5\x40\xc9\xaf\x99\x2f\x4f\x9e\xfa\xfa\x62\x9d\xe8\x0b\xe2\xd5\xc0\xc0\x08\x8c\xe2\x6a\xfd\x74\x10\x22\x32\x1e\x6f\x0e\x80\x04\x20\x2b\xb4\x98\xd6\x9f\x47\x67\x92\x74\xa6\xf3\xed\x24\x12\x60\x31\xf6\xc1\x5f\x6e\xae\x2e\x17\xff\xaf\x23\xae\x83\x30\x59\x51\xa0\x73\xd1\x76\x2a\x54\xfe\x1c\x5c\x5d\x94\xc0\x5c\x63\x56\x37\xf4\x64\x5e\x31\x25\xd6\xe8\xfc\x3c\x9d\x80\xd6\xfd\xf2\xe6\xd7\x21\x9e\x01\xfc\xa0\x2d\xe0\x67\x56\x19\x89\xe7\x20\x22\x97\x5b\xef\xd8\x28\x8f\x70\x91\x11\x2d\x3c\xd8\x09\x5f\x8a\x61\xc2\x19\x18\xcd\x13\xc1\xbb\x40\xa8\x67\xf7\x08\x3a\x11\x5a\x23\x48\x71\x8f\x4b\x78\x45\x9a\x75\x80\xe2\xef\x94\x95\xfc\xf1\x6a\x10\xe6\x7f\xed\x4a\xb4\x08\xaf\x68\xc9\xab\x88\x58\x1b\x00\xe9\x5e\xa3\x1f\x1d\x82\xc1\x2e\xbd\x15\x9b\x0d\x5a\x1c\xe6\x66\xf0\xea\xe4\x2d\xbf\x25\xf5\x16\x6b\x50\xfa\x00\x40\x00\x4b\x32\x33\x58\x88\xb5\x40\xfe\x00\xe1\x5f\xde\xfc\x9a\xc1\xb6\xcf\x27\x10\x8a\xe3\x67\x78\x03\x42\x45\xae\x18\xcd\xbf\x9d\xc3\x6d\xd0\x88\xbd\xf2\xec\x33\x9d\x53\x94\xda\xa1\x02\xad\xe4\x7e\x18\x5b\x0d\x25\xdb\x22\x38\x5d\x21\xec\x50\xca\x59\xf4\x4a\x1c\x76\x6c\x4f\xf4\x37\xe2\x22\x0d\x63\x60\x98\xf5\xfd\xd4\x62\x10\xea\xed\xd5\xfb\xab\x65\xc4\x8a\x54\x68\x13\x72\x28\x0a\x59\x6b\x41\x09\x04\x65\x0e\x31\x0c\x92\x4e\x06\x76\xd4\x51\x39\xc8\xad\x95\x4c\x6d\x1e\x7a\x3d\x08\x6e\x23\x70\x77\x5d\x53\x60\x9a\xbf\x7e\xac\xb5\x1e\xe7\x00\xcd\x35\x90\x0b\x1c\x3b\x86\x7f\x53\x44\x9d\x44\x56\x48\xd8\x4f\x92\x75\x79\xa0\xcf\xa3\x64\x51\xe9\x60\x15\x7a\x0c\x94\x71\x5d\x38\x22\xaa\x40\xe3\xdd\x42\x6f\xd1\x6e\x05\xee\x16\x3b\x6d\xef\x85\xda\xcc\x48\x11\x67\x51\x13\xdc\x22\xe4\xff\x8b\x6f\xc2\x9f\x27\x51\x11\xb2\xf6\x69\xa4\x84\xa5\x7f\x06\x3d\x74\x8e\x5b\x3c\x9a\x9c\x26\x49\x9c\x1a\x95\x5e\xdf\x44\x87\x50\x1c\xef\x24\x93\xd8\x95\xa2\x28\x9b\x8c\xbf\xf3\x9e\x83\x36\x52\x31\x1e\x5d\x2e\x53\xfb\x17\x57\x5b\x62\x64\x6d\x09\x9f\xfd\x2c\x55\xa0\x33\xa6\x38\xfd\xef\x84\xf3\x74\xff\xd1\x9c\xab\xc5\x04\x23\xfd\x74\xf1\xfe\xcf\x51\xe6\x5a\x3c\xda\x22\x07\xb3\x5b\xba\x0c\xb3\xac\x42\x8f\xf6\x41\x02\x23\x3c\x56\x03\x59\x4d\x8f\xe6\xeb\x66\x37\x14\xcc\x90\x40\x52\x6d\xc8\xac\x60\x2b\x21\x85\xdf\x27\xc7\x3c\x54\x75\xf7\xaf\x15\x92\x37\x8f\x19\xa3\x17\x21\xef\xa4\x84\xa1\x4b\x22\x1f\x7a\xf5\xb1\xe4\x8b\x10\x5d\xb3\x5a\xfa\xa1\x47\x47\x54\xbc\x8f\x2b\x63\xb1\x95\xb6\xa5\xf8\x1d\x43\x65\xcb\x24\x5a\x62\xac\xde\x0a\x9e\x09\xb4\x00\xab\x98\x37\xe6\xb1\x86\x53\xca\xd6\xc7\x6e\x0a\xfa\xed\x8f\x4e\x0c\x0c\xa4\x56\x1b\xb4\x87\x4b\x49\x16\xa5\xde\x65\x10\x27\xac\x3b\x42\x77\x42\xca\x50\xcc\x39\xe4\x4f\xa3\x41\x38\x23\xd9\xfe\x32\x13\x08\x8e\x69\xe8\x56\xa7\x12\x23\x96\x14\xab\x3d\x7c\xba\x70\x4f\x42\x20\x17\x82\x8e\x4e\x7e\x75\x99\xb2\x1f\xa2\xff\xb0\xd2\x49\xa9\x6b\x83\x49\x8a\xf3\x4d\x55\x94\x61\xe2\x5a\x48\x0c\xdd\x98\xc3\x44\xf3\x2e\xb6\xaf\xde\x5d\x7d\xba\xbc\xbd\x23\x28\x0a\x6a\xd7\x94\xef\xd1\x56\x24\x69\x4c\x06\x26\x0b\x89\x59\x4a\x25\xff\xae\x62\x51\x1a\xdc\xb9\x91\xa2\x60\x6e\x09\xf0\xfb\xef\x30\x0f\xb6\xe8\xe6\xe1\x14\xf8\x23\x93\x5d\x9e\xe0\x19\x55\xf4\x94\x5c\x4f\xe0\xdb\xc7\xb4\xb4\xcd\x1a\x5d\x93\x53\xf7\xac\xa5\x81\x08\x5e\xe7\x0c\x06\x5b\x93\x22\x71\x33\x29\x5b\xe3\x71\xe7\x94\xae\xee\x4a\xf4\x25\xda\x03\xdb\x24\x0d\x71\xf5\x7a\x2d\xc6\xed\x6b\xa5\xb5\xc4\xc1\x9a\x25\x65\xcb\x13\xc8\xbc\x8d\x2b\x41\x70\x0a\x31\x81\xcc\x40\xa3\x64\x2a\xaa\xc9\x06\xbd\x03\xfc\x8c\x45\x4d\x2e\x6b\x57\x62\x4e\x8c\x31\x1f\xee\x1c\x66\x48\x29\x5d\xa3\x57\x17\x6d\xa9\x9c\xba\x63\x07\x4e\xe9\x2e\x76\x54\xee\x32\x80\x29\xae\x46\x84\x42\x0a\x1e\xb0\x0a\x29\x3d\x7e\x16\xce\x13\x0f\x89\x7d\x3b\xe1\x10\x84\x7f\xed\xe0\x8e\xa3\x91\x7a\x7f\xf7\x24\xab\x0a\x6e\x71\x16\x16\x4d\x60\xde\xde\xe0\x81\x7e\x44\x75\x27\xb7\x4a\xfb\x5b\x12\x43\x79\x73\x17\x4f\x7c\x0a\x52\xd9\xd8\xd6\x3c\x62\xd6\xb2\x7e\xa5\x41\xdc\x7a\x10\x34\x18\xe7\xa1\xa9\xcd\xe4\xf5\x48\x60\xe9\xc7\x3f\xe2\x7a\x47\x20\x03\x87\x96\xfe\xd1\x6b\xb8\x2e\x99\x0b\x34\x93\x34\x30\x76\x47\x56\x54\xb6\x91\x5b\xf0\x43\x4e\x75\x3c\x9c\x99\x00\x6f\x02\xd3\xd3\xc1\x15\x33\x84\x50\xd8\x16\xd5\x21\xd4\xb5\xe1\xe9\x68\x9d\x94\x89\xfb\xb9\x93\x7a\xe4\x4b\xe1\x42\x29\xe6\x3c\x9a\x44\x7b\x53\xfa\xff\xd8\x66\x3d\x19\xd0\x4d\xab\x32\xe3\xed\x4f\xf1\x27\x5e\x79\xa7\x1f\xaf\x13\xda\x1d\xaf\x80\xfd\x18\x94\x1e\x17\x6e\x02\xad\x89\xdd\xb4\xf5\x80\xdb\x0d\x3f\xda\x5e\xda\x08\x50\x38\x60\x51\xc3\x0a\x70\x5e\x93\xf3\x64\x5d\x1b\x38\xc7\x1d\x38\x25\xba\x0c\xea\x07\x1d\x3f\xd7\xa4\xfb\x0e\x03\xd6\xb1\xfb\xd6\xbe\xe6\xc8\x5f\x41\xd0\xba\x28\xea\x07\x9d\xbd\xfe\x35\x45\x82\xf1\x3a\x25\xc7\x74\xee\x14\x69\xa6\xa5\xcc\xdd\x9f\x3c\x75\x12\x07\x1f\x7d\x74\xde\x0d\x0d\xaf\x1b\xf4\x64\x8f\x05\xe7\xbc\x65\x1e\x37\xfb\xc9\x6a\x7c\x65\x39\xc6\x96\x5d\x6b\xcf\xa5\xde\xc5\xac\xa8\x5e\x05\xbe\x34\x5d\x9d\x71\x19\x4b\xa6\x16\xd1\xeb\x74\x19\x54\x78\x0b\xc8\x41\xd7\x19\x9f\x73\x48\xd7\x28\x4f\x4f\x72\x48\xd5\x52\x52\x3a\xb5\x04\x6f\xeb\xe1\x2c\x6d\x9c\x7d\xe3\x8c\x7b\x2a\xcb\x0e\xd8\x92\xa1\x6c\x3a\xb3\x9e\x1a\x0c\x1f\x44\xae\x2e\x48\x50\x18\xeb\xbc\x16\xfd\x3c\x3e\x7a\x94\xaf\xd9\x43\x07\xad\xae\x87\xc7\x87\xe4\x21\x29\xed\x0b\xab\x81\x6d\x99\x90\x29\x23\x8e\xbc\x1b\x79\x6f\x02\x13\x0b\xd5\x5b\xe6\xee\x63\x7d\xb7\x91\x7a\xc5\xe4\x39\x18\x2d\xf7\x95\xb6\xa6\x14\x05\x08\x8a\xc9\x55\xf3\xca\xb2\x41\xc7\xd4\x2b\x29\x8a\xc1\x1e\x65\x87\x63\xc0\xf9\x91\xa1\x3c\xd7\xf3\x7b\x46\x49\x73\x62\xe3\xf1\x7b\xac\x11\x2e\x85\xd7\x58\x58\xad\x90\xbb\xc8\x05\xed\x9c\x68\x28\x0d\x80\x5c\x6a\xe8\x32\x29\xf5\x2e\xe7\x0c\xea\xd8\x47\xdf\x6a\xc1\x61\x67\x45\x78\x5b\x59\x84\x29\x02\xa8\xd5\xa2\x62\xd6\x95\x4c\xca\xd0\xdb\xa6\xe0\x11\xbb\xe7\x5a\xc9\x3d\xa5\xc8\x59\x23\x29\xd0\x86\x64\x22\xf4\x68\x1d\x70\x34\xa8\x38\x81\xd6\xa9\x3a\x23\x1c\x7f\x14\x8a\x13\x8a\x08\x5c\xef\x94\x13\x1c\x9b\x77\xd3\xb9\x02\xcb\x18\xab\x59\x51\x82\x70\xe7\x11\x9d\x40\x3f\x15\x24\xa1\x07\x1a\xea\x0d\xa5\x7d\xec\x4a\xa7\xb3\x53\xae\x9d\x35\x67\xb2\xa6\xdf\x9c\x8e\x76\xe5\x28\x82\x8b\x86\xcc\x15\x16\xba\x42\x60\xd5\x4a\x6c\x6a\x5d\xbb\xf6\xf5\x7d\xaa\x6f\x72\xf9\x0f\x31\xc6\xce\xe1\xaf\x08\x95\xd8\x94\x1e\x2c\x6e\x85\x13\x3e\x1a\x49\x47\xc4\x61\x43\x3a\xb9\x95\xb1\x92\xa4\xc1\x46\x81\x70\xae\xce\x14\x54\xa7\x23\x77\xfe\x4d\x65\x77\xf5\x94\xed\x20\xdf\x60\xc6\xb4\xaf\xbf\x12\xfa\x9a\xaa\x3b\xc1\x24\x55\xb9\xfa\x7c\x34\x88\x75\x45\x04\x6d\xac\xb4\x0b\x33\x04\xc7\x2f\xad\x7b\x74\x9f\x0e\x34\x5c\xab\x91\x04\xe4\x54\x7d\x49\xd7\x9a\x79\x26\x9f\x07\xa2\xa9\x83\xf3\x4d\x94\x89\xd4\xe8\xbe\x07\x7d\xbc\x84\x1a\x00\x2f\x21\x26\xd0\x2a\x67\x45\x93\x88\x33\xac\xb8\x67\x9b\x11\x06\xf5\x88\x42\x11\x9a\x09\x84\x6f\xb3\x33\x98\xe8\x39\x48\x5d\x30\xd9\xde\x5b\x6b\xc9\xd1\x8e\x50\xa4\x2d\xd9\xcc\xa7\x8f\x1f\x88\xa4\x66\x97\x67\x76\xc5\xc2\xc8\xd2\x33\xc8\x49\x2d\x82\x67\x49\xdc\x88\x5c\x85\x0e\x53\xd2\xdc\x7e\xae\x20\x0c\xa6\xe9\x06\xba\xbb\x4a\x79\x0e\x8b\xdd\xae\x0d\x2a\xd2\x8d\xd0\xbd\x19\xcd\x0c\x59\x00\xd4\x44\xe2\xa6\xb2\x51\xbc\x7b\x7f\x30\x56\x1e\x4d\xad\x1d\x50\x6d\x7f\x10\xf2\x64\xf1\x30\x39\x7f\x5f\x7f\x49\x60\xf7\x38\x9a\x90\x3f\x0e\x56\x36\x8b\x78\x34\xb0\x49\x75\xc7\x84\xcc\x1a\x26\x15\x27\x46\x8f\xe0\x3d\x01\xe3\x76\xc0\xea\x19\xfa\x3d\x89\x31\x5f\x8c\xe2\x1d\x53\xfe\x7b\x7b\xd2\xa0\xc7\x82\xc1\xa8\x88\x9e\xd0\x01\x6b\x3a\x12\x4f\xec\x82\x8d\xf0\xaf\x9f\x51\x36\xc7\xc4\xe4\xbb\xe9\x87\xb4\x16\x1f\xe2\xc1\xdf\xde\xfe\xf4\xa1\x43\x28\xf8\xe1\xa1\x56\xc9\x51\x07\xde\x25\x17\x1d\x5c\x08\xdd\xb0\x07\x8e\x24\x0d\xb3\x51\x72\x3e\x3c\x6c\x34\xc0\xac\xda\x6c\x2c\xe3\x24\xf0\x1f\xac\xae\x46\xab\x96\x4f\xbd\xa5\x81\xac\x98\x2d\x1f\x95\x2a\xae\x1b\x9a\x8a\xd0\x1f\x6a\x51\x88\x87\x5f\xa6\xc8\xf9\x42\x83\x50\x4f\x1c\x85\x3a\xe5\xa2\xc7\xc7\xa1\x9e\x37\x10\x75\xd2\xa0\x47\x87\xa2\x9e\x39\x16\x95\x4b\x88\xd5\xd3\x07\xa3\x72\x29\x65\x18\x4d\x79\x81\xd1\xa8\x97\x18\x8e\x7a\x99\xf1\xa8\x17\x1a\x90\x7a\xc1\x11\xa9\x67\x0d\x49\xe5\xf2\x79\x2a\x94\x9f\x36\x26\x95\xd7\xd6\xe6\xcd\xd3\x63\x07\xa5\x72\x15\xf0\xf1\xf8\xd4\x84\x51\xa9\x93\x76\x9c\x4f\x7a\xbe\xfe\x81\xa9\x2f\xf5\xc6\xfa\x6b\x18\x9b\x9a\x44\x4b\x76\x74\xea\x2b\x1d\x9e\x9a\xf0\x7a\xfc\xe4\x00\xd5\x73\x47\xa8\x72\x9d\x00\xf7\x1f\x31\x44\x75\x92\x83\x99\x41\xaa\xaf\x6e\x94\xea\xcb\xbf\x72\xde\x3e\x6a\x8c\x7f\xf8\x6b\x04\xcf\x7c\xed\x26\x7f\x8f\x10\x56\xf7\xbe\x48\xd0\x2b\x87\x76\x3b\xf1\x93\x84\x01\x14\x8e\x6e\x75\x5f\x70\xa5\x8f\xc5\xda\x5b\x01\xc9\x59\xfa\x6c\xab\x7b\x0a\x10\xcf\x3f\x28\xa8\x9c\xd7\x96\x6d\x9a\x12\xab\xa3\x90\x92\x1c\xe3\x91\x5f\x1e\x7f\xbf\xf5\x2a\x46\xd9\xe6\x83\xac\xf0\xb3\xd0\x2a\x16\x2d\x6e\x09\xbf\xfc\x7a\x06\xa9\xb9\xd0\x24\xe1\xe1\xe6\xbf\x02\x00\x00\xff\xff\x10\x03\xb6\xf7\xf7\x36\x00\x00") func configCrdsKudoDev_operatorversionsYamlBytes() ([]byte, error) { return bindataRead(