Merge pull request #10 from elgnay/upgrade-work-api

Upgrade work api & update work agent cmd flags
This commit is contained in:
OpenShift Merge Robot
2020-05-12 08:26:11 -07:00
committed by GitHub
13 changed files with 332 additions and 110 deletions

2
go.mod
View File

@@ -3,7 +3,7 @@ module github.com/open-cluster-management/work
go 1.13
require (
github.com/open-cluster-management/api v0.0.0-20200417225547-6a7c2bf5fcf0
github.com/open-cluster-management/api v0.0.0-20200512021938-5f0d5c12ea67
github.com/openshift/build-machinery-go v0.0.0-20200211121458-5e3d6e570160
github.com/openshift/library-go v0.0.0-20200414135834-ccc4bb27d032
github.com/spf13/cobra v1.0.0

7
go.sum
View File

@@ -280,8 +280,8 @@ github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/open-cluster-management/api v0.0.0-20200417225547-6a7c2bf5fcf0 h1:ZVtV150rhEqJd1+kITKZgJ8nx4bLmFRMdXK9kMdCO1s=
github.com/open-cluster-management/api v0.0.0-20200417225547-6a7c2bf5fcf0/go.mod h1:RgKeB8PJ7upe2QXy/MpCejU/xm2G6/i0Y+/itWuPugs=
github.com/open-cluster-management/api v0.0.0-20200512021938-5f0d5c12ea67 h1:JHbmXcawfV/Flb+csFz+FFHOG9EfEfcUH5cggNX8Yu4=
github.com/open-cluster-management/api v0.0.0-20200512021938-5f0d5c12ea67/go.mod h1:RgKeB8PJ7upe2QXy/MpCejU/xm2G6/i0Y+/itWuPugs=
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
@@ -431,6 +431,7 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjut
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -465,6 +466,7 @@ golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -550,6 +552,7 @@ k8s.io/kube-aggregator v0.18.0 h1:J+wa9FDQ3SbgyA8wQBNg2m2FMSm+mMQfs2A58500hs0=
k8s.io/kube-aggregator v0.18.0/go.mod h1:ateewQ5QbjMZF/dihEFXwaEwoA4v/mayRvzfmvb6eqI=
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM=
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU=
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
k8s.io/utils v0.0.0-20200327001022-6496210b90e8 h1:6JFbaLjRyBz8K2Jvt+pcT+N3vvwMZfg8MfVENwe9aag=
k8s.io/utils v0.0.0-20200327001022-6496210b90e8/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=

View File

@@ -80,8 +80,7 @@ func NewManifestWorkController(
WithInformersQueueKeyFunc(func(obj runtime.Object) string {
accessor, _ := meta.Accessor(obj)
return accessor.GetName()
}).
WithInformers(manifestWorkInformer.Informer()).
}, manifestWorkInformer.Informer()).
WithSync(controller.sync).ResyncEvery(5*time.Minute).ToController("ManifestWorkAgent", recorder)
}
@@ -93,6 +92,10 @@ func (m *ManifestWorkController) sync(ctx context.Context, controllerContext fac
klog.V(4).Infof("Reconciling ManifestWork %q", manifestWorkName)
manifestWork, err := m.manifestWorkLister.Get(manifestWorkName)
if errors.IsNotFound(err) {
// work not found, could have been deleted, do nothing.
return nil
}
if err != nil {
return err
}
@@ -126,7 +129,7 @@ func (m *ManifestWorkController) sync(ctx context.Context, controllerContext fac
errs := []error{}
// Apply resources on spoke cluster.
resourceResults := m.applyManifest(manifestWork.Spec.Workload.Manifests, controllerContext.Recorder())
resourceResults := m.applyManifest(manifestWork.Spec.Workload.Manifest, controllerContext.Recorder())
for index, result := range resourceResults {
manifestCondition := helper.FindManifestConditionByIndex(int32(index), manifestWork.Status.ResourceStatus.Manifests)
if manifestCondition == nil {
@@ -167,17 +170,17 @@ func (m *ManifestWorkController) sync(ctx context.Context, controllerContext fac
}
if len(errs) > 0 {
err = utilerrors.NewAggregate(errs)
klog.Errorf("Reconcile work %s fails with err %w: ", manifestWorkName, err)
klog.Errorf("Reconcile work %s fails with err %v: ", manifestWorkName, err)
}
return err
}
func (m *ManifestWorkController) cleanupResourceOfWork(work *workapiv1.ManifestWork) []error {
errs := []error{}
for _, manifest := range work.Spec.Workload.Manifests {
for _, manifest := range work.Spec.Workload.Manifest {
gvr, object, err := m.decodeUnstructured(manifest.Raw)
if err != nil {
klog.Errorf("Failed to decode object: %w", err)
klog.Errorf("Failed to decode object: %v", err)
errs = append(errs, err)
continue
}
@@ -195,7 +198,7 @@ func (m *ManifestWorkController) cleanupResourceOfWork(work *workapiv1.ManifestW
gvr, object.GetNamespace(), object.GetName(), err))
continue
}
klog.V(4).Infof("Successfully delete resource %w with key %s/%s", gvr, object.GetNamespace(), object.GetName())
klog.V(4).Infof("Successfully delete resource %v with key %s/%s", gvr, object.GetNamespace(), object.GetName())
}
return errs
@@ -219,7 +222,7 @@ func (m *ManifestWorkController) removeWorkFinalizer(ctx context.Context, manife
return nil
}
func (m *ManifestWorkController) applyManifest(manifests []runtime.RawExtension, recorder events.Recorder) []resourceapply.ApplyResult {
func (m *ManifestWorkController) applyManifest(manifests []workapiv1.Manifest, recorder events.Recorder) []resourceapply.ApplyResult {
clientHolder := resourceapply.NewClientHolder().
WithAPIExtensionsClient(m.spokeAPIExtensionClient).
WithKubernetes(m.spokeKubeclient)

View File

@@ -92,14 +92,16 @@ func newManifestWork(index int, objects ...*unstructured.Unstructured) (*workapi
},
Spec: workapiv1.ManifestWorkSpec{
Workload: workapiv1.ManifestsTemplate{
Manifests: []runtime.RawExtension{},
Manifest: []workapiv1.Manifest{},
},
},
}
for _, object := range objects {
objectStr, _ := object.MarshalJSON()
work.Spec.Workload.Manifests = append(work.Spec.Workload.Manifests, runtime.RawExtension{Raw: objectStr})
manifest := workapiv1.Manifest{}
manifest.Raw = objectStr
work.Spec.Workload.Manifest = append(work.Spec.Workload.Manifest, manifest)
}
return work, fmt.Sprintf("%s", work.Name)

View File

@@ -21,8 +21,8 @@ import (
// WorkloadAgentOptions defines the flags for workload agent
type WorkloadAgentOptions struct {
SpokeKubeconfigFile string
SpokeClusterName string
HubKubeconfigFile string
SpokeClusterName string
}
// NewWorkloadAgentOptions returns the flags with default value set
@@ -34,14 +34,19 @@ func NewWorkloadAgentOptions() *WorkloadAgentOptions {
func (o *WorkloadAgentOptions) AddFlags(cmd *cobra.Command) {
flags := cmd.Flags()
// This command only supports reading from config
flags.StringVar(&o.SpokeKubeconfigFile, "spoke-kubeconfig", o.SpokeKubeconfigFile, "Location of kubeconfig file to connect to spoke cluster.")
flags.StringVar(&o.HubKubeconfigFile, "hub-kubeconfig", o.HubKubeconfigFile, "Location of kubeconfig file to connect to hub cluster.")
flags.StringVar(&o.SpokeClusterName, "spoke-cluster-name", o.SpokeClusterName, "Name of spoke cluster.")
}
// RunWorkloadAgent starts the controllers on agent to process work from hub.
func (o *WorkloadAgentOptions) RunWorkloadAgent(ctx context.Context, controllerContext *controllercmd.ControllerContext) error {
// build hub client and informer
hubWorkClient, err := workclientset.NewForConfig(controllerContext.KubeConfig)
hubRestConfig, err := clientcmd.BuildConfigFromFlags("" /* leave masterurl as empty */, o.HubKubeconfigFile)
if err != nil {
return err
}
hubWorkClient, err := workclientset.NewForConfig(hubRestConfig)
if err != nil {
return err
}
@@ -49,10 +54,7 @@ func (o *WorkloadAgentOptions) RunWorkloadAgent(ctx context.Context, controllerC
workInformerFactory := workinformers.NewSharedInformerFactoryWithOptions(hubWorkClient, 5*time.Minute, workinformers.WithNamespace(o.SpokeClusterName))
// Build dynamic client and informer for spoke cluster
spokeRestConfig, err := clientcmd.BuildConfigFromFlags("" /* leave masterurl as empty */, o.SpokeKubeconfigFile)
if err != nil {
return err
}
spokeRestConfig := controllerContext.KubeConfig
spokeDynamicClient, err := dynamic.NewForConfig(spokeRestConfig)
if err != nil {
return err

View File

@@ -50,7 +50,11 @@ spec:
to be deployed on the spoke cluster.
type: array
items:
description: Manifest represents a resource to be deployed on
spoke cluster
type: object
x-kubernetes-preserve-unknown-fields: true
x-kubernetes-embedded-resource: true
status:
description: Status represents the current status of work
type: object

View File

@@ -1,4 +1,4 @@
// Package v1 contains API Schema definitions for the operators v1 API group
// Package v1 contains API Schema definitions for the work v1 API group
// +k8s:deepcopy-gen=package,register
// +k8s:conversion-gen=github.com/open-cluster-management/api/apps
// +k8s:defaulter-gen=TypeMeta

View File

@@ -10,7 +10,6 @@ import (
proto "github.com/gogo/protobuf/proto"
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
math "math"
math_bits "math/bits"
@@ -29,10 +28,38 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func (m *Manifest) Reset() { *m = Manifest{} }
func (*Manifest) ProtoMessage() {}
func (*Manifest) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{0}
}
func (m *Manifest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *Manifest) 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 *Manifest) XXX_Merge(src proto.Message) {
xxx_messageInfo_Manifest.Merge(m, src)
}
func (m *Manifest) XXX_Size() int {
return m.Size()
}
func (m *Manifest) XXX_DiscardUnknown() {
xxx_messageInfo_Manifest.DiscardUnknown(m)
}
var xxx_messageInfo_Manifest proto.InternalMessageInfo
func (m *ManifestCondition) Reset() { *m = ManifestCondition{} }
func (*ManifestCondition) ProtoMessage() {}
func (*ManifestCondition) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{0}
return fileDescriptor_97234883da270a20, []int{1}
}
func (m *ManifestCondition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -60,7 +87,7 @@ var xxx_messageInfo_ManifestCondition proto.InternalMessageInfo
func (m *ManifestResourceMeta) Reset() { *m = ManifestResourceMeta{} }
func (*ManifestResourceMeta) ProtoMessage() {}
func (*ManifestResourceMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{1}
return fileDescriptor_97234883da270a20, []int{2}
}
func (m *ManifestResourceMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -88,7 +115,7 @@ var xxx_messageInfo_ManifestResourceMeta proto.InternalMessageInfo
func (m *ManifestResourceStatus) Reset() { *m = ManifestResourceStatus{} }
func (*ManifestResourceStatus) ProtoMessage() {}
func (*ManifestResourceStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{2}
return fileDescriptor_97234883da270a20, []int{3}
}
func (m *ManifestResourceStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -116,7 +143,7 @@ var xxx_messageInfo_ManifestResourceStatus proto.InternalMessageInfo
func (m *ManifestWork) Reset() { *m = ManifestWork{} }
func (*ManifestWork) ProtoMessage() {}
func (*ManifestWork) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{3}
return fileDescriptor_97234883da270a20, []int{4}
}
func (m *ManifestWork) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -144,7 +171,7 @@ var xxx_messageInfo_ManifestWork proto.InternalMessageInfo
func (m *ManifestWorkList) Reset() { *m = ManifestWorkList{} }
func (*ManifestWorkList) ProtoMessage() {}
func (*ManifestWorkList) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{4}
return fileDescriptor_97234883da270a20, []int{5}
}
func (m *ManifestWorkList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -172,7 +199,7 @@ var xxx_messageInfo_ManifestWorkList proto.InternalMessageInfo
func (m *ManifestWorkSpec) Reset() { *m = ManifestWorkSpec{} }
func (*ManifestWorkSpec) ProtoMessage() {}
func (*ManifestWorkSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{5}
return fileDescriptor_97234883da270a20, []int{6}
}
func (m *ManifestWorkSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -200,7 +227,7 @@ var xxx_messageInfo_ManifestWorkSpec proto.InternalMessageInfo
func (m *ManifestWorkStatus) Reset() { *m = ManifestWorkStatus{} }
func (*ManifestWorkStatus) ProtoMessage() {}
func (*ManifestWorkStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{6}
return fileDescriptor_97234883da270a20, []int{7}
}
func (m *ManifestWorkStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -228,7 +255,7 @@ var xxx_messageInfo_ManifestWorkStatus proto.InternalMessageInfo
func (m *ManifestsTemplate) Reset() { *m = ManifestsTemplate{} }
func (*ManifestsTemplate) ProtoMessage() {}
func (*ManifestsTemplate) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{7}
return fileDescriptor_97234883da270a20, []int{8}
}
func (m *ManifestsTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -256,7 +283,7 @@ var xxx_messageInfo_ManifestsTemplate proto.InternalMessageInfo
func (m *StatusCondition) Reset() { *m = StatusCondition{} }
func (*StatusCondition) ProtoMessage() {}
func (*StatusCondition) Descriptor() ([]byte, []int) {
return fileDescriptor_97234883da270a20, []int{8}
return fileDescriptor_97234883da270a20, []int{9}
}
func (m *StatusCondition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -282,6 +309,7 @@ func (m *StatusCondition) XXX_DiscardUnknown() {
var xxx_messageInfo_StatusCondition proto.InternalMessageInfo
func init() {
proto.RegisterType((*Manifest)(nil), "github.com.open_cluster_management.api.work.v1.Manifest")
proto.RegisterType((*ManifestCondition)(nil), "github.com.open_cluster_management.api.work.v1.ManifestCondition")
proto.RegisterType((*ManifestResourceMeta)(nil), "github.com.open_cluster_management.api.work.v1.ManifestResourceMeta")
proto.RegisterType((*ManifestResourceStatus)(nil), "github.com.open_cluster_management.api.work.v1.ManifestResourceStatus")
@@ -298,63 +326,97 @@ func init() {
}
var fileDescriptor_97234883da270a20 = []byte{
// 884 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcb, 0x8b, 0x1c, 0x45,
0x18, 0x9f, 0xee, 0xec, 0xec, 0xa3, 0x76, 0xdd, 0x24, 0x45, 0x08, 0xcd, 0x1e, 0x7a, 0x97, 0x16,
0x64, 0x15, 0xb7, 0xda, 0x5d, 0x44, 0x3c, 0x88, 0x8f, 0x56, 0x23, 0x62, 0x36, 0x81, 0xca, 0x62,
0x40, 0x24, 0xb1, 0xb6, 0xa7, 0xd2, 0x5b, 0x99, 0xe9, 0xaa, 0xa6, 0xaa, 0x66, 0xe2, 0x5e, 0x44,
0x10, 0xc4, 0x83, 0x07, 0xf1, 0x6f, 0xf1, 0x0f, 0xf0, 0xb8, 0xc7, 0x80, 0x97, 0x9c, 0x06, 0x77,
0xfc, 0x2f, 0x3c, 0x49, 0x55, 0x57, 0x3f, 0x66, 0x66, 0x43, 0xf6, 0x01, 0x9e, 0x66, 0xfa, 0x7b,
0xfc, 0x7e, 0xdf, 0xf7, 0xd5, 0xf7, 0x00, 0x1f, 0x66, 0x4c, 0x1f, 0x0d, 0x0f, 0x51, 0x2a, 0xf2,
0x58, 0x14, 0x94, 0xef, 0xa4, 0x83, 0xa1, 0xd2, 0x54, 0xee, 0xe4, 0x84, 0x93, 0x8c, 0xe6, 0x94,
0xeb, 0x98, 0x14, 0x2c, 0x7e, 0x26, 0x64, 0x3f, 0x1e, 0xed, 0xc6, 0x19, 0xe5, 0x54, 0x12, 0x4d,
0x7b, 0xa8, 0x90, 0x42, 0x0b, 0x88, 0x1a, 0x7f, 0x64, 0xfc, 0x1f, 0x3b, 0xff, 0xc7, 0x8d, 0x3f,
0x22, 0x05, 0x43, 0xc6, 0x1f, 0x8d, 0x76, 0x37, 0x76, 0x5a, 0x7c, 0x99, 0xc8, 0x44, 0x6c, 0x61,
0x0e, 0x87, 0x4f, 0xec, 0x97, 0xfd, 0xb0, 0xff, 0x4a, 0xf8, 0x8d, 0x77, 0xfb, 0xef, 0x2b, 0xc4,
0x84, 0x09, 0x21, 0x27, 0xe9, 0x11, 0xe3, 0x54, 0x1e, 0xc7, 0x45, 0x3f, 0x33, 0x02, 0x15, 0xe7,
0x54, 0x93, 0x33, 0x82, 0xda, 0x88, 0x5f, 0xe6, 0x25, 0x87, 0x5c, 0xb3, 0x9c, 0xce, 0x39, 0xbc,
0xf7, 0x2a, 0x07, 0x95, 0x1e, 0xd1, 0x9c, 0xcc, 0xfa, 0x45, 0xbf, 0xf8, 0xe0, 0xe6, 0x3e, 0xe1,
0xec, 0x09, 0x55, 0xfa, 0x53, 0xc1, 0x7b, 0x4c, 0x33, 0xc1, 0xe1, 0x0f, 0x60, 0x4d, 0x52, 0x25,
0x86, 0x32, 0xa5, 0xfb, 0x54, 0x93, 0xc0, 0xdb, 0xf2, 0xb6, 0x57, 0xf7, 0x3e, 0xbb, 0x60, 0xa9,
0x50, 0x05, 0x8c, 0x5b, 0x58, 0xc9, 0xad, 0x93, 0xf1, 0x66, 0x67, 0x32, 0xde, 0x5c, 0x6b, 0x4b,
0xf1, 0x14, 0x1f, 0x54, 0x00, 0xa4, 0x55, 0x30, 0x2a, 0xf0, 0xb7, 0xae, 0x6d, 0xaf, 0xee, 0x7d,
0x74, 0x51, 0xf6, 0x07, 0x9a, 0xe8, 0xa1, 0xaa, 0x93, 0x4a, 0xa0, 0x23, 0x06, 0xb5, 0x48, 0xe1,
0x16, 0x4d, 0xf4, 0x87, 0x0f, 0x6e, 0x9d, 0x15, 0x31, 0x7c, 0x13, 0x2c, 0x09, 0xd9, 0x63, 0x9c,
0x0c, 0x6c, 0x21, 0xba, 0xc9, 0x75, 0x87, 0xb4, 0x74, 0xbf, 0x14, 0xe3, 0x4a, 0x0f, 0x5f, 0x07,
0xdd, 0x4c, 0x8a, 0x61, 0x11, 0xf8, 0x5b, 0xde, 0xf6, 0x4a, 0xf2, 0x9a, 0x33, 0xec, 0x7e, 0x61,
0x84, 0xb8, 0xd4, 0x19, 0xbc, 0x11, 0x95, 0x8a, 0x09, 0x1e, 0x5c, 0xb3, 0x66, 0x35, 0xde, 0xd7,
0xa5, 0x18, 0x57, 0x7a, 0xb8, 0x05, 0x16, 0xfa, 0x8c, 0xf7, 0x82, 0x05, 0x6b, 0xb7, 0xe6, 0xec,
0x16, 0xbe, 0x62, 0xbc, 0x87, 0xad, 0x06, 0xbe, 0x0d, 0x96, 0xab, 0xd2, 0x05, 0x5d, 0x6b, 0x75,
0xc3, 0x59, 0x2d, 0x57, 0x49, 0xe0, 0xda, 0xc2, 0xe0, 0x71, 0x92, 0xd3, 0x60, 0x71, 0x1a, 0xef,
0x1e, 0xc9, 0x29, 0xb6, 0x1a, 0x18, 0x83, 0x15, 0xf3, 0xab, 0x0a, 0x92, 0xd2, 0x60, 0xc9, 0x9a,
0xdd, 0x74, 0x66, 0x2b, 0xf7, 0x2a, 0x05, 0x6e, 0x6c, 0xa2, 0x5f, 0x3d, 0x70, 0x7b, 0xb6, 0x6c,
0x65, 0xe9, 0xa1, 0x04, 0x2b, 0xb9, 0xd3, 0x54, 0xaf, 0xf8, 0xc9, 0x65, 0x7b, 0xa8, 0x79, 0xc7,
0x3a, 0x9c, 0x4a, 0xa5, 0x70, 0x43, 0x13, 0xfd, 0xe9, 0x83, 0xb5, 0x4a, 0xf1, 0x50, 0xc8, 0x3e,
0xfc, 0x0e, 0x2c, 0x9b, 0x29, 0xeb, 0x91, 0xba, 0x8f, 0xdf, 0x41, 0xe5, 0xb0, 0xa0, 0xf6, 0xb0,
0xa0, 0xa2, 0x9f, 0x19, 0x81, 0x42, 0xc6, 0xda, 0x30, 0xdf, 0x3f, 0x7c, 0x4a, 0x53, 0x6d, 0x7b,
0xb6, 0x6e, 0x9d, 0x46, 0x86, 0x6b, 0x54, 0x78, 0x08, 0x16, 0x54, 0x41, 0x53, 0xfb, 0xe6, 0xab,
0x7b, 0x1f, 0x5f, 0x36, 0x43, 0x13, 0xed, 0x83, 0x82, 0xa6, 0xcd, 0xb3, 0x98, 0x2f, 0x6c, 0xb1,
0xe1, 0x53, 0xb0, 0xa8, 0x6c, 0x51, 0x6d, 0xcb, 0xac, 0xee, 0x25, 0x57, 0x62, 0xb1, 0x48, 0xc9,
0xba, 0xe3, 0x59, 0x2c, 0xbf, 0xb1, 0x63, 0x88, 0xfe, 0xf2, 0xc0, 0x8d, 0xb6, 0xf9, 0x5d, 0xa6,
0x34, 0xfc, 0x76, 0xae, 0x8c, 0xe8, 0x7c, 0x65, 0x34, 0xde, 0xb6, 0x88, 0x75, 0x5f, 0x56, 0x92,
0x56, 0x09, 0x09, 0xe8, 0x32, 0x4d, 0xf3, 0xaa, 0x4b, 0x3e, 0xb8, 0x4a, 0x76, 0xcd, 0xd4, 0x7d,
0x69, 0x20, 0x71, 0x89, 0x1c, 0xfd, 0x34, 0x93, 0x95, 0x29, 0x2e, 0x14, 0x60, 0xd9, 0x40, 0x0c,
0x04, 0xe9, 0xb9, 0xac, 0x2e, 0xdd, 0xa0, 0xea, 0x80, 0xe6, 0xc5, 0x80, 0x68, 0xda, 0x24, 0xfa,
0xd0, 0x41, 0xe3, 0x9a, 0x24, 0xfa, 0xdd, 0x07, 0x70, 0xfe, 0x29, 0x66, 0x16, 0x9e, 0xf7, 0xbf,
0x2c, 0x3c, 0xf8, 0xb3, 0x07, 0xd6, 0xe5, 0xd4, 0xc4, 0xba, 0x16, 0xbe, 0x73, 0xd5, 0x45, 0xef,
0x1a, 0xec, 0xb6, 0x0b, 0x60, 0x7d, 0x5a, 0x8e, 0x67, 0x58, 0x23, 0xd5, 0xdc, 0xa0, 0xba, 0x8a,
0xf0, 0xd1, 0xfc, 0xf2, 0xd8, 0x79, 0x69, 0xc7, 0xb9, 0x2b, 0x87, 0x30, 0x79, 0xf6, 0xf9, 0xf7,
0x9a, 0x72, 0xf5, 0xea, 0x45, 0x31, 0xf6, 0xc1, 0xf5, 0x99, 0x8a, 0x99, 0xf5, 0xa8, 0x8f, 0x0b,
0x6a, 0x5b, 0xa1, 0xb5, 0x1e, 0x0f, 0x8e, 0x0b, 0x8a, 0xad, 0x06, 0x3e, 0xaa, 0xe7, 0xb0, 0xdc,
0xf0, 0x77, 0xa6, 0x67, 0xe8, 0xdf, 0xf1, 0xe6, 0xb9, 0x0e, 0x3e, 0xaa, 0x39, 0xa7, 0x67, 0x0f,
0x8e, 0x00, 0x1c, 0x10, 0xa5, 0x0f, 0x24, 0xe1, 0xca, 0xea, 0x0f, 0x58, 0x4e, 0xdd, 0xcc, 0xbf,
0x75, 0xbe, 0x81, 0x33, 0x1e, 0xc9, 0x86, 0x8b, 0x0b, 0xde, 0x9d, 0x43, 0xc3, 0x67, 0x30, 0xc0,
0x37, 0xc0, 0xa2, 0xa4, 0x44, 0x09, 0xee, 0x4e, 0x4d, 0xbd, 0x1b, 0xb0, 0x95, 0x62, 0xa7, 0x35,
0xb7, 0x2b, 0xa7, 0x4a, 0x91, 0xac, 0xba, 0x36, 0xf5, 0xed, 0xda, 0x2f, 0xc5, 0xb8, 0xd2, 0x27,
0xdb, 0x27, 0xa7, 0x61, 0xe7, 0xf9, 0x69, 0xd8, 0x79, 0x71, 0x1a, 0x76, 0x7e, 0x9c, 0x84, 0xde,
0xc9, 0x24, 0xf4, 0x9e, 0x4f, 0x42, 0xef, 0xc5, 0x24, 0xf4, 0xfe, 0x9e, 0x84, 0xde, 0x6f, 0xff,
0x84, 0x9d, 0x6f, 0xfc, 0xd1, 0xee, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x46, 0xb3, 0xb5, 0x00,
0xc3, 0x09, 0x00, 0x00,
// 911 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4b, 0x6b, 0x24, 0x45,
0x1c, 0x9f, 0x9e, 0xcd, 0x24, 0x93, 0xca, 0x98, 0xdd, 0x2d, 0x96, 0x65, 0xc8, 0xa1, 0x13, 0x5a,
0x90, 0x28, 0xa6, 0xda, 0x04, 0x91, 0x3d, 0x88, 0x8f, 0x56, 0x57, 0xc4, 0xcd, 0x2e, 0xd4, 0x06,
0x17, 0x44, 0x5c, 0x2b, 0x3d, 0xb5, 0x9d, 0xda, 0x99, 0xae, 0x6a, 0xaa, 0x6a, 0x66, 0xcd, 0x41,
0x11, 0x04, 0xf1, 0xe0, 0x41, 0xfc, 0x2c, 0x7e, 0x00, 0x8f, 0x39, 0x2e, 0x78, 0xd9, 0x53, 0x30,
0xe3, 0xb7, 0xf0, 0x24, 0x55, 0x5d, 0x5d, 0xdd, 0x33, 0xc9, 0x62, 0x1e, 0xe0, 0x29, 0xe9, 0xff,
0xe3, 0xf7, 0xfb, 0xbf, 0x6b, 0xc0, 0x7b, 0x19, 0xd3, 0x07, 0xe3, 0x7d, 0x94, 0x8a, 0x3c, 0x16,
0x05, 0xe5, 0x5b, 0xe9, 0x68, 0xac, 0x34, 0x95, 0x5b, 0x39, 0xe1, 0x24, 0xa3, 0x39, 0xe5, 0x3a,
0x26, 0x05, 0x8b, 0x9f, 0x09, 0x39, 0x8c, 0x27, 0xdb, 0x71, 0x46, 0x39, 0x95, 0x44, 0xd3, 0x01,
0x2a, 0xa4, 0xd0, 0x02, 0xa2, 0xda, 0x1f, 0x19, 0xff, 0xc7, 0xce, 0xff, 0x71, 0xed, 0x8f, 0x48,
0xc1, 0x90, 0xf1, 0x47, 0x93, 0xed, 0xb5, 0xad, 0x06, 0x5f, 0x26, 0x32, 0x11, 0x5b, 0x98, 0xfd,
0xf1, 0x13, 0xfb, 0x65, 0x3f, 0xec, 0x7f, 0x25, 0xfc, 0xda, 0xdb, 0xc3, 0x3b, 0x0a, 0x31, 0x61,
0x42, 0xc8, 0x49, 0x7a, 0xc0, 0x38, 0x95, 0x87, 0x71, 0x31, 0xcc, 0x8c, 0x40, 0xc5, 0x39, 0xd5,
0xe4, 0x8c, 0xa0, 0xd6, 0xe2, 0x97, 0x79, 0xc9, 0x31, 0xd7, 0x2c, 0xa7, 0xa7, 0x1c, 0xde, 0xf9,
0x2f, 0x07, 0x95, 0x1e, 0xd0, 0x9c, 0xcc, 0xfb, 0x45, 0x0a, 0x74, 0x77, 0x09, 0x67, 0x4f, 0xa8,
0xd2, 0x30, 0x03, 0x3d, 0x49, 0x9e, 0x7d, 0xf2, 0xad, 0xa6, 0x5c, 0x31, 0xc1, 0xfb, 0xc1, 0x46,
0xb0, 0xb9, 0xb2, 0xb3, 0x85, 0x4a, 0x68, 0xd4, 0x84, 0x46, 0xc5, 0x30, 0x43, 0x0e, 0x1a, 0xe1,
0x86, 0x53, 0x72, 0xeb, 0xe8, 0x78, 0xbd, 0x35, 0x3d, 0x5e, 0xef, 0x35, 0xa5, 0x78, 0x06, 0x38,
0xfa, 0xb9, 0x0d, 0x6e, 0x56, 0xac, 0x1f, 0x09, 0x3e, 0x60, 0x9a, 0x09, 0x0e, 0xbf, 0x07, 0x3d,
0x49, 0x95, 0x18, 0xcb, 0x94, 0xee, 0x52, 0x4d, 0x1c, 0xfd, 0xc7, 0x17, 0xec, 0x0f, 0xaa, 0x80,
0x71, 0x03, 0xab, 0x11, 0x55, 0x43, 0x8a, 0x67, 0xf8, 0xa0, 0x02, 0x20, 0xad, 0x82, 0x51, 0xfd,
0xf6, 0xc6, 0xb5, 0xcd, 0x95, 0x9d, 0xf7, 0x2f, 0xca, 0xfe, 0x50, 0x13, 0x3d, 0x56, 0x3e, 0xa9,
0x04, 0x3a, 0x62, 0xe0, 0x45, 0x0a, 0x37, 0x68, 0xa2, 0xdf, 0xdb, 0xe0, 0xd6, 0x59, 0x11, 0xc3,
0xd7, 0xc1, 0x92, 0x90, 0x03, 0xc6, 0xc9, 0xc8, 0x16, 0xa2, 0x93, 0x5c, 0x77, 0x48, 0x4b, 0x0f,
0x4a, 0x31, 0xae, 0xf4, 0xf0, 0x55, 0xd0, 0xc9, 0xa4, 0x18, 0x17, 0xfd, 0xf6, 0x46, 0xb0, 0xb9,
0x9c, 0xbc, 0xe2, 0x0c, 0x3b, 0x9f, 0x1a, 0x21, 0x2e, 0x75, 0x06, 0x6f, 0x42, 0xa5, 0xed, 0xeb,
0x35, 0x6b, 0xe6, 0xf1, 0xbe, 0x28, 0xc5, 0xb8, 0xd2, 0xc3, 0x0d, 0xb0, 0x30, 0x64, 0x7c, 0xd0,
0x5f, 0xb0, 0x76, 0x3d, 0x67, 0xb7, 0xf0, 0x39, 0xe3, 0x03, 0x6c, 0x35, 0xf0, 0x4d, 0xd0, 0xad,
0x4a, 0xd7, 0xef, 0x58, 0xab, 0x1b, 0xce, 0xaa, 0x5b, 0x25, 0x81, 0xbd, 0x85, 0xc1, 0xe3, 0x24,
0xa7, 0xfd, 0xc5, 0x59, 0xbc, 0xfb, 0x24, 0xa7, 0xd8, 0x6a, 0x60, 0x0c, 0x96, 0xcd, 0x5f, 0x55,
0x90, 0x94, 0xf6, 0x97, 0xac, 0xd9, 0x4d, 0x67, 0xb6, 0x7c, 0xbf, 0x52, 0xe0, 0xda, 0x26, 0xfa,
0x25, 0x00, 0xb7, 0xe7, 0xcb, 0x56, 0x96, 0x1e, 0x4a, 0xb0, 0x9c, 0x3b, 0x4d, 0xd5, 0xc5, 0x0f,
0x2f, 0x3b, 0x43, 0x75, 0x1f, 0x7d, 0x38, 0x95, 0x4a, 0xe1, 0x9a, 0x26, 0xfa, 0xa3, 0x0d, 0x7a,
0x95, 0xe2, 0x91, 0x90, 0x43, 0xf8, 0x0d, 0xe8, 0x9a, 0xd5, 0x1e, 0x10, 0x3f, 0xc7, 0x6f, 0xbd,
0x74, 0x8d, 0xcc, 0x21, 0x40, 0xc6, 0xda, 0x30, 0x3f, 0xd8, 0x7f, 0x4a, 0x53, 0x6d, 0x67, 0xd6,
0x8f, 0x4e, 0x2d, 0xc3, 0x1e, 0x15, 0xee, 0x83, 0x05, 0x55, 0xd0, 0xd4, 0xf6, 0x7c, 0x65, 0xe7,
0x83, 0xcb, 0x66, 0x68, 0xa2, 0x7d, 0x58, 0xd0, 0xb4, 0x6e, 0x8b, 0xf9, 0xc2, 0x16, 0x1b, 0x3e,
0x05, 0x8b, 0xca, 0x16, 0xd5, 0x8e, 0xcc, 0xca, 0x4e, 0x72, 0x25, 0x16, 0x8b, 0x94, 0xac, 0x3a,
0x9e, 0xc5, 0xf2, 0x1b, 0x3b, 0x86, 0xe8, 0xcf, 0x00, 0xdc, 0x68, 0x9a, 0xdf, 0x63, 0x4a, 0xc3,
0xaf, 0x4e, 0x95, 0x11, 0x9d, 0xaf, 0x8c, 0xc6, 0xdb, 0x16, 0xd1, 0xcf, 0x65, 0x25, 0x69, 0x94,
0x90, 0x80, 0x0e, 0xd3, 0x34, 0xaf, 0xa6, 0xe4, 0xdd, 0xab, 0x64, 0x57, 0x6f, 0xdd, 0x67, 0x06,
0x12, 0x97, 0xc8, 0xd1, 0x8f, 0x73, 0x59, 0x99, 0xe2, 0x42, 0x01, 0xba, 0x06, 0x62, 0x24, 0xc8,
0xc0, 0x65, 0x75, 0xe9, 0x01, 0x55, 0x7b, 0x34, 0x2f, 0x46, 0x44, 0xd3, 0x3a, 0xd1, 0x47, 0x0e,
0x1a, 0x7b, 0x92, 0xe8, 0xb7, 0x36, 0x80, 0xa7, 0x5b, 0x31, 0x77, 0xf0, 0x82, 0xff, 0xe5, 0xe0,
0xc1, 0x9f, 0x02, 0xb0, 0x2a, 0x67, 0x36, 0xd6, 0x8d, 0xf0, 0xdd, 0xab, 0x1e, 0x7a, 0x37, 0x60,
0xb7, 0x5d, 0x00, 0xab, 0xb3, 0x72, 0x3c, 0xc7, 0x1a, 0x7d, 0x57, 0xbf, 0x41, 0xbe, 0x8a, 0xf0,
0xa0, 0x79, 0x3c, 0xca, 0x8a, 0xdc, 0xb9, 0x6c, 0x5c, 0x75, 0x4b, 0x7c, 0xa4, 0x8d, 0x93, 0x71,
0xdc, 0x06, 0xd7, 0xe7, 0x6a, 0x67, 0x0e, 0xa5, 0x3e, 0x2c, 0xa8, 0x1d, 0x8a, 0xc6, 0xa1, 0xdc,
0x3b, 0x2c, 0x28, 0xb6, 0x1a, 0xf8, 0xb5, 0xdf, 0xc8, 0xf2, 0xd6, 0xdf, 0x9d, 0xdd, 0xa6, 0x7f,
0x8e, 0xd7, 0xcf, 0xf5, 0x7b, 0x03, 0x79, 0xce, 0xd9, 0x2d, 0x84, 0x13, 0x00, 0x47, 0x44, 0xe9,
0x3d, 0x49, 0xb8, 0xb2, 0xfa, 0x3d, 0x96, 0x53, 0xb7, 0xfd, 0x6f, 0x9c, 0x6f, 0xf5, 0x8c, 0x47,
0xb2, 0xe6, 0xe2, 0x82, 0xf7, 0x4e, 0xa1, 0xe1, 0x33, 0x18, 0xe0, 0x6b, 0x60, 0x51, 0x52, 0xa2,
0x04, 0x77, 0x8f, 0x8e, 0xbf, 0x12, 0xd8, 0x4a, 0xb1, 0xd3, 0x9a, 0x57, 0x2c, 0xa7, 0x4a, 0x91,
0xac, 0x7a, 0x77, 0xfc, 0x2b, 0xb6, 0x5b, 0x8a, 0x71, 0xa5, 0x4f, 0x36, 0x8f, 0x4e, 0xc2, 0xd6,
0xf3, 0x93, 0xb0, 0xf5, 0xe2, 0x24, 0x6c, 0xfd, 0x30, 0x0d, 0x83, 0xa3, 0x69, 0x18, 0x3c, 0x9f,
0x86, 0xc1, 0x8b, 0x69, 0x18, 0xfc, 0x35, 0x0d, 0x83, 0x5f, 0xff, 0x0e, 0x5b, 0x5f, 0xb6, 0x27,
0xdb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x4c, 0x96, 0x74, 0x42, 0x0a, 0x00, 0x00,
}
func (m *Manifest) 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 *Manifest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *Manifest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
{
size, err := m.RawExtension.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
func (m *ManifestCondition) Marshal() (dAtA []byte, err error) {
@@ -697,10 +759,10 @@ func (m *ManifestsTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.Manifests) > 0 {
for iNdEx := len(m.Manifests) - 1; iNdEx >= 0; iNdEx-- {
if len(m.Manifest) > 0 {
for iNdEx := len(m.Manifest) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Manifests[iNdEx].MarshalToSizedBuffer(dAtA[:i])
size, err := m.Manifest[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@@ -708,7 +770,7 @@ func (m *ManifestsTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
dAtA[i] = 0xa
}
}
return len(dAtA) - i, nil
@@ -778,6 +840,17 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
func (m *Manifest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = m.RawExtension.Size()
n += 1 + l + sovGenerated(uint64(l))
return n
}
func (m *ManifestCondition) Size() (n int) {
if m == nil {
return 0
@@ -898,8 +971,8 @@ func (m *ManifestsTemplate) Size() (n int) {
}
var l int
_ = l
if len(m.Manifests) > 0 {
for _, e := range m.Manifests {
if len(m.Manifest) > 0 {
for _, e := range m.Manifest {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
@@ -932,6 +1005,16 @@ func sovGenerated(x uint64) (n int) {
func sozGenerated(x uint64) (n int) {
return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Manifest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&Manifest{`,
`RawExtension:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RawExtension), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
}
func (this *ManifestCondition) String() string {
if this == nil {
return "nil"
@@ -1037,13 +1120,13 @@ func (this *ManifestsTemplate) String() string {
if this == nil {
return "nil"
}
repeatedStringForManifests := "[]RawExtension{"
for _, f := range this.Manifests {
repeatedStringForManifests += fmt.Sprintf("%v", f) + ","
repeatedStringForManifest := "[]Manifest{"
for _, f := range this.Manifest {
repeatedStringForManifest += strings.Replace(strings.Replace(f.String(), "Manifest", "Manifest", 1), `&`, ``, 1) + ","
}
repeatedStringForManifests += "}"
repeatedStringForManifest += "}"
s := strings.Join([]string{`&ManifestsTemplate{`,
`Manifests:` + repeatedStringForManifests + `,`,
`Manifest:` + repeatedStringForManifest + `,`,
`}`,
}, "")
return s
@@ -1070,6 +1153,92 @@ func valueToStringGenerated(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
func (m *Manifest) 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: Manifest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: Manifest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RawExtension", 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 err := m.RawExtension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ManifestCondition) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -2048,9 +2217,9 @@ func (m *ManifestsTemplate) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: ManifestsTemplate: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 2:
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Manifests", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Manifest", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -2077,8 +2246,8 @@ func (m *ManifestsTemplate) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Manifests = append(m.Manifests, runtime.RawExtension{})
if err := m.Manifests[len(m.Manifests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
m.Manifest = append(m.Manifest, Manifest{})
if err := m.Manifest[len(m.Manifest)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex

View File

@@ -12,6 +12,13 @@ import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
// Package-wide variables from generator "generated".
option go_package = "v1";
// Manifest represents a resource to be deployed on spoke cluster
message Manifest {
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
optional k8s.io.apimachinery.pkg.runtime.RawExtension rawExtension = 1;
}
// ManifestCondition represents the conditions of the resources deployed on
// spoke cluster
message ManifestCondition {
@@ -122,7 +129,7 @@ message ManifestWorkStatus {
message ManifestsTemplate {
// Manifests represents a list of kuberenetes resources to be deployed on the spoke cluster.
// +optional
repeated k8s.io.apimachinery.pkg.runtime.RawExtension manifests = 2;
repeated Manifest manifests = 1;
}
// StatusCondition contains condition information for a spoke work.

View File

@@ -55,11 +55,18 @@ type ManifestWorkSpec struct {
Workload ManifestsTemplate `json:"workload,omitempty" protobuf:"bytes,1,opt,name=workload"`
}
// Manifest represents a resource to be deployed on spoke cluster
type Manifest struct {
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
runtime.RawExtension `json:",inline" protobuf:"bytes,1,opt,name=rawExtension"`
}
// ManifestsTemplate represents the manifest workload to be deployed on spoke cluster
type ManifestsTemplate struct {
// Manifests represents a list of kuberenetes resources to be deployed on the spoke cluster.
// +optional
Manifests []runtime.RawExtension `json:"manifests,omitempty" protobuf:"bytes,2,rep,name=manifests"`
Manifest []Manifest `json:"manifests,omitempty" protobuf:"bytes,1,rep,name=manifests"`
}
// ManifestResourceMeta represents the gvk, gvr, name and namespace of a resoure

View File

@@ -8,6 +8,23 @@ import (
runtime "k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Manifest) DeepCopyInto(out *Manifest) {
*out = *in
in.RawExtension.DeepCopyInto(&out.RawExtension)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.
func (in *Manifest) DeepCopy() *Manifest {
if in == nil {
return nil
}
out := new(Manifest)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManifestCondition) DeepCopyInto(out *ManifestCondition) {
*out = *in
@@ -176,9 +193,9 @@ func (in *ManifestWorkStatus) DeepCopy() *ManifestWorkStatus {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManifestsTemplate) DeepCopyInto(out *ManifestsTemplate) {
*out = *in
if in.Manifests != nil {
in, out := &in.Manifests, &out.Manifests
*out = make([]runtime.RawExtension, len(*in))
if in.Manifest != nil {
in, out := &in.Manifest, &out.Manifest
*out = make([]Manifest, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}

View File

@@ -11,6 +11,14 @@ package v1
// Those methods can be generated by using hack/update-swagger-docs.sh
// AUTO-GENERATED FUNCTIONS START HERE
var map_Manifest = map[string]string{
"": "Manifest represents a resource to be deployed on spoke cluster",
}
func (Manifest) SwaggerDoc() map[string]string {
return map_Manifest
}
var map_ManifestCondition = map[string]string{
"": "ManifestCondition represents the conditions of the resources deployed on spoke cluster",
"resourceMeta": "ResourceMeta represents the gvk, name and namespace of a resoure",

2
vendor/modules.txt vendored
View File

@@ -86,7 +86,7 @@ github.com/modern-go/concurrent
github.com/modern-go/reflect2
# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
github.com/munnerz/goautoneg
# github.com/open-cluster-management/api v0.0.0-20200417225547-6a7c2bf5fcf0
# github.com/open-cluster-management/api v0.0.0-20200512021938-5f0d5c12ea67
github.com/open-cluster-management/api/client/work/clientset/versioned
github.com/open-cluster-management/api/client/work/clientset/versioned/fake
github.com/open-cluster-management/api/client/work/clientset/versioned/scheme