diff --git a/Makefile b/Makefile index 6dd9c451a00..291df68dce8 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,8 @@ all: build # Ensure update-scripts are run before crd-gen so updates to Godoc are included in CRDs. update-codegen-crds: update-scripts +CONTROLLER_GEN_VERSION :=v0.7.0 + # Include the library makefile include $(addprefix ./vendor/github.com/openshift/build-machinery-go/make/, \ golang.mk \ @@ -16,7 +18,6 @@ GO_BUILD_PACKAGES :=$(GO_PACKAGES) GO_BUILD_PACKAGES_EXPANDED :=$(GO_BUILD_PACKAGES) # LDFLAGS are not needed for dummy builds (saving time on calling git commands) GO_LD_FLAGS:= -CONTROLLER_GEN_VERSION :=v0.7.0 # $1 - target name # $2 - apis @@ -29,6 +30,7 @@ $(call add-crd-gen,helm,./helm/v1beta1,./helm/v1beta1,./helm/v1beta1) $(call add-crd-gen,console,./console/v1,./console/v1,./console/v1) $(call add-crd-gen,console-alpha,./console/v1alpha1,./console/v1alpha1,./console/v1alpha1) $(call add-crd-gen,imageregistry,./imageregistry/v1,./imageregistry/v1,./imageregistry/v1) +$(call add-crd-gen,machineconfiguration,./machineconfiguration/v1,./machineconfiguration/v1,./machineconfiguration/v1) $(call add-crd-gen,operator,./operator/v1,./operator/v1,./operator/v1) $(call add-crd-gen,operator-alpha,./operator/v1alpha1,./operator/v1alpha1,./operator/v1alpha1) $(call add-crd-gen,operatoringress,./operatoringress/v1,./operatoringress/v1,./operatoringress/v1) diff --git a/cloudnetwork/v1/generated.pb.go b/cloudnetwork/v1/generated.pb.go deleted file mode 100644 index d1938bb7836..00000000000 --- a/cloudnetwork/v1/generated.pb.go +++ /dev/null @@ -1,1045 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/cloudnetwork/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *CloudPrivateIPConfig) Reset() { *m = CloudPrivateIPConfig{} } -func (*CloudPrivateIPConfig) ProtoMessage() {} -func (*CloudPrivateIPConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_454253a7ab01c6d0, []int{0} -} -func (m *CloudPrivateIPConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CloudPrivateIPConfig) 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 *CloudPrivateIPConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_CloudPrivateIPConfig.Merge(m, src) -} -func (m *CloudPrivateIPConfig) XXX_Size() int { - return m.Size() -} -func (m *CloudPrivateIPConfig) XXX_DiscardUnknown() { - xxx_messageInfo_CloudPrivateIPConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_CloudPrivateIPConfig proto.InternalMessageInfo - -func (m *CloudPrivateIPConfigList) Reset() { *m = CloudPrivateIPConfigList{} } -func (*CloudPrivateIPConfigList) ProtoMessage() {} -func (*CloudPrivateIPConfigList) Descriptor() ([]byte, []int) { - return fileDescriptor_454253a7ab01c6d0, []int{1} -} -func (m *CloudPrivateIPConfigList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CloudPrivateIPConfigList) 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 *CloudPrivateIPConfigList) XXX_Merge(src proto.Message) { - xxx_messageInfo_CloudPrivateIPConfigList.Merge(m, src) -} -func (m *CloudPrivateIPConfigList) XXX_Size() int { - return m.Size() -} -func (m *CloudPrivateIPConfigList) XXX_DiscardUnknown() { - xxx_messageInfo_CloudPrivateIPConfigList.DiscardUnknown(m) -} - -var xxx_messageInfo_CloudPrivateIPConfigList proto.InternalMessageInfo - -func (m *CloudPrivateIPConfigSpec) Reset() { *m = CloudPrivateIPConfigSpec{} } -func (*CloudPrivateIPConfigSpec) ProtoMessage() {} -func (*CloudPrivateIPConfigSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_454253a7ab01c6d0, []int{2} -} -func (m *CloudPrivateIPConfigSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CloudPrivateIPConfigSpec) 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 *CloudPrivateIPConfigSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_CloudPrivateIPConfigSpec.Merge(m, src) -} -func (m *CloudPrivateIPConfigSpec) XXX_Size() int { - return m.Size() -} -func (m *CloudPrivateIPConfigSpec) XXX_DiscardUnknown() { - xxx_messageInfo_CloudPrivateIPConfigSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_CloudPrivateIPConfigSpec proto.InternalMessageInfo - -func (m *CloudPrivateIPConfigStatus) Reset() { *m = CloudPrivateIPConfigStatus{} } -func (*CloudPrivateIPConfigStatus) ProtoMessage() {} -func (*CloudPrivateIPConfigStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_454253a7ab01c6d0, []int{3} -} -func (m *CloudPrivateIPConfigStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CloudPrivateIPConfigStatus) 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 *CloudPrivateIPConfigStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_CloudPrivateIPConfigStatus.Merge(m, src) -} -func (m *CloudPrivateIPConfigStatus) XXX_Size() int { - return m.Size() -} -func (m *CloudPrivateIPConfigStatus) XXX_DiscardUnknown() { - xxx_messageInfo_CloudPrivateIPConfigStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_CloudPrivateIPConfigStatus proto.InternalMessageInfo - -func init() { - proto.RegisterType((*CloudPrivateIPConfig)(nil), "github.com.openshift.api.cloudnetwork.v1.CloudPrivateIPConfig") - proto.RegisterType((*CloudPrivateIPConfigList)(nil), "github.com.openshift.api.cloudnetwork.v1.CloudPrivateIPConfigList") - proto.RegisterType((*CloudPrivateIPConfigSpec)(nil), "github.com.openshift.api.cloudnetwork.v1.CloudPrivateIPConfigSpec") - proto.RegisterType((*CloudPrivateIPConfigStatus)(nil), "github.com.openshift.api.cloudnetwork.v1.CloudPrivateIPConfigStatus") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/cloudnetwork/v1/generated.proto", fileDescriptor_454253a7ab01c6d0) -} - -var fileDescriptor_454253a7ab01c6d0 = []byte{ - // 482 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x92, 0x3f, 0x6f, 0xd3, 0x40, - 0x18, 0xc6, 0x7d, 0x69, 0x5a, 0x95, 0x2b, 0x20, 0x64, 0x31, 0x58, 0x19, 0xae, 0x51, 0xa6, 0x2c, - 0xdc, 0x91, 0x0a, 0xa1, 0x0e, 0x88, 0xc1, 0x61, 0xa9, 0xc4, 0x9f, 0xca, 0x6c, 0x88, 0x81, 0xcb, - 0xf9, 0xe2, 0x1c, 0xa9, 0xef, 0x2c, 0xdf, 0xd9, 0x88, 0x8d, 0x8f, 0xc0, 0x77, 0xe0, 0xcb, 0x64, - 0x60, 0xe8, 0xd8, 0x85, 0x8a, 0x98, 0x2f, 0x82, 0xee, 0xe2, 0x24, 0x56, 0x9b, 0xaa, 0x91, 0xb2, - 0xf9, 0x7d, 0xed, 0xe7, 0xf9, 0xbd, 0xef, 0xf3, 0x1a, 0x9e, 0x26, 0xc2, 0x4c, 0x8a, 0x11, 0x66, - 0x2a, 0x25, 0x2a, 0xe3, 0x52, 0x4f, 0xc4, 0xd8, 0x10, 0x9a, 0x09, 0xc2, 0x2e, 0x54, 0x11, 0x4b, - 0x6e, 0xbe, 0xa9, 0x7c, 0x4a, 0xca, 0x01, 0x49, 0xb8, 0xe4, 0x39, 0x35, 0x3c, 0xc6, 0x59, 0xae, - 0x8c, 0xf2, 0xfb, 0x6b, 0x25, 0x5e, 0x29, 0x31, 0xcd, 0x04, 0x6e, 0x2a, 0x71, 0x39, 0xe8, 0x3c, - 0x6b, 0x30, 0x12, 0x95, 0x28, 0xe2, 0x0c, 0x46, 0xc5, 0xd8, 0x55, 0xae, 0x70, 0x4f, 0x0b, 0xe3, - 0xce, 0x8b, 0xe9, 0xa9, 0xc6, 0x42, 0xd9, 0x21, 0x52, 0xca, 0x26, 0x42, 0xf2, 0xfc, 0x3b, 0xc9, - 0xa6, 0x89, 0x6d, 0x68, 0x92, 0x72, 0x43, 0x37, 0x8c, 0xd3, 0x21, 0x77, 0xa9, 0xf2, 0x42, 0x1a, - 0x91, 0xf2, 0x5b, 0x82, 0x97, 0xf7, 0x09, 0x34, 0x9b, 0xf0, 0x94, 0xde, 0xd4, 0xf5, 0x7e, 0xb7, - 0xe0, 0xd3, 0xa1, 0xdd, 0xf0, 0x3c, 0x17, 0x25, 0x35, 0xfc, 0xec, 0x7c, 0xa8, 0xe4, 0x58, 0x24, - 0xfe, 0x17, 0x78, 0x68, 0x87, 0x8b, 0xa9, 0xa1, 0x01, 0xe8, 0x82, 0xfe, 0xd1, 0xc9, 0x73, 0xbc, - 0x60, 0xe0, 0x26, 0x03, 0x67, 0xd3, 0xc4, 0x36, 0x34, 0xb6, 0x5f, 0xe3, 0x72, 0x80, 0x3f, 0x8c, - 0xbe, 0x72, 0x66, 0xde, 0x71, 0x43, 0x43, 0x7f, 0x76, 0x7d, 0xec, 0x55, 0xd7, 0xc7, 0x70, 0xdd, - 0x8b, 0x56, 0xae, 0x7e, 0x0c, 0xdb, 0x3a, 0xe3, 0x2c, 0x68, 0x39, 0xf7, 0x10, 0x6f, 0x7b, 0x01, - 0xbc, 0x69, 0xde, 0x8f, 0x19, 0x67, 0xe1, 0xc3, 0x9a, 0xd7, 0xb6, 0x55, 0xe4, 0xdc, 0xfd, 0x0b, - 0x78, 0xa0, 0x0d, 0x35, 0x85, 0x0e, 0xf6, 0x1c, 0xe7, 0xcd, 0x8e, 0x1c, 0xe7, 0x15, 0x3e, 0xae, - 0x49, 0x07, 0x8b, 0x3a, 0xaa, 0x19, 0xbd, 0x3f, 0x00, 0x06, 0x9b, 0x64, 0x6f, 0x85, 0x36, 0xfe, - 0xe7, 0x5b, 0x91, 0xe2, 0xed, 0x22, 0xb5, 0x6a, 0x17, 0xe8, 0x93, 0x1a, 0x7b, 0xb8, 0xec, 0x34, - 0xe2, 0x64, 0x70, 0x5f, 0x18, 0x9e, 0xea, 0xa0, 0xd5, 0xdd, 0xeb, 0x1f, 0x9d, 0xbc, 0xde, 0x6d, - 0xcf, 0xf0, 0x51, 0x8d, 0xda, 0x3f, 0xb3, 0xa6, 0xd1, 0xc2, 0xbb, 0xf7, 0x6a, 0xf3, 0x7a, 0x36, - 0x6f, 0xbf, 0x0b, 0xdb, 0x52, 0xc5, 0xdc, 0xad, 0xf6, 0x60, 0x7d, 0x8b, 0xf7, 0x2a, 0xe6, 0x91, - 0x7b, 0xd3, 0xfb, 0x05, 0x60, 0xe7, 0xee, 0x50, 0xef, 0x37, 0xf0, 0x19, 0x84, 0x4c, 0xc9, 0x58, - 0x18, 0xa1, 0xe4, 0x72, 0x51, 0xb2, 0x5d, 0x86, 0xc3, 0xa5, 0x6e, 0xfd, 0x57, 0xae, 0x5a, 0x3a, - 0x6a, 0xd8, 0x86, 0xfd, 0xd9, 0x1c, 0x79, 0x97, 0x73, 0xe4, 0x5d, 0xcd, 0x91, 0xf7, 0xa3, 0x42, - 0x60, 0x56, 0x21, 0x70, 0x59, 0x21, 0x70, 0x55, 0x21, 0xf0, 0xb7, 0x42, 0xe0, 0xe7, 0x3f, 0xe4, - 0x7d, 0x6a, 0x95, 0x83, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa5, 0xd1, 0x85, 0x90, 0x6f, 0x04, - 0x00, 0x00, -} - -func (m *CloudPrivateIPConfig) 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 *CloudPrivateIPConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CloudPrivateIPConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.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 *CloudPrivateIPConfigList) 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 *CloudPrivateIPConfigList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CloudPrivateIPConfigList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.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 *CloudPrivateIPConfigSpec) 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 *CloudPrivateIPConfigSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CloudPrivateIPConfigSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Node) - copy(dAtA[i:], m.Node) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Node))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CloudPrivateIPConfigStatus) 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 *CloudPrivateIPConfigStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CloudPrivateIPConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Node) - copy(dAtA[i:], m.Node) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Node))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *CloudPrivateIPConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CloudPrivateIPConfigList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *CloudPrivateIPConfigSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Node) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CloudPrivateIPConfigStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Node) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *CloudPrivateIPConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CloudPrivateIPConfig{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "CloudPrivateIPConfigSpec", "CloudPrivateIPConfigSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "CloudPrivateIPConfigStatus", "CloudPrivateIPConfigStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *CloudPrivateIPConfigList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]CloudPrivateIPConfig{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CloudPrivateIPConfig", "CloudPrivateIPConfig", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&CloudPrivateIPConfigList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *CloudPrivateIPConfigSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CloudPrivateIPConfigSpec{`, - `Node:` + fmt.Sprintf("%v", this.Node) + `,`, - `}`, - }, "") - return s -} -func (this *CloudPrivateIPConfigStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]Condition{" - for _, f := range this.Conditions { - repeatedStringForConditions += fmt.Sprintf("%v", f) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&CloudPrivateIPConfigStatus{`, - `Node:` + fmt.Sprintf("%v", this.Node) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *CloudPrivateIPConfig) 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: CloudPrivateIPConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CloudPrivateIPConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", 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.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CloudPrivateIPConfigList) 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: CloudPrivateIPConfigList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CloudPrivateIPConfigList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", 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.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", 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 - } - m.Items = append(m.Items, CloudPrivateIPConfig{}) - if err := m.Items[len(m.Items)-1].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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CloudPrivateIPConfigSpec) 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: CloudPrivateIPConfigSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CloudPrivateIPConfigSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Node", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Node = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 *CloudPrivateIPConfigStatus) 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: CloudPrivateIPConfigStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CloudPrivateIPConfigStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Node", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Node = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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 - } - m.Conditions = append(m.Conditions, v1.Condition{}) - if err := m.Conditions[len(m.Conditions)-1].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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/cloudnetwork/v1/generated.proto b/cloudnetwork/v1/generated.proto deleted file mode 100644 index 7bd4c1e1bb5..00000000000 --- a/cloudnetwork/v1/generated.proto +++ /dev/null @@ -1,83 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = "proto2"; - -package github.com.openshift.api.cloudnetwork.v1; - -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// CloudPrivateIPConfig performs an assignment of a private IP address to the -// primary NIC associated with cloud VMs. This is done by specifying the IP and -// Kubernetes node which the IP should be assigned to. This CRD is intended to -// be used by the network plugin which manages the cluster network. The spec -// side represents the desired state requested by the network plugin, and the -// status side represents the current state that this CRD's controller has -// executed. No users will have permission to modify it, and if a cluster-admin -// decides to edit it for some reason, their changes will be overwritten the -// next time the network plugin reconciles the object. Note: the CR's name -// must specify the requested private IP address (can be IPv4 or IPv6). -// -// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +k8s:openapi-gen=true -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:resource:path=cloudprivateipconfigs,scope=Cluster -// +openshift:compatibility-gen:level=1 -message CloudPrivateIPConfig { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec is the definition of the desired private IP request. - // +kubebuilder:validation:Required - // +required - optional CloudPrivateIPConfigSpec spec = 2; - - // status is the observed status of the desired private IP request. Read-only. - // +kubebuilder:validation:Optional - // +optional - optional CloudPrivateIPConfigStatus status = 3; -} - -// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +resource:path=cloudprivateipconfig -// CloudPrivateIPConfigList is the list of CloudPrivateIPConfigList. -// +openshift:compatibility-gen:level=1 -message CloudPrivateIPConfigList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of CloudPrivateIPConfig. - repeated CloudPrivateIPConfig items = 2; -} - -// CloudPrivateIPConfigSpec consists of a node name which the private IP should be assigned to. -// +k8s:openapi-gen=true -message CloudPrivateIPConfigSpec { - // node is the node name, as specified by the Kubernetes field: node.metadata.name - // +kubebuilder:validation:Optional - // +optional - optional string node = 1; -} - -// CloudPrivateIPConfigStatus specifies the node assignment together with its assignment condition. -// +k8s:openapi-gen=true -message CloudPrivateIPConfigStatus { - // node is the node name, as specified by the Kubernetes field: node.metadata.name - // +kubebuilder:validation:Optional - // +optional - optional string node = 1; - - // condition is the assignment condition of the private IP and its status - // +kubebuilder:validation:Required - // +required - repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 2; -} - diff --git a/hack/lib/init.sh b/hack/lib/init.sh index 43d4bc7ea30..9b85d9d0844 100644 --- a/hack/lib/init.sh +++ b/hack/lib/init.sh @@ -21,6 +21,7 @@ image/v1 \ imageregistry/v1 \ kubecontrolplane/v1 \ legacyconfig/v1 \ +machineconfiguration/v1 \ cloudnetwork/v1 \ network/v1 \ networkoperator/v1 \ @@ -47,14 +48,11 @@ github.com/openshift/api/apps/v1,\ github.com/openshift/api/authorization/v1,\ github.com/openshift/api/build/v1,\ github.com/openshift/api/image/v1,\ -github.com/openshift/api/cloudnetwork/v1,\ github.com/openshift/api/network/v1,\ -github.com/openshift/api/networkoperator/v1,\ github.com/openshift/api/oauth/v1,\ github.com/openshift/api/project/v1,\ github.com/openshift/api/quota/v1,\ github.com/openshift/api/route/v1,\ -github.com/openshift/api/samples/v1,\ github.com/openshift/api/security/v1,\ github.com/openshift/api/template/v1,\ github.com/openshift/api/user/v1\ diff --git a/hack/update-deepcopy.sh b/hack/update-deepcopy.sh index 115dddc7c6a..c69e6698656 100755 --- a/hack/update-deepcopy.sh +++ b/hack/update-deepcopy.sh @@ -10,7 +10,7 @@ verify="${VERIFY:-}" GOFLAGS="" bash ${CODEGEN_PKG}/generate-groups.sh "deepcopy" \ github.com/openshift/api/generated \ github.com/openshift/api \ - "apiserver:v1 apps:v1 authorization:v1 build:v1 config:v1 helm:v1beta1 console:v1 console:v1alpha1 image:v1,docker10,dockerpre012 imageregistry:v1 kubecontrolplane:v1 legacyconfig:v1 cloudnetwork:v1 network:v1 networkoperator:v1 oauth:v1 openshiftcontrolplane:v1 operator:v1 operator:v1alpha1 operatorcontrolplane:v1alpha1 operatoringress:v1 osin:v1 project:v1 quota:v1 route:v1 samples:v1 security:v1 securityinternal:v1 servicecertsigner:v1alpha1 sharedresource:v1alpha1 template:v1 user:v1 machine:v1beta1" \ + "apiserver:v1 apps:v1 authorization:v1 build:v1 config:v1 helm:v1beta1 console:v1 console:v1alpha1 image:v1,docker10,dockerpre012 imageregistry:v1 kubecontrolplane:v1 legacyconfig:v1 machineconfiguration:v1 cloudnetwork:v1 network:v1 networkoperator:v1 oauth:v1 openshiftcontrolplane:v1 operator:v1 operator:v1alpha1 operatorcontrolplane:v1alpha1 operatoringress:v1 osin:v1 project:v1 quota:v1 route:v1 samples:v1 security:v1 securityinternal:v1 servicecertsigner:v1alpha1 sharedresource:v1alpha1 template:v1 user:v1 machine:v1beta1" \ --go-header-file ${SCRIPT_ROOT}/hack/empty.txt \ ${verify} diff --git a/install.go b/install.go index c85029dc012..f998c56fa68 100644 --- a/install.go +++ b/install.go @@ -43,6 +43,7 @@ import ( "github.com/openshift/api/imageregistry" "github.com/openshift/api/kubecontrolplane" "github.com/openshift/api/machine" + "github.com/openshift/api/machineconfiguration" "github.com/openshift/api/network" "github.com/openshift/api/networkoperator" "github.com/openshift/api/oauth" @@ -75,6 +76,7 @@ var ( image.Install, imageregistry.Install, kubecontrolplane.Install, + machineconfiguration.Install, cloudnetwork.Install, network.Install, networkoperator.Install, diff --git a/machineconfiguration/OWNERS b/machineconfiguration/OWNERS new file mode 100644 index 00000000000..20d3ba271eb --- /dev/null +++ b/machineconfiguration/OWNERS @@ -0,0 +1,4 @@ +reviewers: + - kikisdeliveryservice + - sinnykumari + - yuqi-zhang diff --git a/machineconfiguration/install.go b/machineconfiguration/install.go new file mode 100644 index 00000000000..1ecdafb16f3 --- /dev/null +++ b/machineconfiguration/install.go @@ -0,0 +1,25 @@ +package machineconfiguration + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + + machineconfigurationv1 "github.com/openshift/api/machineconfiguration/v1" +) + +// GroupName defines the API group for machineconfiguration. +const GroupName = "machineconfiguration.openshift.io" + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(machineconfigurationv1.Install) + // Install is a function which adds every version of this group to a scheme + Install = SchemeBuilder.AddToScheme +) + +func Resource(resource string) schema.GroupResource { + return schema.GroupResource{Group: GroupName, Resource: resource} +} + +func Kind(kind string) schema.GroupKind { + return schema.GroupKind{Group: GroupName, Kind: kind} +} diff --git a/machineconfiguration/install_test.go b/machineconfiguration/install_test.go new file mode 100644 index 00000000000..756080cbee3 --- /dev/null +++ b/machineconfiguration/install_test.go @@ -0,0 +1,11 @@ +package machineconfiguration + +import ( + "testing" +) + +func TestGroupName(t *testing.T) { + if got, want := GroupName, "machineconfiguration.openshift.io"; got != want { + t.Fatalf("mismatch group name, got: %s want: %s", got, want) + } +} diff --git a/machineconfiguration/v1/0000_10_containerruntimeconfig.crd.yaml b/machineconfiguration/v1/0000_10_containerruntimeconfig.crd.yaml new file mode 100644 index 00000000000..f1005d2ca0e --- /dev/null +++ b/machineconfiguration/v1/0000_10_containerruntimeconfig.crd.yaml @@ -0,0 +1,127 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: containerruntimeconfigs.machineconfiguration.openshift.io + labels: + "openshift.io/operator-managed": "" + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1060 + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" +spec: + group: machineconfiguration.openshift.io + names: + kind: ContainerRuntimeConfig + listKind: ContainerRuntimeConfigList + plural: containerruntimeconfigs + singular: containerruntimeconfig + shortNames: + - ctrcfg + scope: Cluster + versions: + - name: v1 + served: true + storage: true + subresources: + status: {} + schema: + openAPIV3Schema: + description: ContainerRuntimeConfig describes a customized Container Runtime configuration. + type: object + required: + - spec + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ContainerRuntimeConfigSpec defines the desired state of ContainerRuntimeConfig + type: object + required: + - containerRuntimeConfig + properties: + containerRuntimeConfig: + description: ContainerRuntimeConfiguration defines the tuneables of the container runtime. It's important to note that, since the fields of the ContainerRuntimeConfiguration are directly read by the upstream kubernetes golang client, the validation of those values is handled directly by that golang client which is outside of the controller for ContainerRuntimeConfiguration. Please ensure the valid values are used for those fields as invalid values may render cluster nodes unusable. + type: object + properties: + logLevel: + description: logLevel specifies the verbosity of the logs based on the level it is set to. Options are fatal, panic, error, warn, info, and debug. + type: string + logSizeMax: + description: logSizeMax specifies the Maximum size allowed for the container log file. Negative numbers indicate that no size limit is imposed. If it is positive, it must be >= 8192 to match/exceed conmon's read buffer. + type: string + overlaySize: + description: 'overlaySize specifies the maximum size of a container image. This flag can be used to set quota on the size of container images. (default: 10GB)' + type: string + pidsLimit: + description: pidsLimit specifies the maximum number of processes allowed in a container + type: integer + format: int64 + machineConfigPoolSelector: + description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. + type: object + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + type: array + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + type: object + required: + - key + - operator + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + type: array + items: + type: string + matchLabels: + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + additionalProperties: + type: string + status: + description: ContainerRuntimeConfigStatus defines the observed state of a ContainerRuntimeConfig + type: object + properties: + conditions: + description: conditions represents the latest available observations of current state. + type: array + items: + description: ContainerRuntimeConfigCondition defines the state of the ContainerRuntimeConfig + type: object + properties: + lastTransitionTime: + description: lastTransitionTime is the time of the last update to the current status object. + type: string + format: date-time + nullable: true + message: + description: message provides additional information about the current condition. This is only to be consumed by humans. + type: string + reason: + description: reason is the reason for the condition's last transition. Reasons are PascalCase + type: string + status: + description: status of the condition, one of True, False, Unknown. + type: string + type: + description: type specifies the state of the operator's reconciliation functionality. + type: string + observedGeneration: + description: observedGeneration represents the generation observed by the controller. + type: integer + format: int64 diff --git a/machineconfiguration/v1/0000_10_controllerconfig.crd.yaml b/machineconfiguration/v1/0000_10_controllerconfig.crd.yaml new file mode 100644 index 00000000000..362e638d7ec --- /dev/null +++ b/machineconfiguration/v1/0000_10_controllerconfig.crd.yaml @@ -0,0 +1,651 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + # name must match the spec fields below, and be in the form: . + name: controllerconfigs.machineconfiguration.openshift.io + labels: + "openshift.io/operator-managed": "" + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1060 +spec: + # group name to use for REST API: /apis// + group: machineconfiguration.openshift.io + # either Namespaced or Cluster + scope: Cluster + names: + # plural name to be used in the URL: /apis/// + plural: controllerconfigs + # singular name to be used as an alias on the CLI and for display + singular: controllerconfig + # kind is normally the PascalCased singular type. Your resource manifests use this. + kind: ControllerConfig + # list of versions supported by this CustomResourceDefinition + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + subresources: + status: {} + schema: + openAPIV3Schema: + description: ControllerConfig describes configuration for MachineConfigController. This is currently only used to drive the MachineConfig objects generated by the TemplateController. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ControllerConfigSpec is the spec for ControllerConfig resource. + properties: + additionalTrustBundle: + description: additionalTrustBundle is a certificate bundle that will be added to the nodes trusted certificate store. + format: byte + nullable: true + type: string + cloudProviderCAData: + description: cloudProvider specifies the cloud provider CA data + format: byte + nullable: true + type: string + cloudProviderConfig: + description: cloudProviderConfig is the configuration for the given cloud provider + type: string + clusterDNSIP: + description: clusterDNSIP is the cluster DNS IP address + type: string + dns: + description: dns holds the cluster dns details + nullable: true + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: spec holds user settable values for configuration + properties: + baseDomain: + description: "baseDomain is the base domain of the cluster. All managed DNS records will be sub-domains of this base. \n For example, given the base domain `openshift.example.com`, an API server DNS record may be created for `cluster-api.openshift.example.com`. \n Once set, this field cannot be changed." + type: string + privateZone: + description: "privateZone is the location where all the DNS records that are only available internally to the cluster exist. \n If this field is nil, no private records should be created. \n Once set, this field cannot be changed." + properties: + id: + description: "id is the identifier that can be used to find the DNS hosted zone. \n on AWS zone can be fetched using `ID` as id in [1] on Azure zone can be fetched using `ID` as a pre-determined name in [2], on GCP zone can be fetched using `ID` as a pre-determined name in [3]. \n [1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get" + type: string + tags: + additionalProperties: + type: string + description: "tags can be used to query the DNS hosted zone. \n on AWS, resourcegroupstaggingapi [1] can be used to fetch a zone using `Tags` as tag-filters, \n [1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options" + type: object + type: object + publicZone: + description: "publicZone is the location where all the DNS records that are publicly accessible to the internet exist. \n If this field is nil, no public records should be created. \n Once set, this field cannot be changed." + properties: + id: + description: "id is the identifier that can be used to find the DNS hosted zone. \n on AWS zone can be fetched using `ID` as id in [1] on Azure zone can be fetched using `ID` as a pre-determined name in [2], on GCP zone can be fetched using `ID` as a pre-determined name in [3]. \n [1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get" + type: string + tags: + additionalProperties: + type: string + description: "tags can be used to query the DNS hosted zone. \n on AWS, resourcegroupstaggingapi [1] can be used to fetch a zone using `Tags` as tag-filters, \n [1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options" + type: object + type: object + type: object + status: + description: status holds observed values from the cluster. They may not be overridden. + type: object + required: + - spec + type: object + etcdDiscoveryDomain: + description: etcdDiscoveryDomain is deprecated, use Infra.Status.EtcdDiscoveryDomain instead + type: string + images: + additionalProperties: + type: string + description: images is map of images that are used by the controller to render templates under ./templates/ + type: object + infra: + description: infra holds the infrastructure details + nullable: true + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: spec holds user settable values for configuration + properties: + cloudConfig: + description: "cloudConfig is a reference to a ConfigMap containing the cloud provider configuration file. This configuration file is used to configure the Kubernetes cloud provider integration when using the built-in cloud provider integration or the external cloud controller manager. The namespace for this config map is openshift-config. \n cloudConfig should only be consumed by the kube_cloud_config controller. The controller is responsible for using the user configuration in the spec for various platforms and combining that with the user provided ConfigMap in this field to create a stitched kube cloud config. The controller generates a ConfigMap `kube-cloud-config` in `openshift-config-managed` namespace with the kube cloud config is stored in `cloud.conf` key. All the clients are expected to use the generated ConfigMap only." + properties: + key: + description: Key allows pointing to a specific key/value inside of the configmap. This is useful for logical file references. + type: string + name: + type: string + type: object + platformSpec: + description: platformSpec holds desired information specific to the underlying infrastructure provider. + properties: + alibabaCloud: + description: AlibabaCloud contains settings specific to the AlibabaCloud infrastructure provider. + type: object + aws: + description: AWS contains settings specific to the Amazon Web Services infrastructure provider. + properties: + serviceEndpoints: + description: serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service. + items: + description: AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services. + properties: + name: + description: name is the name of the AWS service. The list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html This must be provided and cannot be empty. + pattern: ^[a-z0-9-]+$ + type: string + url: + description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty. + pattern: ^https:// + type: string + type: object + type: array + type: object + azure: + description: Azure contains settings specific to the Azure infrastructure provider. + type: object + baremetal: + description: BareMetal contains settings specific to the BareMetal platform. + type: object + equinixMetal: + description: EquinixMetal contains settings specific to the Equinix Metal infrastructure provider. + type: object + gcp: + description: GCP contains settings specific to the Google Cloud Platform infrastructure provider. + type: object + ibmcloud: + description: IBMCloud contains settings specific to the IBMCloud infrastructure provider. + type: object + kubevirt: + description: Kubevirt contains settings specific to the kubevirt infrastructure provider. + type: object + openstack: + description: OpenStack contains settings specific to the OpenStack infrastructure provider. + type: object + ovirt: + description: Ovirt contains settings specific to the oVirt infrastructure provider. + type: object + powervs: + description: PowerVS contains settings specific to the IBM Power Systems Virtual Servers infrastructure provider. + type: object + type: + description: type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are "AlibabaCloud", "AWS", "Azure", "BareMetal", "GCP", "Libvirt", "OpenStack", "VSphere", "oVirt", "KubeVirt", "EquinixMetal", "PowerVS" and "None". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform. + enum: + - "" + - AlibabaCloud + - AWS + - Azure + - BareMetal + - GCP + - Libvirt + - OpenStack + - None + - VSphere + - oVirt + - IBMCloud + - KubeVirt + - EquinixMetal + - PowerVS + type: string + vsphere: + description: VSphere contains settings specific to the VSphere infrastructure provider. + type: object + type: object + type: object + status: + description: status holds observed values from the cluster. They may not be overridden. + properties: + apiServerInternalURI: + description: apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking. + type: string + apiServerURL: + description: apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API. + type: string + controlPlaneTopology: + default: HighlyAvailable + description: controlPlaneTopology expresses the expectations for operands that normally run on control nodes. The default is 'HighlyAvailable', which represents the behavior operators have in a "normal" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation The 'External' mode indicates that the control plane is hosted externally to the cluster and that its components are not visible within the cluster. + enum: + - HighlyAvailable + - SingleReplica + - External + type: string + etcdDiscoveryDomain: + description: 'etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery deprecated: as of 4.7, this field is no longer set or honored. It will be removed in a future release.' + type: string + infrastructureName: + description: infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters. + type: string + infrastructureTopology: + default: HighlyAvailable + description: infrastructureTopology expresses the expectations for infrastructure services that do not run on control plane nodes, usually indicated by a node selector for a `role` value other than `master`. The default is 'HighlyAvailable', which represents the behavior operators have in a "normal" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation + enum: + - HighlyAvailable + - SingleReplica + - External + type: string + platform: + description: "platform is the underlying infrastructure provider for the cluster. \n Deprecated: Use platformStatus.type instead." + enum: + - "" + - AlibabaCloud + - AWS + - Azure + - BareMetal + - GCP + - Libvirt + - OpenStack + - None + - VSphere + - oVirt + - IBMCloud + - KubeVirt + - EquinixMetal + - PowerVS + type: string + platformStatus: + description: platformStatus holds status information specific to the underlying infrastructure provider. + properties: + alibabaCloud: + description: AlibabaCloud contains settings specific to the Alibaba Cloud infrastructure provider. + type: object + required: + - region + - resourceGroupID + properties: + region: + description: region specifies the region for Alibaba Cloud resources created for the cluster. + type: string + pattern: ^[0-9A-Za-z-]+$ + resourceGroupID: + description: resourceGroupID is the ID of the resource group for the cluster. + type: string + pattern: ^rg-[0-9A-Za-z]+$ + resourceTags: + description: resourceTags is a list of additional tags to apply to Alibaba Cloud resources created for the cluster. + type: array + maxItems: 20 + items: + description: AlibabaCloudResourceTag is the set of tags to add to apply to resources. + type: object + required: + - key + - value + properties: + key: + description: key is the key of the tag. + type: string + maxLength: 128 + minLength: 1 + value: + description: value is the value of the tag. + type: string + maxLength: 128 + minLength: 1 + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + aws: + description: AWS contains settings specific to the Amazon Web Services infrastructure provider. + properties: + region: + description: region holds the default AWS region for new AWS resources created by the cluster. + type: string + resourceTags: + description: resourceTags is a list of additional tags to apply to AWS resources created for the cluster. See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags available for the user. + items: + description: AWSResourceTag is a tag to apply to AWS resources created for the cluster. + properties: + key: + description: key is the key of the tag + maxLength: 128 + minLength: 1 + pattern: ^[0-9A-Za-z_.:/=+-@]+$ + type: string + value: + description: value is the value of the tag. Some AWS service do not support empty values. Since tags are added to resources in many services, the length of the tag value must meet the requirements of all services. + maxLength: 256 + minLength: 1 + pattern: ^[0-9A-Za-z_.:/=+-@]+$ + type: string + required: + - key + - value + type: object + maxItems: 25 + type: array + serviceEndpoints: + description: ServiceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service. + items: + description: AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services. + properties: + name: + description: name is the name of the AWS service. The list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html This must be provided and cannot be empty. + pattern: ^[a-z0-9-]+$ + type: string + url: + description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty. + pattern: ^https:// + type: string + type: object + type: array + type: object + azure: + description: Azure contains settings specific to the Azure infrastructure provider. + properties: + armEndpoint: + description: armEndpoint specifies a URL to use for resource management in non-soverign clouds such as Azure Stack. + type: string + cloudName: + description: cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK with the appropriate Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`. + enum: + - "" + - AzurePublicCloud + - AzureUSGovernmentCloud + - AzureChinaCloud + - AzureGermanCloud + - AzureStackCloud + type: string + networkResourceGroupName: + description: networkResourceGroupName is the Resource Group for network resources like the Virtual Network and Subnets used by the cluster. If empty, the value is same as ResourceGroupName. + type: string + resourceGroupName: + description: resourceGroupName is the Resource Group for new Azure resources created for the cluster. + type: string + type: object + baremetal: + description: BareMetal contains settings specific to the BareMetal platform. + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + type: string + nodeDNSIP: + description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. + type: string + type: object + equinixMetal: + description: EquinixMetal contains settings specific to the Equinix Metal infrastructure provider. + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + type: string + type: object + gcp: + description: GCP contains settings specific to the Google Cloud Platform infrastructure provider. + properties: + projectID: + description: resourceGroupName is the Project ID for new GCP resources created for the cluster. + type: string + region: + description: region holds the region for new GCP resources created for the cluster. + type: string + type: object + ibmcloud: + description: IBMCloud contains settings specific to the IBMCloud infrastructure provider. + properties: + cisInstanceCRN: + description: CISInstanceCRN is the CRN of the Cloud Internet Services instance managing the DNS zone for the cluster's base domain + type: string + location: + description: Location is where the cluster has been deployed + type: string + providerType: + description: ProviderType indicates the type of cluster that was created + type: string + resourceGroupName: + description: ResourceGroupName is the Resource Group for new IBMCloud resources created for the cluster. + type: string + type: object + kubevirt: + description: Kubevirt contains settings specific to the kubevirt infrastructure provider. + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + type: string + type: object + openstack: + description: OpenStack contains settings specific to the OpenStack infrastructure provider. + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. + type: string + cloudName: + description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). + type: string + ingressIP: + description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + type: string + nodeDNSIP: + description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for OpenStack deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. + type: string + type: object + ovirt: + description: Ovirt contains settings specific to the oVirt infrastructure provider. + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + type: string + nodeDNSIP: + description: 'deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.' + type: string + type: object + powervs: + description: PowerVS contains settings specific to the Power Systems Virtual Servers infrastructure provider. + properties: + cisInstanceCRN: + description: CISInstanceCRN is the CRN of the Cloud Internet Services instance managing the DNS zone for the cluster's base domain + type: string + region: + description: region holds the default Power VS region for new Power VS resources created by the cluster. + type: string + serviceEndpoints: + description: serviceEndpoints is a list of custom endpoints which will override the default service endpoints of a Power VS service. + items: + description: PowervsServiceEndpoint stores the configuration of a custom url to override existing defaults of PowerVS Services. + properties: + name: + description: name is the name of the Power VS service. + pattern: ^[a-z0-9-]+$ + type: string + url: + description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty. + format: uri + pattern: ^https:// + type: string + required: + - name + - url + type: object + type: array + zone: + description: 'zone holds the default zone for the new Power VS resources created by the cluster. Note: Currently only single-zone OCP clusters are supported' + type: string + type: object + type: + description: "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AlibabaCloud\", \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", \"EquinixMetal\", \"PowerVS\" and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform. \n This value will be synced with to the `status.platform` and `status.platformStatus.type`. Currently this value cannot be changed once set." + enum: + - "" + - AlibabaCloud + - AWS + - Azure + - BareMetal + - GCP + - Libvirt + - OpenStack + - None + - VSphere + - oVirt + - IBMCloud + - KubeVirt + - EquinixMetal + - PowerVS + type: string + vsphere: + description: VSphere contains settings specific to the VSphere infrastructure provider. + properties: + apiServerInternalIP: + description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. + type: string + ingressIP: + description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. + type: string + nodeDNSIP: + description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. + type: string + type: object + type: object + type: object + required: + - spec + type: object + ipFamilies: + description: ipFamilies indicates the IP families in use by the cluster network + type: string + kubeAPIServerServingCAData: + description: kubeAPIServerServingCAData managed Kubelet to API Server Cert... Rotated automatically + format: byte + type: string + networkType: + description: 'networkType holds the type of network the cluster is using XXX: this is temporary and will be dropped as soon as possible in favor of a better support to start network related services the proper way. Nobody is also changing this once the cluster is up and running the first time, so, disallow regeneration if this changes.' + type: string + osImageURL: + description: osImageURL is the location of the container image that contains the OS update payload. Its value is taken from the data.osImageURL field on the machine-config-osimageurl ConfigMap. + type: string + platform: + description: platform is deprecated, use Infra.Status.PlatformStatus.Type instead + type: string + proxy: + description: proxy holds the current proxy configuration for the nodes + nullable: true + properties: + httpProxy: + description: httpProxy is the URL of the proxy for HTTP requests. + type: string + httpsProxy: + description: httpsProxy is the URL of the proxy for HTTPS requests. + type: string + noProxy: + description: noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. + type: string + type: object + pullSecret: + description: pullSecret is the default pull secret that needs to be installed on all machines. + 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 + 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 + type: object + releaseImage: + description: releaseImage is the image used when installing the cluster + type: string + rootCAData: + description: rootCAData specifies the root CA data + format: byte + type: string + required: + - additionalTrustBundle + - cloudProviderCAData + - cloudProviderConfig + - clusterDNSIP + - dns + - images + - infra + - ipFamilies + - kubeAPIServerServingCAData + - osImageURL + - proxy + - releaseImage + - rootCAData + type: object + status: + description: ControllerConfigStatus is the status for ControllerConfig + properties: + conditions: + description: conditions represents the latest available observations of current state. + items: + description: ControllerConfigStatusCondition contains condition information for ControllerConfigStatus + properties: + lastTransitionTime: + description: lastTransitionTime is the time of the last update to the current status object. + format: date-time + nullable: true + type: string + message: + description: message provides additional information about the current condition. This is only to be consumed by humans. + type: string + reason: + description: reason is the reason for the condition's last transition. Reasons are PascalCase + type: string + status: + description: status of the condition, one of True, False, Unknown. + type: string + type: + description: type specifies the state of the operator's reconciliation functionality. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + observedGeneration: + description: observedGeneration represents the generation observed by the controller. + format: int64 + type: integer + type: object + required: + - spec + type: object diff --git a/machineconfiguration/v1/0000_10_kubeletconfig.crd.yaml b/machineconfiguration/v1/0000_10_kubeletconfig.crd.yaml new file mode 100644 index 00000000000..c1cde1683c3 --- /dev/null +++ b/machineconfiguration/v1/0000_10_kubeletconfig.crd.yaml @@ -0,0 +1,161 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: kubeletconfigs.machineconfiguration.openshift.io + labels: + "openshift.io/operator-managed": "" + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1060 + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" +spec: + group: machineconfiguration.openshift.io + names: + kind: KubeletConfig + listKind: KubeletConfigList + plural: kubeletconfigs + singular: kubeletconfig + scope: Cluster + versions: + - name: v1 + served: true + storage: true + subresources: + status: {} + schema: + openAPIV3Schema: + description: KubeletConfig describes a customized Kubelet configuration. + type: object + required: + - spec + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: KubeletConfigSpec defines the desired state of KubeletConfig + type: object + properties: + autoSizingReserved: + description: Automatically set optimal system reserved + type: boolean + tlsSecurityProfile: + description: "tlsSecurityProfile specifies settings for TLS connections for ingresscontrollers. \n If unset, the default is based on the apiservers.config.openshift.io/cluster resource. \n Note that when using the Old, Intermediate, and Modern profile types, the effective profile configuration is subject to change between releases. For example, given a specification to use the Intermediate profile deployed on release X.Y.Z, an upgrade to release X.Y.Z+1 may cause a new profile configuration to be applied to the ingress controller, resulting in a rollout. \n Note that the minimum TLS version for ingress controllers is 1.1, and the maximum TLS version is 1.2. An implication of this restriction is that the Modern TLS profile type cannot be used because it requires TLS 1.3." + properties: + custom: + description: "custom is a user-defined TLS security profile. Be extremely careful using a custom profile as invalid configurations can be catastrophic. An example custom profile looks like this: \n ciphers: - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion: TLSv1.1" + nullable: true + properties: + ciphers: + description: "ciphers is used to specify the cipher algorithms that are negotiated during the TLS handshake. Operators may remove entries their operands do not support. For example, to use DES-CBC3-SHA (yaml): \n ciphers: - DES-CBC3-SHA" + items: + type: string + type: array + minTLSVersion: + description: "minTLSVersion is used to specify the minimal version of the TLS protocol that is negotiated during the TLS handshake. For example, to use TLS versions 1.1, 1.2 and 1.3 (yaml): \n minTLSVersion: TLSv1.1 \n NOTE: currently the highest minTLSVersion allowed is VersionTLS12" + enum: + - VersionTLS10 + - VersionTLS11 + - VersionTLS12 + - VersionTLS13 + type: string + type: object + intermediate: + description: "intermediate is a TLS security profile based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29 \n and looks like this (yaml): \n ciphers: - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 minTLSVersion: TLSv1.2" + nullable: true + type: object + modern: + description: "modern is a TLS security profile based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility \n and looks like this (yaml): \n ciphers: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 minTLSVersion: TLSv1.3 \n NOTE: Currently unsupported." + nullable: true + type: object + old: + description: "old is a TLS security profile based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility \n and looks like this (yaml): \n ciphers: - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - TLS_RSA_WITH_AES_128_GCM_SHA256 - TLS_RSA_WITH_AES_256_GCM_SHA384 - TLS_RSA_WITH_AES_128_CBC_SHA256 - TLS_RSA_WITH_AES_128_CBC_SHA - TLS_RSA_WITH_AES_256_CBC_SHA - TLS_RSA_WITH_3DES_EDE_CBC_SHA minTLSVersion: TLSv1.0" + nullable: true + type: object + type: + description: "type is one of Old, Intermediate, Modern or Custom. Custom provides the ability to specify individual TLS security profile parameters. Old, Intermediate and Modern are TLS security profiles based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations \n The profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers are found to be insecure. Depending on precisely which ciphers are available to a process, the list may be reduced. \n Note that the Modern profile is currently not supported because it is not yet well adopted by common software libraries." + enum: + - Old + - Intermediate + - Modern + - Custom + type: string + type: object + logLevel: + description: logLevel defines the log level of the Kubelet + type: integer + format: int64 + minimum: 1 + maximum: 10 + kubeletConfig: + description: The fields of the kubelet configuration are defined in kubernetes upstream. Please refer to the types defined in the version/commit used by OpenShift of the upstream kubernetes. It's important to note that, since the fields of the kubelet configuration are directly fetched from upstream the validation of those values is handled directly by the kubelet. Please refer to the upstream version of the relavent kubernetes for the valid values of these fields. Invalid values of the kubelet configuration fields may render cluster nodes unusable. + type: object + x-kubernetes-preserve-unknown-fields: true + machineConfigPoolSelector: + description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. + type: object + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + type: array + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + type: object + required: + - key + - operator + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + type: array + items: + type: string + matchLabels: + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + additionalProperties: + type: string + status: + description: KubeletConfigStatus defines the observed state of a KubeletConfig + type: object + properties: + conditions: + description: conditions represents the latest available observations of current state. + type: array + items: + description: KubeletConfigCondition defines the state of the KubeletConfig + type: object + properties: + lastTransitionTime: + description: lastTransitionTime is the time of the last update to the current status object. + type: string + format: date-time + nullable: true + message: + description: message provides additional information about the current condition. This is only to be consumed by humans. + type: string + reason: + description: reason is the reason for the condition's last transition. Reasons are PascalCase + type: string + status: + description: status of the condition, one of True, False, Unknown. + type: string + type: + description: type specifies the state of the operator's reconciliation functionality. + type: string + observedGeneration: + description: observedGeneration represents the generation observed by the controller. + type: integer + format: int64 diff --git a/machineconfiguration/v1/0000_10_machineconfig.crd.yaml b/machineconfiguration/v1/0000_10_machineconfig.crd.yaml new file mode 100644 index 00000000000..b04b9321583 --- /dev/null +++ b/machineconfiguration/v1/0000_10_machineconfig.crd.yaml @@ -0,0 +1,303 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + # name must match the spec fields below, and be in the form: . + name: machineconfigs.machineconfiguration.openshift.io + labels: + "openshift.io/operator-managed": "" + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1060 + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" +spec: + # group name to use for REST API: /apis// + group: machineconfiguration.openshift.io + # either Namespaced or Cluster + scope: Cluster + names: + # plural name to be used in the URL: /apis/// + plural: machineconfigs + # singular name to be used as an alias on the CLI and for display + singular: machineconfig + # kind is normally the PascalCased singular type. Your resource manifests use this. + kind: MachineConfig + # shortNames allow shorter string to match your resource on the CLI + shortNames: + - mc + # list of versions supported by this CustomResourceDefinition + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + additionalPrinterColumns: + - jsonPath: .metadata.annotations.machineconfiguration\.openshift\.io/generated-by-controller-version + description: Version of the controller that generated the machineconfig. This will be empty if the machineconfig is not managed by a controller. + name: GeneratedByController + type: string + - jsonPath: .spec.config.ignition.version + description: Version of the Ignition Config defined in the machineconfig. + name: IgnitionVersion + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + # openAPIV3Schema has been hand modified. Do not overwrite directly with generated crd fields as we do not allow all config fields. + schema: + openAPIV3Schema: + description: MachineConfig defines the configuration for a machine + type: object + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: MachineConfigSpec is the spec for MachineConfig + type: object + properties: + config: + description: Config is a Ignition Config object. + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - ignition + properties: + ignition: + description: Ignition section contains metadata about the configuration itself. We only permit a subsection of ignition fields for MachineConfigs. + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + config: + type: object + properties: + append: + type: array + items: + type: object + properties: + source: + type: string + verification: + type: object + properties: + hash: + type: string + replace: + type: object + properties: + source: + type: string + verification: + type: object + properties: + hash: + type: string + security: + type: object + properties: + tls: + type: object + properties: + certificateAuthorities: + type: array + items: + type: object + properties: + source: + type: string + verification: + type: object + properties: + hash: + type: string + timeouts: + type: object + properties: + httpResponseHeaders: + type: integer + httpTotal: + type: integer + version: + description: Version string is the semantic version number of the spec + type: string + passwd: + type: object + properties: + users: + type: array + items: + type: object + properties: + name: + description: Name of user. Must be \"core\" user. + type: string + sshAuthorizedKeys: + description: Public keys to be assigned to user core. + type: array + items: + type: string + storage: + description: Storage describes the desired state of the system's storage devices. + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + directories: + description: Directories is the list of directories to be created + type: array + items: + description: Items is list of directories to be written + type: object + properties: + filesystem: + description: Filesystem is the internal identifier of the filesystem in which to write the file. This matches the last filesystem with the given identifier. + type: string + group: + description: Group object specifies group of the owner + type: object + properties: + id: + description: ID is the user ID of the owner + type: integer + name: + description: Name is the user name of the owner + type: string + mode: + description: Mode is the file's permission mode. Note that the mode must be properly specified as a decimal value (i.e. 0644 -> 420) + type: integer + overwrite: + description: Overwrite specifies whether to delete preexisting nodes at the path + type: boolean + path: + description: Path is the absolute path to the file + type: string + user: + description: User object specifies the file's owner + type: object + properties: + id: + description: ID is the user ID of the owner + type: integer + name: + description: Name is the user name of the owner + type: string + files: + description: Files is the list of files to be created/modified + type: array + items: + description: Items is list of files to be written + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + contents: + description: Contents specifies options related to the contents of the file + type: object + properties: + compression: + description: The type of compression used on the contents (null or gzip). Compression cannot be used with S3. + type: string + source: + description: Source is the URL of the file contents. Supported schemes are http, https, tftp, s3, and data. When using http, it is advisable to use the verification option to ensure the contents haven't been modified. + type: string + verification: + description: Verification specifies options related to the verification of the file contents + type: object + properties: + hash: + description: Hash is the hash of the config, in the form - where type is sha512 + type: string + filesystem: + description: Filesystem is the internal identifier of the filesystem in which to write the file. This matches the last filesystem with the given identifier + type: string + group: + description: Group object specifies group of the owner + type: object + properties: + id: + description: ID specifies group ID of the owner + type: integer + name: + description: Name is the group name of the owner + type: string + mode: + description: Mode specifies the file's permission mode. Note that the mode must be properly specified as a decimal value (i.e. 0644 -> 420) + type: integer + overwrite: + description: Overwrite specifies whether to delete preexisting nodes at the path + type: boolean + path: + description: Path is the absolute path to the file + type: string + user: + description: User object specifies the file's owner + type: object + properties: + id: + description: ID is the user ID of the owner + type: integer + name: + description: Name is the user name of the owner + type: string + systemd: + description: systemd describes the desired state of the systemd units + type: object + properties: + units: + description: Units is a list of units to be configured + type: array + items: + description: Items describes unit configuration + type: object + properties: + contents: + description: Contents is the contents of the unit + type: string + dropins: + description: Dropins is the list of drop-ins for the unit + type: array + items: + description: Items describes unit dropin + type: object + properties: + contents: + description: Contents is the contents of the drop-in + type: string + name: + description: Name is the name of the drop-in. This must be suffixed with '.conf' + type: string + enabled: + description: Enabled describes whether or not the service shall be enabled. When true, the service is enabled. When false, the service is disabled. When omitted, the service is unmodified. In order for this to have any effect, the unit must have an install section + type: boolean + mask: + description: Mask describes whether or not the service shall be masked. When true, the service is masked by symlinking it to /dev/null" + type: boolean + name: + description: Name is the name of the unit. This must be suffixed with a valid unit type (e.g. 'thing.service') + type: string + extensions: + description: List of additional features that can be enabled on host + type: array + items: + type: string + nullable: true + fips: + description: FIPS controls FIPS mode + type: boolean + kernelArguments: + description: KernelArguments contains a list of kernel arguments to be added + type: array + items: + type: string + nullable: true + kernelType: + description: Contains which kernel we want to be running like default (traditional), realtime + type: string + osImageURL: + description: OSImageURL specifies the remote location that will be used to fetch the OS to fetch the OS. + type: string diff --git a/machineconfiguration/v1/0000_10_machineconfigpool.crd.yaml b/machineconfiguration/v1/0000_10_machineconfigpool.crd.yaml new file mode 100644 index 00000000000..73bba8c5b3f --- /dev/null +++ b/machineconfiguration/v1/0000_10_machineconfigpool.crd.yaml @@ -0,0 +1,315 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + # name must match the spec fields below, and be in the form: . + name: machineconfigpools.machineconfiguration.openshift.io + labels: + "openshift.io/operator-managed": "" + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/1060 + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" +spec: + # group name to use for REST API: /apis// + group: machineconfiguration.openshift.io + # either Namespaced or Cluster + scope: Cluster + names: + # plural name to be used in the URL: /apis/// + plural: machineconfigpools + # singular name to be used as an alias on the CLI and for display + singular: machineconfigpool + # kind is normally the PascalCased singular type. Your resource manifests use this. + kind: MachineConfigPool + # shortNames allow shorter string to match your resource on the CLI + shortNames: + - mcp + # list of versions supported by this CustomResourceDefinition + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + subresources: + status: {} + additionalPrinterColumns: + - jsonPath: .status.configuration.name + name: Config + type: string + - jsonPath: .status.conditions[?(@.type=="Updated")].status + description: When all the machines in the pool are updated to the correct machine config. + name: Updated + type: string + - jsonPath: .status.conditions[?(@.type=="Updating")].status + description: When at least one of machine is not either not updated or is in the process of updating to the desired machine config. + name: Updating + type: string + - jsonPath: .status.conditions[?(@.type=="Degraded")].status + description: When progress is blocked on updating one or more nodes, or the pool configuration is failing. + name: Degraded + type: string + - jsonPath: .status.machineCount + description: Total number of machines in the machine config pool + name: MachineCount + type: number + - jsonPath: .status.readyMachineCount + description: Total number of ready machines targeted by the pool + name: ReadyMachineCount + type: number + - jsonPath: .status.updatedMachineCount + description: Total number of machines targeted by the pool that have the CurrentMachineConfig as their config + name: UpdatedMachineCount + type: number + - jsonPath: .status.degradedMachineCount + description: Total number of machines marked degraded (or unreconcilable) + name: DegradedMachineCount + type: number + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + schema: + openAPIV3Schema: + description: MachineConfigPool describes a pool of MachineConfigs. + type: object + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: MachineConfigPoolSpec is the spec for MachineConfigPool resource. + type: object + properties: + configuration: + description: The targeted MachineConfig object for the machine config pool. + type: object + 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 + 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 + source: + description: source is the list of MachineConfig objects that were used to generate the single MachineConfig object specified in `content`. + type: array + items: + description: ObjectReference contains enough information to let you inspect or modify the referred object. + type: object + 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 + 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 + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + machineConfigSelector: + description: machineConfigSelector specifies a label selector for MachineConfigs. Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work. + type: object + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + type: array + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + type: object + required: + - key + - operator + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + type: array + items: + type: string + matchLabels: + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + additionalProperties: + type: string + maxUnavailable: + description: maxUnavailable defines either an integer number or percentage of nodes in the corresponding pool that can go Unavailable during an update. This includes nodes Unavailable for any reason, including user initiated cordons, failing nodes, etc. The default value is 1. A value larger than 1 will mean multiple nodes going unavailable during the update, which may affect your workload stress on the remaining nodes. You cannot set this value to 0 to stop updates (it will default back to 1); to stop updates, use the 'paused' property instead. Drain will respect Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if maxUnavailable is greater than one. + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + nodeSelector: + description: nodeSelector specifies a label selector for Machines + type: object + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + type: array + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + type: object + required: + - key + - operator + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + type: array + items: + type: string + matchLabels: + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + additionalProperties: + type: string + paused: + description: paused specifies whether or not changes to this machine config pool should be stopped. This includes generating new desiredMachineConfig and update of machines. + type: boolean + status: + description: MachineConfigPoolStatus is the status for MachineConfigPool resource. + type: object + properties: + conditions: + description: conditions represents the latest available observations of current state. + type: array + items: + description: MachineConfigPoolCondition contains condition information for an MachineConfigPool. + type: object + properties: + lastTransitionTime: + description: lastTransitionTime is the timestamp corresponding to the last status change of this condition. + type: string + format: date-time + nullable: true + message: + description: message is a human readable description of the details of the last transition, complementing reason. + type: string + reason: + description: reason is a brief machine readable explanation for the condition's last transition. + type: string + status: + description: status of the condition, one of ('True', 'False', 'Unknown'). + type: string + type: + description: type of the condition, currently ('Done', 'Updating', 'Failed'). + type: string + configuration: + description: configuration represents the current MachineConfig object for the machine config pool. + type: object + 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 + 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 + source: + description: source is the list of MachineConfig objects that were used to generate the single MachineConfig object specified in `content`. + type: array + items: + description: ObjectReference contains enough information to let you inspect or modify the referred object. + type: object + 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 + 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 + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + degradedMachineCount: + description: degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). A node is marked degraded if applying a configuration failed.. + type: integer + format: int32 + machineCount: + description: machineCount represents the total number of machines in the machine config pool. + type: integer + format: int32 + observedGeneration: + description: observedGeneration represents the generation observed by the controller. + type: integer + format: int64 + readyMachineCount: + description: readyMachineCount represents the total number of ready machines targeted by the pool. + type: integer + format: int32 + unavailableMachineCount: + description: unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. A node is marked unavailable if it is in updating state or NodeReady condition is false. + type: integer + format: int32 + updatedMachineCount: + description: updatedMachineCount represents the total number of machines targeted by the pool that have the CurrentMachineConfig as their config. + type: integer + format: int32 diff --git a/machineconfiguration/v1/doc.go b/machineconfiguration/v1/doc.go new file mode 100644 index 00000000000..59b9eaacdc5 --- /dev/null +++ b/machineconfiguration/v1/doc.go @@ -0,0 +1,5 @@ +// +k8s:deepcopy-gen=package,register +// +groupName=nmachineconfiguration.openshift.io + +// Package v1 is the v1 version of the API. +package v1 diff --git a/machineconfiguration/v1/register.go b/machineconfiguration/v1/register.go new file mode 100644 index 00000000000..bbafc28dea3 --- /dev/null +++ b/machineconfiguration/v1/register.go @@ -0,0 +1,52 @@ +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var ( + // GroupName is the group name of this api + GroupName = "machineconfiguration.openshift.io" + // GroupVersion is the version of this api group + GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + // Install is a function which adds this version to a scheme + Install = schemeBuilder.AddToScheme + + // SchemeGroupVersion is DEPRECATED + SchemeGroupVersion = GroupVersion + // AddToScheme is DEPRECATED + AddToScheme = Install +) + +// addKnownTypes adds types to API group +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, + &ContainerRuntimeConfig{}, + &ContainerRuntimeConfigList{}, + &ControllerConfig{}, + &ControllerConfigList{}, + &KubeletConfig{}, + &KubeletConfigList{}, + &MachineConfig{}, + &MachineConfigList{}, + &MachineConfigPool{}, + &MachineConfigPoolList{}, + ) + + metav1.AddToGroupVersion(scheme, GroupVersion) + + return nil +} + +// Resource is used to validate existence of a resource in this API group +func Resource(resource string) schema.GroupResource { + return schema.GroupResource{Group: GroupName, Resource: resource} +} + +// Kind is used to validate existence of a resource kind in this API group +func Kind(kind string) schema.GroupKind { + return schema.GroupKind{Group: GroupName, Kind: kind} +} diff --git a/machineconfiguration/v1/types.go b/machineconfiguration/v1/types.go new file mode 100644 index 00000000000..46560a94370 --- /dev/null +++ b/machineconfiguration/v1/types.go @@ -0,0 +1,558 @@ +package v1 + +import ( + configv1 "github.com/openshift/api/config/v1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" +) + +// MachineConfigRoleLabelKey is metadata key in the MachineConfig. Specifies the node role that config should be applied to. +// For example: `master` or `worker` +const MachineConfigRoleLabelKey = "machineconfiguration.openshift.io/role" + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ControllerConfig describes configuration for MachineConfigController. +// This is currently only used to drive the MachineConfig objects generated by the TemplateController. +// +// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +// +openshift:compatibility-gen:level=4 +// +openshift:compatibility-gen:internal +type ControllerConfig struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // +required + Spec ControllerConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + // +optional + Status ControllerConfigStatus `json:"status" protobuf:"bytes,3,opt,name=status"` +} + +// ControllerConfigSpec is the spec for ControllerConfig resource. +type ControllerConfigSpec struct { + // clusterDNSIP is the cluster DNS IP address + ClusterDNSIP string `json:"clusterDNSIP" protobuf:"bytes,1,opt,name=clusterDNSIP"` + + // cloudProviderConfig is the configuration for the given cloud provider + CloudProviderConfig string `json:"cloudProviderConfig" protobuf:"bytes,2,opt,name=cloudProviderConfig"` + + // platform is deprecated, use Infra.Status.PlatformStatus.Type instead + Platform string `json:"platform,omitempty" protobuf:"bytes,3,opt,name=platform"` + + // etcdDiscoveryDomain is deprecated, use Infra.Status.EtcdDiscoveryDomain instead + EtcdDiscoveryDomain string `json:"etcdDiscoveryDomain,omitempty" protobuf:"bytes,4,opt,name=etcdDiscoveryDomain"` + + // TODO: Use string for CA data + + // kubeAPIServerServingCAData managed Kubelet to API Server Cert... Rotated automatically + KubeAPIServerServingCAData []byte `json:"kubeAPIServerServingCAData" protobuf:"bytes,5,opt,name=kubeAPIServerServingCAData"` + + // rootCAData specifies the root CA data + RootCAData []byte `json:"rootCAData" protobuf:"bytes,6,opt,name=rootCAData"` + + // cloudProvider specifies the cloud provider CA data + // +nullable + CloudProviderCAData []byte `json:"cloudProviderCAData" protobuf:"bytes,7,opt,name=cloudProviderCAData"` + + // additionalTrustBundle is a certificate bundle that will be added to the nodes + // trusted certificate store. + // +nullable + AdditionalTrustBundle []byte `json:"additionalTrustBundle" protobuf:"bytes,8,opt,name=additionalTrustBundle"` + + // TODO: Investigate using a ConfigMapNameReference for the PullSecret and OSImageURL + + // pullSecret is the default pull secret that needs to be installed + // on all machines. + PullSecret *corev1.ObjectReference `json:"pullSecret,omitempty" protobuf:"bytes,9,opt,name=pullSecret"` + + // images is map of images that are used by the controller to render templates under ./templates/ + Images map[string]string `json:"images" protobuf:"bytes,10,rep,name=images"` + + // osImageURL is the location of the container image that contains the OS update payload. + // Its value is taken from the data.osImageURL field on the machine-config-osimageurl ConfigMap. + OSImageURL string `json:"osImageURL" protobuf:"bytes,11,opt,name=osImageURL"` + + // releaseImage is the image used when installing the cluster + ReleaseImage string `json:"releaseImage" protobuf:"bytes,12,opt,name=releaseImage"` + + // proxy holds the current proxy configuration for the nodes + // +nullable + Proxy *configv1.ProxyStatus `json:"proxy" protobuf:"bytes,13,opt,name=proxy"` + + // infra holds the infrastructure details + // +nullable + Infra *configv1.Infrastructure `json:"infra" protobuf:"bytes,14,opt,name=infra"` + + // dns holds the cluster dns details + // +nullable + DNS *configv1.DNS `json:"dns" protobuf:"bytes,15,opt,name=dns"` + + // ipFamilies indicates the IP families in use by the cluster network + IPFamilies IPFamiliesType `json:"ipFamilies" protobuf:"bytes,16,opt,name=ipFamilies,casttype=IPFamiliesType"` + + // networkType holds the type of network the cluster is using + // XXX: this is temporary and will be dropped as soon as possible in favor of a better support + // to start network related services the proper way. + // Nobody is also changing this once the cluster is up and running the first time, so, disallow + // regeneration if this changes. + NetworkType string `json:"networkType,omitempty" protobuf:"bytes,17,opt,name=networkType"` +} + +// IPFamiliesType indicates whether the cluster network is IPv4-only, IPv6-only, or dual-stack +type IPFamiliesType string + +const ( + IPFamiliesIPv4 IPFamiliesType = "IPv4" + IPFamiliesIPv6 IPFamiliesType = "IPv6" + IPFamiliesDualStack IPFamiliesType = "DualStack" +) + +// ControllerConfigStatus is the status for ControllerConfig +type ControllerConfigStatus struct { + // observedGeneration represents the generation observed by the controller. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // conditions represents the latest available observations of current state. + // +optional + Conditions []ControllerConfigStatusCondition `json:"conditions" protobuf:"bytes,2,rep,name=conditions"` +} + +// ControllerConfigStatusCondition contains condition information for ControllerConfigStatus +type ControllerConfigStatusCondition struct { + // type specifies the state of the operator's reconciliation functionality. + Type ControllerConfigStatusConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ControllerConfigStatusConditionType"` + + // status of the condition, one of True, False, Unknown. + Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + + // lastTransitionTime is the time of the last update to the current status object. + // +nullable + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` + + // reason is the reason for the condition's last transition. Reasons are PascalCase + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + + // message provides additional information about the current condition. + // This is only to be consumed by humans. + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// ControllerConfigStatusConditionType valid conditions of a ControllerConfigStatus +type ControllerConfigStatusConditionType string + +const ( + // TemplateControllerRunning means the template controller is currently running. + TemplateControllerRunning ControllerConfigStatusConditionType = "TemplateControllerRunning" + + // TemplateControllerCompleted means the template controller has completed reconciliation. + TemplateControllerCompleted ControllerConfigStatusConditionType = "TemplateControllerCompleted" + + // TemplateControllerFailing means the template controller is failing. + TemplateControllerFailing ControllerConfigStatusConditionType = "TemplateControllerFailing" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ControllerConfigList is a list of ControllerConfig resources +// +// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +// +openshift:compatibility-gen:level=4 +// +openshift:compatibility-gen:internal +type ControllerConfigList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + + Items []ControllerConfig `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +genclient:noStatus +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineConfig defines the configuration for a machine +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type MachineConfig struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + Spec MachineConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` +} + +// MachineConfigSpec is the spec for MachineConfig +type MachineConfigSpec struct { + // OSImageURL specifies the remote location that will be used to + // fetch the OS. + OSImageURL string `json:"osImageURL" protobuf:"bytes,1,opt,name=osImageURL"` + // Config is a Ignition Config object. + Config runtime.RawExtension `json:"config" protobuf:"bytes,2,opt,name=config"` + + // kernelArguments contains a list of kernel arguments to be added + // +nullable + KernelArguments []string `json:"kernelArguments" protobuf:"bytes,3,rep,name=kernelArguments"` + // extensions contains a list of additional features that can be enabled on host + Extensions []string `json:"extensions" protobuf:"bytes,4,rep,name=extensions"` + + // fips controls FIPS mode + FIPS bool `json:"fips" protobuf:"varint,5,opt,name=fips"` + // kernelType contains which kernel we want to be running like default + // (traditional), realtime. + KernelType string `json:"kernelType" protobuf:"bytes,6,opt,name=kernelType"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineConfigList is a list of MachineConfig resources +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type MachineConfigList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + + Items []MachineConfig `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineConfigPool describes a pool of MachineConfigs. +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type MachineConfigPool struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // +required + Spec MachineConfigPoolSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + // +optional + Status MachineConfigPoolStatus `json:"status" protobuf:"bytes,3,opt,name=status"` +} + +// MachineConfigPoolSpec is the spec for MachineConfigPool resource. +type MachineConfigPoolSpec struct { + // machineConfigSelector specifies a label selector for MachineConfigs. + // Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work. + MachineConfigSelector *metav1.LabelSelector `json:"machineConfigSelector,omitempty" protobuf:"bytes,1,opt,name=machineConfigSelector"` + + // nodeSelector specifies a label selector for Machines + NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty" protobuf:"bytes,2,opt,name=nodeSelector"` + + // paused specifies whether or not changes to this machine config pool should be stopped. + // This includes generating new desiredMachineConfig and update of machines. + Paused bool `json:"paused" protobuf:"varint,3,opt,name=paused"` + + // maxUnavailable defines either an integer number or percentage + // of nodes in the pool that can go Unavailable during an update. + // This includes nodes Unavailable for any reason, including user + // initiated cordons, failing nodes, etc. The default value is 1. + // + // A value larger than 1 will mean multiple nodes going unavailable during + // the update, which may affect your workload stress on the remaining nodes. + // You cannot set this value to 0 to stop updates (it will default back to 1); + // to stop updates, use the 'paused' property instead. Drain will respect + // Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if + // maxUnavailable is greater than one. + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,4,opt,name=maxUnavailable"` + + // The targeted MachineConfig object for the machine config pool. + Configuration MachineConfigPoolStatusConfiguration `json:"configuration" protobuf:"bytes,5,opt,name=configuration"` +} + +// MachineConfigPoolStatus is the status for MachineConfigPool resource. +type MachineConfigPoolStatus struct { + // observedGeneration represents the generation observed by the controller. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // configuration represents the current MachineConfig object for the machine config pool. + Configuration MachineConfigPoolStatusConfiguration `json:"configuration" protobuf:"bytes,2,opt,name=configuration"` + + // machineCount represents the total number of machines in the machine config pool. + MachineCount int32 `json:"machineCount" protobuf:"varint,3,opt,name=machineCount"` + + // updatedMachineCount represents the total number of machines targeted by the pool that have the CurrentMachineConfig as their config. + UpdatedMachineCount int32 `json:"updatedMachineCount" protobuf:"varint,4,opt,name=updatedMachineCount"` + + // readyMachineCount represents the total number of ready machines targeted by the pool. + ReadyMachineCount int32 `json:"readyMachineCount" protobuf:"varint,5,opt,name=readyMachineCount"` + + // unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. + // A node is marked unavailable if it is in updating state or NodeReady condition is false. + UnavailableMachineCount int32 `json:"unavailableMachineCount" protobuf:"varint,6,opt,name=unavailableMachineCount"` + + // degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). + // A node is marked degraded if applying a configuration failed.. + DegradedMachineCount int32 `json:"degradedMachineCount" protobuf:"varint,7,opt,name=degradedMachineCount"` + + // conditions represents the latest available observations of current state. + // +optional + Conditions []MachineConfigPoolCondition `json:"conditions" protobuf:"bytes,8,rep,name=conditions"` +} + +// MachineConfigPoolStatusConfiguration stores the current configuration for the pool, and +// optionally also stores the list of MachineConfig objects used to generate the configuration. +type MachineConfigPoolStatusConfiguration struct { + corev1.ObjectReference `json:",inline" protobuf:"bytes,1,opt,name=objectReference"` + + // source is the list of MachineConfig objects that were used to generate the single MachineConfig object specified in `content`. + // +optional + Source []corev1.ObjectReference `json:"source,omitempty" protobuf:"bytes,2,rep,name=source"` +} + +// MachineConfigPoolCondition contains condition information for an MachineConfigPool. +type MachineConfigPoolCondition struct { + // type of the condition, currently ('Done', 'Updating', 'Failed'). + Type MachineConfigPoolConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=MachineConfigPoolConditionType"` + + // status of the condition, one of ('True', 'False', 'Unknown'). + Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + + // lastTransitionTime is the timestamp corresponding to the last status + // change of this condition. + // +nullable + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` + + // reason is a brief machine readable explanation for the condition's last + // transition. + Reason string `json:"reason" protobuf:"bytes,4,opt,name=reason"` + + // message is a human readable description of the details of the last + // transition, complementing reason. + Message string `json:"message" protobuf:"bytes,5,opt,name=message"` +} + +// MachineConfigPoolConditionType valid conditions of a MachineConfigPool +type MachineConfigPoolConditionType string + +const ( + // MachineConfigPoolUpdated means MachineConfigPool is updated completely. + // When the all the machines in the pool are updated to the correct machine config. + MachineConfigPoolUpdated MachineConfigPoolConditionType = "Updated" + + // MachineConfigPoolUpdating means MachineConfigPool is updating. + // When at least one of machine is not either not updated or is in the process of updating + // to the desired machine config. + MachineConfigPoolUpdating MachineConfigPoolConditionType = "Updating" + + // MachineConfigPoolNodeDegraded means the update for one of the machine is not progressing + MachineConfigPoolNodeDegraded MachineConfigPoolConditionType = "NodeDegraded" + + // MachineConfigPoolRenderDegraded means the rendered configuration for the pool cannot be generated because of an error + MachineConfigPoolRenderDegraded MachineConfigPoolConditionType = "RenderDegraded" + + // MachineConfigPoolDegraded is the overall status of the pool based, today, on whether we fail with NodeDegraded or RenderDegraded + MachineConfigPoolDegraded MachineConfigPoolConditionType = "Degraded" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineConfigPoolList is a list of MachineConfigPool resources +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type MachineConfigPoolList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + + Items []MachineConfigPool `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// KubeletConfig describes a customized Kubelet configuration. +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type KubeletConfig struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // +required + Spec KubeletConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + // +optional + Status KubeletConfigStatus `json:"status" protobuf:"bytes,3,opt,name=status"` +} + +// KubeletConfigSpec defines the desired state of KubeletConfig +type KubeletConfigSpec struct { + AutoSizingReserved *bool `json:"autoSizingReserved,omitempty" protobuf:"varint,1,opt,name=autoSizingReserved"` + LogLevel *int32 `json:"logLevel,omitempty" protobuf:"varint,2,opt,name=logLevel"` + MachineConfigPoolSelector *metav1.LabelSelector `json:"machineConfigPoolSelector,omitempty" protobuf:"bytes,3,opt,name=machineConfigPoolSelector"` + // kubeletConfig fields are defined in kubernetes upstream. Please refer to the types defined in the version/commit used by + // OpenShift of the upstream kubernetes. It's important to note that, since the fields of the kubelet configuration are directly fetched from + // upstream the validation of those values is handled directly by the kubelet. Please refer to the upstream version of the relevant kubernetes + // for the valid values of these fields. Invalid values of the kubelet configuration fields may render cluster nodes unusable. + KubeletConfig *runtime.RawExtension `json:"kubeletConfig,omitempty" protobuf:"bytes,4,opt,name=kubeletConfig"` + + // If unset, the default is based on the apiservers.config.openshift.io/cluster resource. + // Note that only Old and Intermediate profiles are currently supported, and + // the maximum available MinTLSVersions is VersionTLS12. + // +optional + TLSSecurityProfile *configv1.TLSSecurityProfile `json:"tlsSecurityProfile,omitempty" protobuf:"bytes,5,opt,name=tlsSecurityProfile"` +} + +// KubeletConfigStatus defines the observed state of a KubeletConfig +type KubeletConfigStatus struct { + // observedGeneration represents the generation observed by the controller. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // conditions represents the latest available observations of current state. + // +optional + Conditions []KubeletConfigCondition `json:"conditions" protobuf:"bytes,2,rep,name=conditions"` +} + +// KubeletConfigCondition defines the state of the KubeletConfig +type KubeletConfigCondition struct { + // type specifies the state of the operator's reconciliation functionality. + Type KubeletConfigStatusConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=KubeletConfigStatusConditionType"` + + // status of the condition, one of True, False, Unknown. + Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + + // lastTransitionTime is the time of the last update to the current status object. + // +nullable + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` + + // reason is the reason for the condition's last transition. Reasons are PascalCase + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + + // message provides additional information about the current condition. + // This is only to be consumed by humans. + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// KubeletConfigStatusConditionType is the state of the operator's reconciliation functionality. +type KubeletConfigStatusConditionType string + +const ( + // KubeletConfigSuccess designates a successful application of a KubeletConfig CR. + KubeletConfigSuccess KubeletConfigStatusConditionType = "Success" + + // KubeletConfigFailure designates a failure applying a KubeletConfig CR. + KubeletConfigFailure KubeletConfigStatusConditionType = "Failure" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// KubeletConfigList is a list of KubeletConfig resources +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type KubeletConfigList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + + Items []KubeletConfig `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ContainerRuntimeConfig describes a customized Container Runtime configuration. +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type ContainerRuntimeConfig struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // +required + Spec ContainerRuntimeConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + // +optional + Status ContainerRuntimeConfigStatus `json:"status" protobuf:"bytes,3,opt,name=status"` +} + +// ContainerRuntimeConfigSpec defines the desired state of ContainerRuntimeConfig +type ContainerRuntimeConfigSpec struct { + MachineConfigPoolSelector *metav1.LabelSelector `json:"machineConfigPoolSelector,omitempty" protobuf:"bytes,1,opt,name=machineConfigPoolSelector"` + ContainerRuntimeConfig *ContainerRuntimeConfiguration `json:"containerRuntimeConfig,omitempty" protobuf:"bytes,2,opt,name=containerRuntimeConfig"` +} + +// ContainerRuntimeConfiguration defines the tuneables of the container runtime +type ContainerRuntimeConfiguration struct { + // pidsLimit specifies the maximum number of processes allowed in a container + PidsLimit *int64 `json:"pidsLimit,omitempty" protobuf:"varint,1,opt,name=pidsLimit"` + + // logLevel specifies the verbosity of the logs based on the level it is set to. + // Options are fatal, panic, error, warn, info, and debug. + LogLevel string `json:"logLevel,omitempty" protobuf:"bytes,2,opt,name=logLevel"` + + // logSizeMax specifies the Maximum size allowed for the container log file. + // Negative numbers indicate that no size limit is imposed. + // If it is positive, it must be >= 8192 to match/exceed conmon's read buffer. + LogSizeMax resource.Quantity `json:"logSizeMax,omitempty" protobuf:"bytes,3,opt,name=logSizeMax"` + + // overlaySize specifies the maximum size of a container image. + // This flag can be used to set quota on the size of container images. (default: 10GB) + OverlaySize resource.Quantity `json:"overlaySize,omitempty" protobuf:"bytes,4,opt,name=overlaySize"` +} + +// ContainerRuntimeConfigStatus defines the observed state of a ContainerRuntimeConfig +type ContainerRuntimeConfigStatus struct { + // observedGeneration represents the generation observed by the controller. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // conditions represents the latest available observations of current state. + // +optional + Conditions []ContainerRuntimeConfigCondition `json:"conditions" protobuf:"bytes,2,rep,name=conditions"` +} + +// ContainerRuntimeConfigCondition defines the state of the ContainerRuntimeConfig +type ContainerRuntimeConfigCondition struct { + // type specifies the state of the operator's reconciliation functionality. + Type ContainerRuntimeConfigStatusConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ContainerRuntimeConfigStatusConditionType"` + + // status of the condition, one of True, False, Unknown. + Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + + // lastTransitionTime is the time of the last update to the current status object. + // +nullable + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` + + // reason is the reason for the condition's last transition. Reasons are PascalCase + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + + // message provides additional information about the current condition. + // This is only to be consumed by humans. + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// ContainerRuntimeConfigStatusConditionType is the state of the operator's reconciliation functionality. +type ContainerRuntimeConfigStatusConditionType string + +const ( + // ContainerRuntimeConfigSuccess designates a successful application of a ContainerRuntimeConfig CR. + ContainerRuntimeConfigSuccess ContainerRuntimeConfigStatusConditionType = "Success" + + // ContainerRuntimeConfigFailure designates a failure applying a ContainerRuntimeConfig CR. + ContainerRuntimeConfigFailure ContainerRuntimeConfigStatusConditionType = "Failure" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ContainerRuntimeConfigList is a list of ContainerRuntimeConfig resources +// +// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +// +openshift:compatibility-gen:level=1 +type ContainerRuntimeConfigList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + + Items []ContainerRuntimeConfig `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/machineconfiguration/v1/zz_generated.deepcopy.go b/machineconfiguration/v1/zz_generated.deepcopy.go new file mode 100644 index 00000000000..4fe2fea6f1e --- /dev/null +++ b/machineconfiguration/v1/zz_generated.deepcopy.go @@ -0,0 +1,712 @@ +// +build !ignore_autogenerated + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1 + +import ( + configv1 "github.com/openshift/api/config/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerRuntimeConfig) DeepCopyInto(out *ContainerRuntimeConfig) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfig. +func (in *ContainerRuntimeConfig) DeepCopy() *ContainerRuntimeConfig { + if in == nil { + return nil + } + out := new(ContainerRuntimeConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ContainerRuntimeConfig) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerRuntimeConfigCondition) DeepCopyInto(out *ContainerRuntimeConfigCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigCondition. +func (in *ContainerRuntimeConfigCondition) DeepCopy() *ContainerRuntimeConfigCondition { + if in == nil { + return nil + } + out := new(ContainerRuntimeConfigCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerRuntimeConfigList) DeepCopyInto(out *ContainerRuntimeConfigList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ContainerRuntimeConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigList. +func (in *ContainerRuntimeConfigList) DeepCopy() *ContainerRuntimeConfigList { + if in == nil { + return nil + } + out := new(ContainerRuntimeConfigList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ContainerRuntimeConfigList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerRuntimeConfigSpec) DeepCopyInto(out *ContainerRuntimeConfigSpec) { + *out = *in + if in.MachineConfigPoolSelector != nil { + in, out := &in.MachineConfigPoolSelector, &out.MachineConfigPoolSelector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.ContainerRuntimeConfig != nil { + in, out := &in.ContainerRuntimeConfig, &out.ContainerRuntimeConfig + *out = new(ContainerRuntimeConfiguration) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigSpec. +func (in *ContainerRuntimeConfigSpec) DeepCopy() *ContainerRuntimeConfigSpec { + if in == nil { + return nil + } + out := new(ContainerRuntimeConfigSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerRuntimeConfigStatus) DeepCopyInto(out *ContainerRuntimeConfigStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ContainerRuntimeConfigCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigStatus. +func (in *ContainerRuntimeConfigStatus) DeepCopy() *ContainerRuntimeConfigStatus { + if in == nil { + return nil + } + out := new(ContainerRuntimeConfigStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerRuntimeConfiguration) DeepCopyInto(out *ContainerRuntimeConfiguration) { + *out = *in + if in.PidsLimit != nil { + in, out := &in.PidsLimit, &out.PidsLimit + *out = new(int64) + **out = **in + } + out.LogSizeMax = in.LogSizeMax.DeepCopy() + out.OverlaySize = in.OverlaySize.DeepCopy() + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfiguration. +func (in *ContainerRuntimeConfiguration) DeepCopy() *ContainerRuntimeConfiguration { + if in == nil { + return nil + } + out := new(ContainerRuntimeConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfig. +func (in *ControllerConfig) DeepCopy() *ControllerConfig { + if in == nil { + return nil + } + out := new(ControllerConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ControllerConfig) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfigList) DeepCopyInto(out *ControllerConfigList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ControllerConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigList. +func (in *ControllerConfigList) DeepCopy() *ControllerConfigList { + if in == nil { + return nil + } + out := new(ControllerConfigList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ControllerConfigList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfigSpec) DeepCopyInto(out *ControllerConfigSpec) { + *out = *in + if in.KubeAPIServerServingCAData != nil { + in, out := &in.KubeAPIServerServingCAData, &out.KubeAPIServerServingCAData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + if in.RootCAData != nil { + in, out := &in.RootCAData, &out.RootCAData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + if in.CloudProviderCAData != nil { + in, out := &in.CloudProviderCAData, &out.CloudProviderCAData + *out = make([]byte, len(*in)) + copy(*out, *in) + } + if in.AdditionalTrustBundle != nil { + in, out := &in.AdditionalTrustBundle, &out.AdditionalTrustBundle + *out = make([]byte, len(*in)) + copy(*out, *in) + } + if in.PullSecret != nil { + in, out := &in.PullSecret, &out.PullSecret + *out = new(corev1.ObjectReference) + **out = **in + } + if in.Images != nil { + in, out := &in.Images, &out.Images + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Proxy != nil { + in, out := &in.Proxy, &out.Proxy + *out = new(configv1.ProxyStatus) + **out = **in + } + if in.Infra != nil { + in, out := &in.Infra, &out.Infra + *out = new(configv1.Infrastructure) + (*in).DeepCopyInto(*out) + } + if in.DNS != nil { + in, out := &in.DNS, &out.DNS + *out = new(configv1.DNS) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigSpec. +func (in *ControllerConfigSpec) DeepCopy() *ControllerConfigSpec { + if in == nil { + return nil + } + out := new(ControllerConfigSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfigStatus) DeepCopyInto(out *ControllerConfigStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ControllerConfigStatusCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigStatus. +func (in *ControllerConfigStatus) DeepCopy() *ControllerConfigStatus { + if in == nil { + return nil + } + out := new(ControllerConfigStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfigStatusCondition) DeepCopyInto(out *ControllerConfigStatusCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigStatusCondition. +func (in *ControllerConfigStatusCondition) DeepCopy() *ControllerConfigStatusCondition { + if in == nil { + return nil + } + out := new(ControllerConfigStatusCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig. +func (in *KubeletConfig) DeepCopy() *KubeletConfig { + if in == nil { + return nil + } + out := new(KubeletConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KubeletConfig) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfigCondition) DeepCopyInto(out *KubeletConfigCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigCondition. +func (in *KubeletConfigCondition) DeepCopy() *KubeletConfigCondition { + if in == nil { + return nil + } + out := new(KubeletConfigCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfigList) DeepCopyInto(out *KubeletConfigList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]KubeletConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigList. +func (in *KubeletConfigList) DeepCopy() *KubeletConfigList { + if in == nil { + return nil + } + out := new(KubeletConfigList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KubeletConfigList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec) { + *out = *in + if in.AutoSizingReserved != nil { + in, out := &in.AutoSizingReserved, &out.AutoSizingReserved + *out = new(bool) + **out = **in + } + if in.LogLevel != nil { + in, out := &in.LogLevel, &out.LogLevel + *out = new(int32) + **out = **in + } + if in.MachineConfigPoolSelector != nil { + in, out := &in.MachineConfigPoolSelector, &out.MachineConfigPoolSelector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(runtime.RawExtension) + (*in).DeepCopyInto(*out) + } + if in.TLSSecurityProfile != nil { + in, out := &in.TLSSecurityProfile, &out.TLSSecurityProfile + *out = new(configv1.TLSSecurityProfile) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigSpec. +func (in *KubeletConfigSpec) DeepCopy() *KubeletConfigSpec { + if in == nil { + return nil + } + out := new(KubeletConfigSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfigStatus) DeepCopyInto(out *KubeletConfigStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]KubeletConfigCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigStatus. +func (in *KubeletConfigStatus) DeepCopy() *KubeletConfigStatus { + if in == nil { + return nil + } + out := new(KubeletConfigStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfig) DeepCopyInto(out *MachineConfig) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfig. +func (in *MachineConfig) DeepCopy() *MachineConfig { + if in == nil { + return nil + } + out := new(MachineConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineConfig) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigList) DeepCopyInto(out *MachineConfigList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]MachineConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigList. +func (in *MachineConfigList) DeepCopy() *MachineConfigList { + if in == nil { + return nil + } + out := new(MachineConfigList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineConfigList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigPool) DeepCopyInto(out *MachineConfigPool) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPool. +func (in *MachineConfigPool) DeepCopy() *MachineConfigPool { + if in == nil { + return nil + } + out := new(MachineConfigPool) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineConfigPool) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigPoolCondition) DeepCopyInto(out *MachineConfigPoolCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolCondition. +func (in *MachineConfigPoolCondition) DeepCopy() *MachineConfigPoolCondition { + if in == nil { + return nil + } + out := new(MachineConfigPoolCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigPoolList) DeepCopyInto(out *MachineConfigPoolList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]MachineConfigPool, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolList. +func (in *MachineConfigPoolList) DeepCopy() *MachineConfigPoolList { + if in == nil { + return nil + } + out := new(MachineConfigPoolList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineConfigPoolList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigPoolSpec) DeepCopyInto(out *MachineConfigPoolSpec) { + *out = *in + if in.MachineConfigSelector != nil { + in, out := &in.MachineConfigSelector, &out.MachineConfigSelector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + *out = new(intstr.IntOrString) + **out = **in + } + in.Configuration.DeepCopyInto(&out.Configuration) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolSpec. +func (in *MachineConfigPoolSpec) DeepCopy() *MachineConfigPoolSpec { + if in == nil { + return nil + } + out := new(MachineConfigPoolSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigPoolStatus) DeepCopyInto(out *MachineConfigPoolStatus) { + *out = *in + in.Configuration.DeepCopyInto(&out.Configuration) + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]MachineConfigPoolCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolStatus. +func (in *MachineConfigPoolStatus) DeepCopy() *MachineConfigPoolStatus { + if in == nil { + return nil + } + out := new(MachineConfigPoolStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigPoolStatusConfiguration) DeepCopyInto(out *MachineConfigPoolStatusConfiguration) { + *out = *in + out.ObjectReference = in.ObjectReference + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = make([]corev1.ObjectReference, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolStatusConfiguration. +func (in *MachineConfigPoolStatusConfiguration) DeepCopy() *MachineConfigPoolStatusConfiguration { + if in == nil { + return nil + } + out := new(MachineConfigPoolStatusConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineConfigSpec) DeepCopyInto(out *MachineConfigSpec) { + *out = *in + in.Config.DeepCopyInto(&out.Config) + if in.KernelArguments != nil { + in, out := &in.KernelArguments, &out.KernelArguments + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Extensions != nil { + in, out := &in.Extensions, &out.Extensions + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigSpec. +func (in *MachineConfigSpec) DeepCopy() *MachineConfigSpec { + if in == nil { + return nil + } + out := new(MachineConfigSpec) + in.DeepCopyInto(out) + return out +} diff --git a/machineconfiguration/v1/zz_generated.swagger_doc_generated.go b/machineconfiguration/v1/zz_generated.swagger_doc_generated.go new file mode 100644 index 00000000000..ae923b84065 --- /dev/null +++ b/machineconfiguration/v1/zz_generated.swagger_doc_generated.go @@ -0,0 +1,283 @@ +package v1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE +var map_ContainerRuntimeConfig = map[string]string{ + "": "ContainerRuntimeConfig describes a customized Container Runtime configuration.\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (ContainerRuntimeConfig) SwaggerDoc() map[string]string { + return map_ContainerRuntimeConfig +} + +var map_ContainerRuntimeConfigCondition = map[string]string{ + "": "ContainerRuntimeConfigCondition defines the state of the ContainerRuntimeConfig", + "type": "type specifies the state of the operator's reconciliation functionality.", + "status": "status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "lastTransitionTime is the time of the last update to the current status object.", + "reason": "reason is the reason for the condition's last transition. Reasons are PascalCase", + "message": "message provides additional information about the current condition. This is only to be consumed by humans.", +} + +func (ContainerRuntimeConfigCondition) SwaggerDoc() map[string]string { + return map_ContainerRuntimeConfigCondition +} + +var map_ContainerRuntimeConfigList = map[string]string{ + "": "ContainerRuntimeConfigList is a list of ContainerRuntimeConfig resources\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (ContainerRuntimeConfigList) SwaggerDoc() map[string]string { + return map_ContainerRuntimeConfigList +} + +var map_ContainerRuntimeConfigSpec = map[string]string{ + "": "ContainerRuntimeConfigSpec defines the desired state of ContainerRuntimeConfig", +} + +func (ContainerRuntimeConfigSpec) SwaggerDoc() map[string]string { + return map_ContainerRuntimeConfigSpec +} + +var map_ContainerRuntimeConfigStatus = map[string]string{ + "": "ContainerRuntimeConfigStatus defines the observed state of a ContainerRuntimeConfig", + "observedGeneration": "observedGeneration represents the generation observed by the controller.", + "conditions": "conditions represents the latest available observations of current state.", +} + +func (ContainerRuntimeConfigStatus) SwaggerDoc() map[string]string { + return map_ContainerRuntimeConfigStatus +} + +var map_ContainerRuntimeConfiguration = map[string]string{ + "": "ContainerRuntimeConfiguration defines the tuneables of the container runtime", + "pidsLimit": "pidsLimit specifies the maximum number of processes allowed in a container", + "logLevel": "logLevel specifies the verbosity of the logs based on the level it is set to. Options are fatal, panic, error, warn, info, and debug.", + "logSizeMax": "logSizeMax specifies the Maximum size allowed for the container log file. Negative numbers indicate that no size limit is imposed. If it is positive, it must be >= 8192 to match/exceed conmon's read buffer.", + "overlaySize": "overlaySize specifies the maximum size of a container image. This flag can be used to set quota on the size of container images. (default: 10GB)", +} + +func (ContainerRuntimeConfiguration) SwaggerDoc() map[string]string { + return map_ContainerRuntimeConfiguration +} + +var map_ControllerConfig = map[string]string{ + "": "ControllerConfig describes configuration for MachineConfigController. This is currently only used to drive the MachineConfig objects generated by the TemplateController.\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", +} + +func (ControllerConfig) SwaggerDoc() map[string]string { + return map_ControllerConfig +} + +var map_ControllerConfigList = map[string]string{ + "": "ControllerConfigList is a list of ControllerConfig resources\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", +} + +func (ControllerConfigList) SwaggerDoc() map[string]string { + return map_ControllerConfigList +} + +var map_ControllerConfigSpec = map[string]string{ + "": "ControllerConfigSpec is the spec for ControllerConfig resource.", + "clusterDNSIP": "clusterDNSIP is the cluster DNS IP address", + "cloudProviderConfig": "cloudProviderConfig is the configuration for the given cloud provider", + "platform": "platform is deprecated, use Infra.Status.PlatformStatus.Type instead", + "etcdDiscoveryDomain": "etcdDiscoveryDomain is deprecated, use Infra.Status.EtcdDiscoveryDomain instead", + "kubeAPIServerServingCAData": "kubeAPIServerServingCAData managed Kubelet to API Server Cert... Rotated automatically", + "rootCAData": "rootCAData specifies the root CA data", + "cloudProviderCAData": "cloudProvider specifies the cloud provider CA data", + "additionalTrustBundle": "additionalTrustBundle is a certificate bundle that will be added to the nodes trusted certificate store.", + "pullSecret": "pullSecret is the default pull secret that needs to be installed on all machines.", + "images": "images is map of images that are used by the controller to render templates under ./templates/", + "osImageURL": "osImageURL is the location of the container image that contains the OS update payload. Its value is taken from the data.osImageURL field on the machine-config-osimageurl ConfigMap.", + "releaseImage": "releaseImage is the image used when installing the cluster", + "proxy": "proxy holds the current proxy configuration for the nodes", + "infra": "infra holds the infrastructure details", + "dns": "dns holds the cluster dns details", + "ipFamilies": "ipFamilies indicates the IP families in use by the cluster network", + "networkType": "networkType holds the type of network the cluster is using XXX: this is temporary and will be dropped as soon as possible in favor of a better support to start network related services the proper way. Nobody is also changing this once the cluster is up and running the first time, so, disallow regeneration if this changes.", +} + +func (ControllerConfigSpec) SwaggerDoc() map[string]string { + return map_ControllerConfigSpec +} + +var map_ControllerConfigStatus = map[string]string{ + "": "ControllerConfigStatus is the status for ControllerConfig", + "observedGeneration": "observedGeneration represents the generation observed by the controller.", + "conditions": "conditions represents the latest available observations of current state.", +} + +func (ControllerConfigStatus) SwaggerDoc() map[string]string { + return map_ControllerConfigStatus +} + +var map_ControllerConfigStatusCondition = map[string]string{ + "": "ControllerConfigStatusCondition contains condition information for ControllerConfigStatus", + "type": "type specifies the state of the operator's reconciliation functionality.", + "status": "status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "lastTransitionTime is the time of the last update to the current status object.", + "reason": "reason is the reason for the condition's last transition. Reasons are PascalCase", + "message": "message provides additional information about the current condition. This is only to be consumed by humans.", +} + +func (ControllerConfigStatusCondition) SwaggerDoc() map[string]string { + return map_ControllerConfigStatusCondition +} + +var map_KubeletConfig = map[string]string{ + "": "KubeletConfig describes a customized Kubelet configuration.\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (KubeletConfig) SwaggerDoc() map[string]string { + return map_KubeletConfig +} + +var map_KubeletConfigCondition = map[string]string{ + "": "KubeletConfigCondition defines the state of the KubeletConfig", + "type": "type specifies the state of the operator's reconciliation functionality.", + "status": "status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "lastTransitionTime is the time of the last update to the current status object.", + "reason": "reason is the reason for the condition's last transition. Reasons are PascalCase", + "message": "message provides additional information about the current condition. This is only to be consumed by humans.", +} + +func (KubeletConfigCondition) SwaggerDoc() map[string]string { + return map_KubeletConfigCondition +} + +var map_KubeletConfigList = map[string]string{ + "": "KubeletConfigList is a list of KubeletConfig resources\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (KubeletConfigList) SwaggerDoc() map[string]string { + return map_KubeletConfigList +} + +var map_KubeletConfigSpec = map[string]string{ + "": "KubeletConfigSpec defines the desired state of KubeletConfig", + "kubeletConfig": "kubeletConfig fields are defined in kubernetes upstream. Please refer to the types defined in the version/commit used by OpenShift of the upstream kubernetes. It's important to note that, since the fields of the kubelet configuration are directly fetched from upstream the validation of those values is handled directly by the kubelet. Please refer to the upstream version of the relevant kubernetes for the valid values of these fields. Invalid values of the kubelet configuration fields may render cluster nodes unusable.", + "tlsSecurityProfile": "If unset, the default is based on the apiservers.config.openshift.io/cluster resource. Note that only Old and Intermediate profiles are currently supported, and the maximum available MinTLSVersions is VersionTLS12.", +} + +func (KubeletConfigSpec) SwaggerDoc() map[string]string { + return map_KubeletConfigSpec +} + +var map_KubeletConfigStatus = map[string]string{ + "": "KubeletConfigStatus defines the observed state of a KubeletConfig", + "observedGeneration": "observedGeneration represents the generation observed by the controller.", + "conditions": "conditions represents the latest available observations of current state.", +} + +func (KubeletConfigStatus) SwaggerDoc() map[string]string { + return map_KubeletConfigStatus +} + +var map_MachineConfig = map[string]string{ + "": "MachineConfig defines the configuration for a machine\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (MachineConfig) SwaggerDoc() map[string]string { + return map_MachineConfig +} + +var map_MachineConfigList = map[string]string{ + "": "MachineConfigList is a list of MachineConfig resources\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (MachineConfigList) SwaggerDoc() map[string]string { + return map_MachineConfigList +} + +var map_MachineConfigPool = map[string]string{ + "": "MachineConfigPool describes a pool of MachineConfigs.\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (MachineConfigPool) SwaggerDoc() map[string]string { + return map_MachineConfigPool +} + +var map_MachineConfigPoolCondition = map[string]string{ + "": "MachineConfigPoolCondition contains condition information for an MachineConfigPool.", + "type": "type of the condition, currently ('Done', 'Updating', 'Failed').", + "status": "status of the condition, one of ('True', 'False', 'Unknown').", + "lastTransitionTime": "lastTransitionTime is the timestamp corresponding to the last status change of this condition.", + "reason": "reason is a brief machine readable explanation for the condition's last transition.", + "message": "message is a human readable description of the details of the last transition, complementing reason.", +} + +func (MachineConfigPoolCondition) SwaggerDoc() map[string]string { + return map_MachineConfigPoolCondition +} + +var map_MachineConfigPoolList = map[string]string{ + "": "MachineConfigPoolList is a list of MachineConfigPool resources\n\nCompatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).", +} + +func (MachineConfigPoolList) SwaggerDoc() map[string]string { + return map_MachineConfigPoolList +} + +var map_MachineConfigPoolSpec = map[string]string{ + "": "MachineConfigPoolSpec is the spec for MachineConfigPool resource.", + "machineConfigSelector": "machineConfigSelector specifies a label selector for MachineConfigs. Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work.", + "nodeSelector": "nodeSelector specifies a label selector for Machines", + "paused": "paused specifies whether or not changes to this machine config pool should be stopped. This includes generating new desiredMachineConfig and update of machines.", + "maxUnavailable": "maxUnavailable defines either an integer number or percentage of nodes in the pool that can go Unavailable during an update. This includes nodes Unavailable for any reason, including user initiated cordons, failing nodes, etc. The default value is 1.\n\nA value larger than 1 will mean multiple nodes going unavailable during the update, which may affect your workload stress on the remaining nodes. You cannot set this value to 0 to stop updates (it will default back to 1); to stop updates, use the 'paused' property instead. Drain will respect Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if maxUnavailable is greater than one.", + "configuration": "The targeted MachineConfig object for the machine config pool.", +} + +func (MachineConfigPoolSpec) SwaggerDoc() map[string]string { + return map_MachineConfigPoolSpec +} + +var map_MachineConfigPoolStatus = map[string]string{ + "": "MachineConfigPoolStatus is the status for MachineConfigPool resource.", + "observedGeneration": "observedGeneration represents the generation observed by the controller.", + "configuration": "configuration represents the current MachineConfig object for the machine config pool.", + "machineCount": "machineCount represents the total number of machines in the machine config pool.", + "updatedMachineCount": "updatedMachineCount represents the total number of machines targeted by the pool that have the CurrentMachineConfig as their config.", + "readyMachineCount": "readyMachineCount represents the total number of ready machines targeted by the pool.", + "unavailableMachineCount": "unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. A node is marked unavailable if it is in updating state or NodeReady condition is false.", + "degradedMachineCount": "degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). A node is marked degraded if applying a configuration failed..", + "conditions": "conditions represents the latest available observations of current state.", +} + +func (MachineConfigPoolStatus) SwaggerDoc() map[string]string { + return map_MachineConfigPoolStatus +} + +var map_MachineConfigPoolStatusConfiguration = map[string]string{ + "": "MachineConfigPoolStatusConfiguration stores the current configuration for the pool, and optionally also stores the list of MachineConfig objects used to generate the configuration.", + "source": "source is the list of MachineConfig objects that were used to generate the single MachineConfig object specified in `content`.", +} + +func (MachineConfigPoolStatusConfiguration) SwaggerDoc() map[string]string { + return map_MachineConfigPoolStatusConfiguration +} + +var map_MachineConfigSpec = map[string]string{ + "": "MachineConfigSpec is the spec for MachineConfig", + "osImageURL": "OSImageURL specifies the remote location that will be used to fetch the OS.", + "config": "Config is a Ignition Config object.", + "kernelArguments": "kernelArguments contains a list of kernel arguments to be added", + "extensions": "extensions contains a list of additional features that can be enabled on host", + "fips": "fips controls FIPS mode", + "kernelType": "kernelType contains which kernel we want to be running like default (traditional), realtime.", +} + +func (MachineConfigSpec) SwaggerDoc() map[string]string { + return map_MachineConfigSpec +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/networkoperator/v1/generated.pb.go b/networkoperator/v1/generated.pb.go deleted file mode 100644 index f5fcf14e344..00000000000 --- a/networkoperator/v1/generated.pb.go +++ /dev/null @@ -1,2552 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/networkoperator/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *EgressRouter) Reset() { *m = EgressRouter{} } -func (*EgressRouter) ProtoMessage() {} -func (*EgressRouter) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{0} -} -func (m *EgressRouter) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouter) 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 *EgressRouter) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouter.Merge(m, src) -} -func (m *EgressRouter) XXX_Size() int { - return m.Size() -} -func (m *EgressRouter) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouter.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouter proto.InternalMessageInfo - -func (m *EgressRouterAddress) Reset() { *m = EgressRouterAddress{} } -func (*EgressRouterAddress) ProtoMessage() {} -func (*EgressRouterAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{1} -} -func (m *EgressRouterAddress) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouterAddress) 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 *EgressRouterAddress) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouterAddress.Merge(m, src) -} -func (m *EgressRouterAddress) XXX_Size() int { - return m.Size() -} -func (m *EgressRouterAddress) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouterAddress.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouterAddress proto.InternalMessageInfo - -func (m *EgressRouterInterface) Reset() { *m = EgressRouterInterface{} } -func (*EgressRouterInterface) ProtoMessage() {} -func (*EgressRouterInterface) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{2} -} -func (m *EgressRouterInterface) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouterInterface) 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 *EgressRouterInterface) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouterInterface.Merge(m, src) -} -func (m *EgressRouterInterface) XXX_Size() int { - return m.Size() -} -func (m *EgressRouterInterface) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouterInterface.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouterInterface proto.InternalMessageInfo - -func (m *EgressRouterList) Reset() { *m = EgressRouterList{} } -func (*EgressRouterList) ProtoMessage() {} -func (*EgressRouterList) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{3} -} -func (m *EgressRouterList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouterList) 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 *EgressRouterList) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouterList.Merge(m, src) -} -func (m *EgressRouterList) XXX_Size() int { - return m.Size() -} -func (m *EgressRouterList) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouterList.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouterList proto.InternalMessageInfo - -func (m *EgressRouterSpec) Reset() { *m = EgressRouterSpec{} } -func (*EgressRouterSpec) ProtoMessage() {} -func (*EgressRouterSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{4} -} -func (m *EgressRouterSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouterSpec) 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 *EgressRouterSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouterSpec.Merge(m, src) -} -func (m *EgressRouterSpec) XXX_Size() int { - return m.Size() -} -func (m *EgressRouterSpec) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouterSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouterSpec proto.InternalMessageInfo - -func (m *EgressRouterStatus) Reset() { *m = EgressRouterStatus{} } -func (*EgressRouterStatus) ProtoMessage() {} -func (*EgressRouterStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{5} -} -func (m *EgressRouterStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouterStatus) 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 *EgressRouterStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouterStatus.Merge(m, src) -} -func (m *EgressRouterStatus) XXX_Size() int { - return m.Size() -} -func (m *EgressRouterStatus) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouterStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouterStatus proto.InternalMessageInfo - -func (m *EgressRouterStatusCondition) Reset() { *m = EgressRouterStatusCondition{} } -func (*EgressRouterStatusCondition) ProtoMessage() {} -func (*EgressRouterStatusCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{6} -} -func (m *EgressRouterStatusCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressRouterStatusCondition) 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 *EgressRouterStatusCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressRouterStatusCondition.Merge(m, src) -} -func (m *EgressRouterStatusCondition) XXX_Size() int { - return m.Size() -} -func (m *EgressRouterStatusCondition) XXX_DiscardUnknown() { - xxx_messageInfo_EgressRouterStatusCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressRouterStatusCondition proto.InternalMessageInfo - -func (m *L4RedirectRule) Reset() { *m = L4RedirectRule{} } -func (*L4RedirectRule) ProtoMessage() {} -func (*L4RedirectRule) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{7} -} -func (m *L4RedirectRule) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *L4RedirectRule) 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 *L4RedirectRule) XXX_Merge(src proto.Message) { - xxx_messageInfo_L4RedirectRule.Merge(m, src) -} -func (m *L4RedirectRule) XXX_Size() int { - return m.Size() -} -func (m *L4RedirectRule) XXX_DiscardUnknown() { - xxx_messageInfo_L4RedirectRule.DiscardUnknown(m) -} - -var xxx_messageInfo_L4RedirectRule proto.InternalMessageInfo - -func (m *MacvlanConfig) Reset() { *m = MacvlanConfig{} } -func (*MacvlanConfig) ProtoMessage() {} -func (*MacvlanConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{8} -} -func (m *MacvlanConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MacvlanConfig) 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 *MacvlanConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_MacvlanConfig.Merge(m, src) -} -func (m *MacvlanConfig) XXX_Size() int { - return m.Size() -} -func (m *MacvlanConfig) XXX_DiscardUnknown() { - xxx_messageInfo_MacvlanConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_MacvlanConfig proto.InternalMessageInfo - -func (m *RedirectConfig) Reset() { *m = RedirectConfig{} } -func (*RedirectConfig) ProtoMessage() {} -func (*RedirectConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_4bddfca96304d190, []int{9} -} -func (m *RedirectConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RedirectConfig) 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 *RedirectConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_RedirectConfig.Merge(m, src) -} -func (m *RedirectConfig) XXX_Size() int { - return m.Size() -} -func (m *RedirectConfig) XXX_DiscardUnknown() { - xxx_messageInfo_RedirectConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_RedirectConfig proto.InternalMessageInfo - -func init() { - proto.RegisterType((*EgressRouter)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouter") - proto.RegisterType((*EgressRouterAddress)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouterAddress") - proto.RegisterType((*EgressRouterInterface)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouterInterface") - proto.RegisterType((*EgressRouterList)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouterList") - proto.RegisterType((*EgressRouterSpec)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouterSpec") - proto.RegisterType((*EgressRouterStatus)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouterStatus") - proto.RegisterType((*EgressRouterStatusCondition)(nil), "github.com.openshift.api.networkoperator.v1.EgressRouterStatusCondition") - proto.RegisterType((*L4RedirectRule)(nil), "github.com.openshift.api.networkoperator.v1.L4RedirectRule") - proto.RegisterType((*MacvlanConfig)(nil), "github.com.openshift.api.networkoperator.v1.MacvlanConfig") - proto.RegisterType((*RedirectConfig)(nil), "github.com.openshift.api.networkoperator.v1.RedirectConfig") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/networkoperator/v1/generated.proto", fileDescriptor_4bddfca96304d190) -} - -var fileDescriptor_4bddfca96304d190 = []byte{ - // 959 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0x23, 0x45, - 0x17, 0x75, 0x3b, 0x76, 0xe2, 0x54, 0xe2, 0x4c, 0xbe, 0xfa, 0x34, 0x92, 0xe5, 0x91, 0xda, 0xa1, - 0x17, 0xa3, 0x00, 0xa2, 0x9b, 0x44, 0x11, 0x62, 0x08, 0x08, 0xa6, 0xc3, 0x9f, 0xa5, 0x18, 0xac, - 0x22, 0x2b, 0x34, 0x02, 0x2a, 0xdd, 0xe5, 0x76, 0x63, 0x77, 0x57, 0x53, 0x55, 0xf6, 0x10, 0x09, - 0x21, 0x96, 0x2c, 0x11, 0xef, 0xc1, 0x0b, 0xb0, 0x60, 0x9d, 0x65, 0x96, 0xb3, 0xb2, 0x88, 0xd9, - 0xf0, 0x0c, 0x59, 0xa1, 0xaa, 0xae, 0xfe, 0x4b, 0x86, 0xd1, 0x24, 0xec, 0x5c, 0xb7, 0xee, 0x39, - 0xe7, 0xf6, 0xbd, 0xa7, 0xae, 0xc1, 0x61, 0x10, 0x8a, 0xf1, 0xec, 0xd4, 0xf6, 0x68, 0xe4, 0xd0, - 0x84, 0xc4, 0x7c, 0x1c, 0x8e, 0x84, 0x83, 0x93, 0xd0, 0x89, 0x89, 0x78, 0x4a, 0xd9, 0x84, 0x26, - 0x84, 0x61, 0x41, 0x99, 0x33, 0xdf, 0x73, 0x02, 0x12, 0xcb, 0x03, 0xf1, 0xed, 0x84, 0x51, 0x41, - 0xe1, 0xeb, 0x05, 0xd8, 0xce, 0xc1, 0x36, 0x4e, 0x42, 0xfb, 0x1a, 0xd8, 0x9e, 0xef, 0x75, 0xdf, - 0x28, 0x29, 0x05, 0x34, 0xa0, 0x8e, 0xe2, 0x38, 0x9d, 0x8d, 0xd4, 0x49, 0x1d, 0xd4, 0xaf, 0x94, - 0xbb, 0x7b, 0x30, 0x79, 0x9b, 0xdb, 0x21, 0x95, 0xa5, 0x44, 0xd8, 0x1b, 0x87, 0x31, 0x61, 0x67, - 0x4e, 0x32, 0x09, 0x64, 0x80, 0x3b, 0x11, 0x11, 0xf8, 0x39, 0x15, 0x75, 0xdf, 0xfa, 0x37, 0x14, - 0x9b, 0xc5, 0x22, 0x8c, 0x88, 0xc3, 0xbd, 0x31, 0x89, 0xf0, 0x75, 0x9c, 0xf5, 0x7b, 0x1d, 0x6c, - 0x7e, 0x14, 0x30, 0xc2, 0x39, 0xa2, 0x33, 0x41, 0x18, 0xfc, 0x06, 0xb4, 0xa4, 0x86, 0x8f, 0x05, - 0xee, 0x18, 0x3b, 0xc6, 0xee, 0xc6, 0xfe, 0x9b, 0x76, 0xca, 0x6d, 0x97, 0xb9, 0xed, 0x64, 0x12, - 0xc8, 0x00, 0xb7, 0x65, 0xb6, 0x3d, 0xdf, 0xb3, 0x3f, 0x3f, 0xfd, 0x96, 0x78, 0x62, 0x40, 0x04, - 0x76, 0xe1, 0xf9, 0xa2, 0x57, 0x5b, 0x2e, 0x7a, 0xa0, 0x88, 0xa1, 0x9c, 0x15, 0x7e, 0x0d, 0x1a, - 0x3c, 0x21, 0x5e, 0xa7, 0xae, 0xd8, 0xdf, 0xb3, 0x6f, 0xd1, 0x4b, 0xbb, 0x5c, 0xea, 0x17, 0x09, - 0xf1, 0xdc, 0x4d, 0x2d, 0xd5, 0x90, 0x27, 0xa4, 0x88, 0x61, 0x00, 0x56, 0xb9, 0xc0, 0x62, 0xc6, - 0x3b, 0x2b, 0x4a, 0xe2, 0xfd, 0xbb, 0x4b, 0x28, 0x1a, 0x77, 0x4b, 0x8b, 0xac, 0xa6, 0x67, 0xa4, - 0xe9, 0xad, 0x27, 0xe0, 0xff, 0xe5, 0xec, 0xc7, 0xbe, 0x2f, 0x0f, 0xb0, 0x0b, 0xea, 0x61, 0xa2, - 0x9a, 0xb7, 0xee, 0x02, 0x0d, 0xad, 0xf7, 0x87, 0xa8, 0x1e, 0x26, 0xf0, 0x55, 0xb0, 0x16, 0x60, - 0x41, 0x9e, 0xe2, 0x33, 0xf5, 0xfd, 0xeb, 0xee, 0x3d, 0x9d, 0xb0, 0xf6, 0x49, 0x1a, 0x46, 0xd9, - 0xbd, 0xf5, 0x23, 0xb8, 0x5f, 0x66, 0xef, 0xc7, 0x82, 0xb0, 0x11, 0xf6, 0x08, 0x24, 0x60, 0x2d, - 0xc2, 0xde, 0x7c, 0x8a, 0x63, 0x3d, 0xa1, 0x77, 0x6e, 0xf5, 0x81, 0x83, 0x14, 0x7b, 0x44, 0xe3, - 0x51, 0x18, 0x14, 0xfa, 0x3a, 0x8c, 0x32, 0x6e, 0xeb, 0xc2, 0x00, 0xdb, 0xe5, 0x02, 0x8e, 0x43, - 0x2e, 0xe0, 0x93, 0x1b, 0xf6, 0xb0, 0x5f, 0xce, 0x1e, 0x12, 0xad, 0xcc, 0xb1, 0xad, 0x05, 0x5b, - 0x59, 0xa4, 0x64, 0x8d, 0xaf, 0x40, 0x33, 0x14, 0x24, 0xe2, 0x9d, 0xfa, 0xce, 0xca, 0xee, 0xc6, - 0xfe, 0xa3, 0x3b, 0x0f, 0xce, 0x6d, 0x6b, 0x95, 0x66, 0x5f, 0xf2, 0xa1, 0x94, 0xd6, 0xfa, 0x6d, - 0xa5, 0xfa, 0x49, 0xd2, 0x34, 0xf0, 0x00, 0x34, 0x22, 0xea, 0x13, 0x3d, 0xb0, 0x9d, 0xcc, 0x50, - 0x03, 0xea, 0x93, 0xab, 0x45, 0xaf, 0x92, 0x2f, 0x63, 0x48, 0x65, 0x43, 0x02, 0x5a, 0x8c, 0xf8, - 0x21, 0x23, 0x9e, 0xd0, 0x4e, 0x3e, 0xbc, 0x55, 0xb5, 0x48, 0x83, 0xf5, 0x18, 0x36, 0x65, 0x47, - 0xb2, 0x18, 0xca, 0xa9, 0xe1, 0xcf, 0x06, 0xd8, 0xd6, 0xe8, 0xdc, 0x00, 0xda, 0xd6, 0xee, 0x9d, - 0xbb, 0x93, 0x33, 0xb9, 0x1d, 0xfd, 0xb5, 0xdb, 0x9f, 0x5d, 0xd3, 0x40, 0x37, 0x54, 0xe1, 0x77, - 0x60, 0x1d, 0xa7, 0x0e, 0x27, 0xbc, 0xd3, 0x50, 0x03, 0xfa, 0xe0, 0xce, 0x25, 0xe8, 0xb7, 0xe2, - 0xfe, 0x4f, 0x17, 0xb0, 0xfe, 0x38, 0xa3, 0x46, 0x85, 0x8a, 0xf5, 0xab, 0x01, 0xe0, 0xcd, 0xf7, - 0x08, 0x7f, 0x00, 0xc0, 0xa3, 0xb1, 0x1f, 0x8a, 0x90, 0xc6, 0xbc, 0x63, 0xa8, 0x52, 0x3e, 0xfd, - 0x8f, 0x8f, 0xfc, 0x28, 0x23, 0x2c, 0xb6, 0x57, 0x1e, 0xe2, 0xa8, 0xa4, 0x67, 0xfd, 0x5d, 0x07, - 0x0f, 0x5e, 0x80, 0x87, 0x47, 0xa0, 0x21, 0xce, 0x92, 0xcc, 0x4f, 0x4e, 0xe6, 0xa7, 0x93, 0xb3, - 0x44, 0xfa, 0xa9, 0xf7, 0x02, 0xa8, 0x4c, 0x41, 0x0a, 0x0c, 0x1f, 0xe5, 0x3b, 0x2c, 0x5d, 0x13, - 0xaf, 0x54, 0x57, 0xd0, 0xd5, 0xa2, 0x77, 0x2f, 0x87, 0x55, 0xb7, 0x12, 0x9c, 0x03, 0x38, 0xc5, - 0x5c, 0x9c, 0x30, 0x1c, 0xf3, 0x94, 0x36, 0x8c, 0x32, 0xcf, 0xbc, 0xf6, 0x72, 0x8f, 0x55, 0x22, - 0xdc, 0xae, 0x96, 0x84, 0xc7, 0x37, 0xd8, 0xd0, 0x73, 0x14, 0xe0, 0x43, 0xb0, 0xca, 0x08, 0xe6, - 0x34, 0xee, 0x34, 0x54, 0xc9, 0xf9, 0xd6, 0x44, 0x2a, 0x8a, 0xf4, 0xad, 0x5c, 0x81, 0x11, 0xe1, - 0x1c, 0x07, 0xa4, 0xd3, 0xac, 0xae, 0xc0, 0x41, 0x1a, 0x46, 0xd9, 0xbd, 0x75, 0x69, 0x80, 0xad, - 0xe3, 0x83, 0xfc, 0x59, 0xcc, 0xa6, 0x04, 0x1e, 0x82, 0xb6, 0x4f, 0xb8, 0x08, 0x63, 0x2c, 0x85, - 0xfb, 0x43, 0xdd, 0xe6, 0xfb, 0x9a, 0xa3, 0xfd, 0x61, 0xf9, 0x12, 0x55, 0x73, 0xe1, 0x0e, 0x68, - 0x24, 0x94, 0xa5, 0x0f, 0xb6, 0x59, 0xfc, 0x77, 0x0c, 0x29, 0x13, 0x48, 0xdd, 0xc0, 0x77, 0x41, - 0x4b, 0xfd, 0x31, 0x7a, 0x74, 0xaa, 0x5a, 0x56, 0x2c, 0x84, 0xd6, 0x50, 0xc7, 0xaf, 0x16, 0xbd, - 0xcd, 0xec, 0xb7, 0x9a, 0x58, 0x8e, 0x80, 0xfb, 0x00, 0x08, 0xcc, 0x02, 0x22, 0x24, 0xa3, 0x6a, - 0x43, 0xb3, 0xb0, 0xd3, 0x49, 0x7e, 0x83, 0x4a, 0x59, 0xd6, 0x18, 0xb4, 0x2b, 0x1b, 0x19, 0x3a, - 0x95, 0x7d, 0xf4, 0xe0, 0xda, 0x3e, 0xda, 0xd0, 0xc9, 0xa5, 0x55, 0xf4, 0x10, 0xac, 0x46, 0x98, - 0x0b, 0xc2, 0xb4, 0x57, 0xf2, 0xc6, 0x0f, 0x54, 0x14, 0xe9, 0x5b, 0xeb, 0x0f, 0x03, 0x6c, 0x55, - 0xd7, 0x0e, 0xfc, 0x1e, 0xb4, 0x59, 0xa9, 0xbb, 0xd9, 0x63, 0xba, 0xdd, 0x2a, 0xab, 0x4e, 0xa8, - 0x18, 0x45, 0x39, 0xca, 0x51, 0x55, 0x48, 0xb6, 0x6a, 0x84, 0xa7, 0xd3, 0x53, 0xec, 0x4d, 0xfa, - 0x43, 0x5d, 0x78, 0xde, 0xaa, 0x8f, 0xf3, 0x1b, 0x54, 0xca, 0x72, 0x77, 0xcf, 0x2f, 0xcd, 0xda, - 0xc5, 0xa5, 0x59, 0x7b, 0x76, 0x69, 0xd6, 0x7e, 0x5a, 0x9a, 0xc6, 0xf9, 0xd2, 0x34, 0x2e, 0x96, - 0xa6, 0xf1, 0x6c, 0x69, 0x1a, 0x7f, 0x2e, 0x4d, 0xe3, 0x97, 0xbf, 0xcc, 0xda, 0x97, 0xf5, 0xf9, - 0xde, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xc5, 0x23, 0x65, 0xde, 0x09, 0x00, 0x00, -} - -func (m *EgressRouter) 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 *EgressRouter) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouter) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.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 *EgressRouterAddress) 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 *EgressRouterAddress) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouterAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Gateway) - copy(dAtA[i:], m.Gateway) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway))) - i-- - dAtA[i] = 0x12 - i -= len(m.IP) - copy(dAtA[i:], m.IP) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.IP))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressRouterInterface) 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 *EgressRouterInterface) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouterInterface) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Macvlan.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 *EgressRouterList) 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 *EgressRouterList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouterList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.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 *EgressRouterSpec) 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 *EgressRouterSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouterSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Addresses) > 0 { - for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Addresses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - { - size, err := m.NetworkInterface.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - if m.Redirect != nil { - { - size, err := m.Redirect.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Mode) - copy(dAtA[i:], m.Mode) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Mode))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressRouterStatus) 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 *EgressRouterStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouterStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].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 *EgressRouterStatusCondition) 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 *EgressRouterStatusCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressRouterStatusCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x2a - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x22 - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *L4RedirectRule) 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 *L4RedirectRule) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *L4RedirectRule) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort)) - i-- - dAtA[i] = 0x20 - i -= len(m.Protocol) - copy(dAtA[i:], m.Protocol) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol))) - i-- - dAtA[i] = 0x1a - i = encodeVarintGenerated(dAtA, i, uint64(m.Port)) - i-- - dAtA[i] = 0x10 - i -= len(m.DestinationIP) - copy(dAtA[i:], m.DestinationIP) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DestinationIP))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *MacvlanConfig) 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 *MacvlanConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MacvlanConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Master) - copy(dAtA[i:], m.Master) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Master))) - i-- - dAtA[i] = 0x12 - i -= len(m.Mode) - copy(dAtA[i:], m.Mode) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Mode))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RedirectConfig) 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 *RedirectConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RedirectConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.FallbackIP) - copy(dAtA[i:], m.FallbackIP) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.FallbackIP))) - i-- - dAtA[i] = 0x12 - if len(m.RedirectRules) > 0 { - for iNdEx := len(m.RedirectRules) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.RedirectRules[iNdEx].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 encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *EgressRouter) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EgressRouterAddress) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.IP) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Gateway) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EgressRouterInterface) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Macvlan.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EgressRouterList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *EgressRouterSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Mode) - n += 1 + l + sovGenerated(uint64(l)) - if m.Redirect != nil { - l = m.Redirect.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.NetworkInterface.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Addresses) > 0 { - for _, e := range m.Addresses { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *EgressRouterStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *EgressRouterStatusCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *L4RedirectRule) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.DestinationIP) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.Port)) - l = len(m.Protocol) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.TargetPort)) - return n -} - -func (m *MacvlanConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Mode) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Master) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RedirectConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.RedirectRules) > 0 { - for _, e := range m.RedirectRules { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.FallbackIP) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *EgressRouter) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressRouter{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "EgressRouterSpec", "EgressRouterSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "EgressRouterStatus", "EgressRouterStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *EgressRouterAddress) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressRouterAddress{`, - `IP:` + fmt.Sprintf("%v", this.IP) + `,`, - `Gateway:` + fmt.Sprintf("%v", this.Gateway) + `,`, - `}`, - }, "") - return s -} -func (this *EgressRouterInterface) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressRouterInterface{`, - `Macvlan:` + strings.Replace(strings.Replace(this.Macvlan.String(), "MacvlanConfig", "MacvlanConfig", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *EgressRouterList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]EgressRouter{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "EgressRouter", "EgressRouter", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&EgressRouterList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *EgressRouterSpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForAddresses := "[]EgressRouterAddress{" - for _, f := range this.Addresses { - repeatedStringForAddresses += strings.Replace(strings.Replace(f.String(), "EgressRouterAddress", "EgressRouterAddress", 1), `&`, ``, 1) + "," - } - repeatedStringForAddresses += "}" - s := strings.Join([]string{`&EgressRouterSpec{`, - `Mode:` + fmt.Sprintf("%v", this.Mode) + `,`, - `Redirect:` + strings.Replace(this.Redirect.String(), "RedirectConfig", "RedirectConfig", 1) + `,`, - `NetworkInterface:` + strings.Replace(strings.Replace(this.NetworkInterface.String(), "EgressRouterInterface", "EgressRouterInterface", 1), `&`, ``, 1) + `,`, - `Addresses:` + repeatedStringForAddresses + `,`, - `}`, - }, "") - return s -} -func (this *EgressRouterStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]EgressRouterStatusCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "EgressRouterStatusCondition", "EgressRouterStatusCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&EgressRouterStatus{`, - `Conditions:` + repeatedStringForConditions + `,`, - `}`, - }, "") - return s -} -func (this *EgressRouterStatusCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressRouterStatusCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *L4RedirectRule) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&L4RedirectRule{`, - `DestinationIP:` + fmt.Sprintf("%v", this.DestinationIP) + `,`, - `Port:` + fmt.Sprintf("%v", this.Port) + `,`, - `Protocol:` + fmt.Sprintf("%v", this.Protocol) + `,`, - `TargetPort:` + fmt.Sprintf("%v", this.TargetPort) + `,`, - `}`, - }, "") - return s -} -func (this *MacvlanConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&MacvlanConfig{`, - `Mode:` + fmt.Sprintf("%v", this.Mode) + `,`, - `Master:` + fmt.Sprintf("%v", this.Master) + `,`, - `}`, - }, "") - return s -} -func (this *RedirectConfig) String() string { - if this == nil { - return "nil" - } - repeatedStringForRedirectRules := "[]L4RedirectRule{" - for _, f := range this.RedirectRules { - repeatedStringForRedirectRules += strings.Replace(strings.Replace(f.String(), "L4RedirectRule", "L4RedirectRule", 1), `&`, ``, 1) + "," - } - repeatedStringForRedirectRules += "}" - s := strings.Join([]string{`&RedirectConfig{`, - `RedirectRules:` + repeatedStringForRedirectRules + `,`, - `FallbackIP:` + fmt.Sprintf("%v", this.FallbackIP) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *EgressRouter) 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: EgressRouter: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouter: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", 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.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressRouterAddress) 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: EgressRouterAddress: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouterAddress: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IP", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.IP = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Gateway", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Gateway = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 *EgressRouterInterface) 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: EgressRouterInterface: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouterInterface: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Macvlan", 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.Macvlan.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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressRouterList) 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: EgressRouterList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouterList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", 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.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", 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 - } - m.Items = append(m.Items, EgressRouter{}) - if err := m.Items[len(m.Items)-1].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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressRouterSpec) 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: EgressRouterSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouterSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Mode = EgressRouterMode(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Redirect", 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.Redirect == nil { - m.Redirect = &RedirectConfig{} - } - if err := m.Redirect.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NetworkInterface", 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.NetworkInterface.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Addresses", 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 - } - m.Addresses = append(m.Addresses, EgressRouterAddress{}) - if err := m.Addresses[len(m.Addresses)-1].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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressRouterStatus) 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: EgressRouterStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouterStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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 - } - m.Conditions = append(m.Conditions, EgressRouterStatusCondition{}) - if err := m.Conditions[len(m.Conditions)-1].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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressRouterStatusCondition) 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: EgressRouterStatusCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressRouterStatusCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = EgressRouterStatusConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 *L4RedirectRule) 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: L4RedirectRule: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: L4RedirectRule: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationIP", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DestinationIP = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) - } - m.Port = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Port |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Protocol = ProtocolType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetPort", wireType) - } - m.TargetPort = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TargetPort |= 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 *MacvlanConfig) 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: MacvlanConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MacvlanConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Mode = MacvlanMode(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Master", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Master = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 *RedirectConfig) 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: RedirectConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RedirectConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RedirectRules", 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 - } - m.RedirectRules = append(m.RedirectRules, L4RedirectRule{}) - if err := m.RedirectRules[len(m.RedirectRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FallbackIP", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FallbackIP = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/networkoperator/v1/generated.proto b/networkoperator/v1/generated.proto deleted file mode 100644 index 1e19f940678..00000000000 --- a/networkoperator/v1/generated.proto +++ /dev/null @@ -1,185 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = "proto2"; - -package github.com.openshift.api.networkoperator.v1; - -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// EgressRouter is a feature allowing the user to define an egress router -// that acts as a bridge between pods and external systems. The egress router runs -// a service that redirects egress traffic originating from a pod or a group of -// pods to a remote external system or multiple destinations as per configuration. -// -// It is consumed by the cluster-network-operator. -// More specifically, given an EgressRouter CR with , the CNO will create and manage: -// - A service called -// - An egress pod called -// - A NAD called -// -// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// -// EgressRouter is a single egressrouter pod configuration object. -// +k8s:openapi-gen=true -// +kubebuilder:subresource:status -// +kubebuilder:resource:path=egressrouters,scope=Namespaced -// +kubebuilder:printcolumn:name="Condition",type=string,JSONPath=".status.conditions[*].type" -// +kubebuilder:printcolumn:name="Status",type=string,JSONPath=".status.conditions[*].status" -// +openshift:compatibility-gen:level=1 -message EgressRouter { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Specification of the desired egress router. - // +kubebuilder:validation:Required - optional EgressRouterSpec spec = 2; - - // Observed status of EgressRouter. - optional EgressRouterStatus status = 3; -} - -// EgressRouterAddress contains a pair of IP CIDR and gateway to be configured on the router's interface -// +kubebuilder:validation:Required -message EgressRouterAddress { - // IP is the address to configure on the router's interface. Can be IPv4 or IPv6. - // +kubebuilder:validation:Required - optional string ip = 1; - - // IP address of the next-hop gateway, if it cannot be automatically determined. Can be IPv4 or IPv6. - optional string gateway = 2; -} - -// EgressRouterInterface contains the configuration of interface to create/use. -message EgressRouterInterface { - // Arguments specific to the interfaceType macvlan - // +kubebuilder:default:={mode: Bridge} - optional MacvlanConfig macvlan = 1; -} - -// EgressRouterList is the list of egress router pods requested. -// -// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). -// +openshift:compatibility-gen:level=1 -message EgressRouterList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - repeated EgressRouter items = 2; -} - -// EgressRouterSpec contains the configuration for an egress router. -// Mode, networkInterface and addresses fields must be specified along with exactly one "Config" that matches the mode. -// Each config consists of parameters specific to that mode. -// +k8s:openapi-gen=true -// +kubebuilder:validation:Required -message EgressRouterSpec { - // Mode depicts the mode that is used for the egress router. The default mode is "Redirect" and is the only supported mode currently. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum="Redirect" - // +kubebuilder:default:="Redirect" - optional string mode = 1; - - // Redirect represents the configuration parameters specific to redirect mode. - optional RedirectConfig redirect = 2; - - // Specification of interface to create/use. The default is macvlan. - // Currently only macvlan is supported. - // +kubebuilder:validation:Required - // +kubebuilder:default:={macvlan: {mode: Bridge}} - optional EgressRouterInterface networkInterface = 3; - - // List of IP addresses to configure on the pod's secondary interface. - // +kubebuilder:validation:Required - repeated EgressRouterAddress addresses = 4; -} - -// EgressRouterStatus contains the observed status of EgressRouter. Read-only. -message EgressRouterStatus { - // Observed status of the egress router - // +kubebuilder:validation:Required - repeated EgressRouterStatusCondition conditions = 1; -} - -// EgressRouterStatusCondition represents the state of the egress router's -// managed and monitored components. -// +k8s:deepcopy-gen=true -message EgressRouterStatusCondition { - // Type specifies the aspect reported by this condition; one of Available, Progressing, Degraded - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum="Available";"Progressing";"Degraded" - // +required - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum="True";"False";"Unknown" - // +required - optional string status = 2; - - // LastTransitionTime is the time of the last update to the current status property. - // +kubebuilder:validation:Required - // +required - // +nullable - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // Reason is the CamelCase reason for the condition's current status. - optional string reason = 4; - - // Message provides additional information about the current condition. - // This is only to be consumed by humans. It may contain Line Feed - // characters (U+000A), which should be rendered as new lines. - optional string message = 5; -} - -// L4RedirectRule defines a DNAT redirection from a given port to a destination IP and port. -message L4RedirectRule { - // IP specifies the remote destination's IP address. Can be IPv4 or IPv6. - // +kubebuilder:validation:Required - optional string destinationIP = 1; - - // Port is the port number to which clients should send traffic to be redirected. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Maximum:=65535 - // +kubebuilder:validation:Minimum:=1 - optional int32 port = 2; - - // Protocol can be TCP, SCTP or UDP. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum="TCP";"UDP";"SCTP" - optional string protocol = 3; - - // TargetPort allows specifying the port number on the remote destination to which the traffic gets redirected to. - // If unspecified, the value from "Port" is used. - // +kubebuilder:validation:Maximum:=65535 - // +kubebuilder:validation:Minimum:=1 - optional int32 targetPort = 4; -} - -// MacvlanConfig consists of arguments specific to the macvlan EgressRouterInterfaceType -message MacvlanConfig { - // Mode depicts the mode that is used for the macvlan interface; one of Bridge|Private|VEPA|Passthru. The default mode is "Bridge". - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum="Bridge";"Private";"VEPA";"Passthru" - // +kubebuilder:default:="Bridge" - optional string mode = 1; - - // Name of the master interface. Need not be specified if it can be inferred from the IP address. - optional string master = 2; -} - -// RedirectConfig represents the configuration parameters specific to redirect mode. -message RedirectConfig { - // List of L4RedirectRules that define the DNAT redirection from the pod to the destination in redirect mode. - repeated L4RedirectRule redirectRules = 1; - - // FallbackIP specifies the remote destination's IP address. Can be IPv4 or IPv6. - // If no redirect rules are specified, all traffic from the router are redirected to this IP. - // If redirect rules are specified, then any connections on any other port (undefined in the rules) on the router will be redirected to this IP. - // If redirect rules are specified and no fallback IP is provided, connections on other ports will simply be rejected. - optional string fallbackIP = 2; -} - diff --git a/samples/v1/generated.pb.go b/samples/v1/generated.pb.go deleted file mode 100644 index ae953349c2f..00000000000 --- a/samples/v1/generated.pb.go +++ /dev/null @@ -1,1847 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/samples/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_openshift_api_operator_v1 "github.com/openshift/api/operator/v1" - - k8s_io_api_core_v1 "k8s.io/api/core/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *Config) Reset() { *m = Config{} } -func (*Config) ProtoMessage() {} -func (*Config) Descriptor() ([]byte, []int) { - return fileDescriptor_67d62912ac03ce1e, []int{0} -} -func (m *Config) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Config) 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 *Config) XXX_Merge(src proto.Message) { - xxx_messageInfo_Config.Merge(m, src) -} -func (m *Config) XXX_Size() int { - return m.Size() -} -func (m *Config) XXX_DiscardUnknown() { - xxx_messageInfo_Config.DiscardUnknown(m) -} - -var xxx_messageInfo_Config proto.InternalMessageInfo - -func (m *ConfigCondition) Reset() { *m = ConfigCondition{} } -func (*ConfigCondition) ProtoMessage() {} -func (*ConfigCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_67d62912ac03ce1e, []int{1} -} -func (m *ConfigCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ConfigCondition) 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 *ConfigCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConfigCondition.Merge(m, src) -} -func (m *ConfigCondition) XXX_Size() int { - return m.Size() -} -func (m *ConfigCondition) XXX_DiscardUnknown() { - xxx_messageInfo_ConfigCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_ConfigCondition proto.InternalMessageInfo - -func (m *ConfigList) Reset() { *m = ConfigList{} } -func (*ConfigList) ProtoMessage() {} -func (*ConfigList) Descriptor() ([]byte, []int) { - return fileDescriptor_67d62912ac03ce1e, []int{2} -} -func (m *ConfigList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ConfigList) 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 *ConfigList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConfigList.Merge(m, src) -} -func (m *ConfigList) XXX_Size() int { - return m.Size() -} -func (m *ConfigList) XXX_DiscardUnknown() { - xxx_messageInfo_ConfigList.DiscardUnknown(m) -} - -var xxx_messageInfo_ConfigList proto.InternalMessageInfo - -func (m *ConfigSpec) Reset() { *m = ConfigSpec{} } -func (*ConfigSpec) ProtoMessage() {} -func (*ConfigSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_67d62912ac03ce1e, []int{3} -} -func (m *ConfigSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ConfigSpec) 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 *ConfigSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConfigSpec.Merge(m, src) -} -func (m *ConfigSpec) XXX_Size() int { - return m.Size() -} -func (m *ConfigSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ConfigSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ConfigSpec proto.InternalMessageInfo - -func (m *ConfigStatus) Reset() { *m = ConfigStatus{} } -func (*ConfigStatus) ProtoMessage() {} -func (*ConfigStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_67d62912ac03ce1e, []int{4} -} -func (m *ConfigStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ConfigStatus) 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 *ConfigStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConfigStatus.Merge(m, src) -} -func (m *ConfigStatus) XXX_Size() int { - return m.Size() -} -func (m *ConfigStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ConfigStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ConfigStatus proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Config)(nil), "github.com.openshift.api.samples.v1.Config") - proto.RegisterType((*ConfigCondition)(nil), "github.com.openshift.api.samples.v1.ConfigCondition") - proto.RegisterType((*ConfigList)(nil), "github.com.openshift.api.samples.v1.ConfigList") - proto.RegisterType((*ConfigSpec)(nil), "github.com.openshift.api.samples.v1.ConfigSpec") - proto.RegisterType((*ConfigStatus)(nil), "github.com.openshift.api.samples.v1.ConfigStatus") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/samples/v1/generated.proto", fileDescriptor_67d62912ac03ce1e) -} - -var fileDescriptor_67d62912ac03ce1e = []byte{ - // 801 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x54, 0xcb, 0x6e, 0xe4, 0x44, - 0x14, 0x6d, 0xa7, 0x1f, 0xc9, 0xd4, 0x4c, 0xd2, 0xa1, 0x82, 0x18, 0x2b, 0x0b, 0x7b, 0xd4, 0x23, - 0xa1, 0x00, 0xa2, 0x4c, 0x0f, 0x11, 0xc3, 0x92, 0xf1, 0xac, 0x22, 0x25, 0x1a, 0xa8, 0x34, 0x48, - 0x20, 0x16, 0x54, 0xdc, 0x37, 0xee, 0x9a, 0x8e, 0xed, 0x92, 0xab, 0xba, 0xa5, 0xde, 0xf1, 0x09, - 0xb3, 0xe4, 0x0f, 0xf8, 0x09, 0x3e, 0x20, 0x3b, 0x66, 0x39, 0x2b, 0x8b, 0x98, 0xbf, 0xc8, 0x0a, - 0x55, 0xd9, 0xee, 0xf7, 0x88, 0xb4, 0x82, 0xc4, 0x2e, 0x75, 0xee, 0x3d, 0xe7, 0x5e, 0xf7, 0x39, - 0xb9, 0xe8, 0xcb, 0x90, 0xab, 0xc1, 0xe8, 0x82, 0x04, 0x49, 0xe4, 0x25, 0x02, 0x62, 0x39, 0xe0, - 0x97, 0xca, 0x63, 0x82, 0x7b, 0x92, 0x45, 0xe2, 0x0a, 0xa4, 0x37, 0xee, 0x7a, 0x21, 0xc4, 0x90, - 0x32, 0x05, 0x7d, 0x22, 0xd2, 0x44, 0x25, 0xf8, 0xe9, 0x8c, 0x44, 0xa6, 0x24, 0xc2, 0x04, 0x27, - 0x25, 0x89, 0x8c, 0xbb, 0x87, 0x9f, 0xcf, 0x29, 0x87, 0x49, 0x98, 0x78, 0x86, 0x7b, 0x31, 0xba, - 0x34, 0x2f, 0xf3, 0x30, 0x7f, 0x15, 0x9a, 0x87, 0x9d, 0xe1, 0xd7, 0x92, 0xf0, 0xc4, 0x8c, 0x0e, - 0x92, 0x14, 0xd6, 0xcc, 0x3d, 0x3c, 0x9e, 0xf5, 0x44, 0x2c, 0x18, 0xf0, 0x18, 0xd2, 0x89, 0x27, - 0x86, 0xa1, 0x06, 0xa4, 0x17, 0x81, 0x62, 0xeb, 0x58, 0xde, 0xfb, 0x58, 0xe9, 0x28, 0x56, 0x3c, - 0x82, 0x15, 0xc2, 0x57, 0xff, 0x46, 0x90, 0xc1, 0x00, 0x22, 0xb6, 0xcc, 0xeb, 0xfc, 0xb6, 0x85, - 0x5a, 0x2f, 0x93, 0xf8, 0x92, 0x87, 0xf8, 0x17, 0xb4, 0xa3, 0xd7, 0xe9, 0x33, 0xc5, 0x6c, 0xeb, - 0x89, 0x75, 0xf4, 0xf0, 0xd9, 0x17, 0xa4, 0x50, 0x25, 0xf3, 0xaa, 0x44, 0x0c, 0x43, 0x0d, 0x48, - 0xa2, 0xbb, 0xc9, 0xb8, 0x4b, 0x5e, 0x5d, 0xbc, 0x86, 0x40, 0x9d, 0x81, 0x62, 0x3e, 0xbe, 0xce, - 0xdc, 0x5a, 0x9e, 0xb9, 0x68, 0x86, 0xd1, 0xa9, 0x2a, 0xfe, 0x0e, 0x35, 0xa4, 0x80, 0xc0, 0xde, - 0x32, 0xea, 0x1e, 0xb9, 0x83, 0x25, 0xa4, 0x58, 0xee, 0x5c, 0x40, 0xe0, 0x3f, 0x2a, 0xc5, 0x1b, - 0xfa, 0x45, 0x8d, 0x14, 0xfe, 0x11, 0xb5, 0xa4, 0x62, 0x6a, 0x24, 0xed, 0xba, 0x11, 0xed, 0x6e, - 0x22, 0x6a, 0x88, 0xfe, 0x5e, 0x29, 0xdb, 0x2a, 0xde, 0xb4, 0x14, 0xec, 0xfc, 0x59, 0x47, 0xed, - 0xa2, 0xf1, 0x65, 0x12, 0xf7, 0xb9, 0xe2, 0x49, 0x8c, 0x9f, 0xa3, 0x86, 0x9a, 0x08, 0x30, 0xbf, - 0xcf, 0x03, 0xff, 0x69, 0xb5, 0x50, 0x6f, 0x22, 0xe0, 0x36, 0x73, 0x0f, 0x96, 0xda, 0x35, 0x4c, - 0x0d, 0x01, 0x9f, 0x4e, 0xf7, 0xdc, 0x32, 0xd4, 0xe3, 0xc5, 0xa1, 0xb7, 0x99, 0xbb, 0x26, 0x4c, - 0x64, 0xaa, 0xb4, 0xb8, 0x1a, 0x7e, 0x8d, 0xf6, 0xae, 0x98, 0x54, 0xdf, 0x8b, 0x3e, 0x53, 0xd0, - 0xe3, 0x11, 0x94, 0x5f, 0xff, 0xe9, 0xdd, 0x0c, 0xd3, 0x0c, 0xff, 0xa3, 0x72, 0x83, 0xbd, 0xd3, - 0x05, 0x25, 0xba, 0xa4, 0x8c, 0xc7, 0x08, 0x6b, 0xa4, 0x97, 0xb2, 0x58, 0x16, 0x5f, 0xa5, 0xe7, - 0x35, 0x36, 0x9e, 0x77, 0x58, 0xce, 0xc3, 0xa7, 0x2b, 0x6a, 0x74, 0xcd, 0x04, 0xfc, 0x31, 0x6a, - 0xa5, 0xc0, 0x64, 0x12, 0xdb, 0x4d, 0xf3, 0x8b, 0x4d, 0x6d, 0xa2, 0x06, 0xa5, 0x65, 0x15, 0x7f, - 0x82, 0xb6, 0x23, 0x90, 0x92, 0x85, 0x60, 0xb7, 0x4c, 0x63, 0xbb, 0x6c, 0xdc, 0x3e, 0x2b, 0x60, - 0x5a, 0xd5, 0x3b, 0x7f, 0x58, 0x08, 0x15, 0x16, 0x9d, 0x72, 0xa9, 0xf0, 0xcf, 0x2b, 0x81, 0x27, - 0x77, 0xfb, 0x1e, 0xcd, 0x36, 0x71, 0xdf, 0x2f, 0x47, 0xed, 0x54, 0xc8, 0x5c, 0xd8, 0xbf, 0x45, - 0x4d, 0xae, 0x20, 0xd2, 0x86, 0xd7, 0x8f, 0x1e, 0x3e, 0xfb, 0x6c, 0x83, 0x60, 0xfa, 0xbb, 0xa5, - 0x6e, 0xf3, 0x44, 0x2b, 0xd0, 0x42, 0xa8, 0xf3, 0xa6, 0x5e, 0xad, 0xaf, 0xff, 0x01, 0xf0, 0x04, - 0xb5, 0x23, 0x16, 0xb3, 0x10, 0x22, 0x88, 0x95, 0x0e, 0x48, 0x15, 0xcb, 0x57, 0x25, 0xbb, 0x7d, - 0xb6, 0x58, 0xbe, 0xcd, 0xdc, 0xe3, 0xf7, 0x9e, 0xce, 0x44, 0xe8, 0xbb, 0x90, 0xa4, 0x3a, 0x76, - 0x4b, 0x3c, 0xba, 0x3c, 0x07, 0xbf, 0x40, 0xed, 0x72, 0x69, 0x0a, 0x21, 0x97, 0x2a, 0x9d, 0x94, - 0xb1, 0x7e, 0x5c, 0x8d, 0x3e, 0x5f, 0x2c, 0xd3, 0xe5, 0x7e, 0xfc, 0x1c, 0xed, 0xb2, 0x34, 0x18, - 0x70, 0x05, 0x81, 0x1a, 0xa5, 0x20, 0xed, 0xc6, 0x93, 0xfa, 0xd1, 0x03, 0xff, 0x83, 0x3c, 0x73, - 0x77, 0x5f, 0xcc, 0x17, 0xe8, 0x62, 0x1f, 0x3e, 0x41, 0x07, 0x72, 0xc8, 0x85, 0x80, 0xfe, 0x49, - 0xc4, 0x42, 0x90, 0x2a, 0x05, 0x16, 0x49, 0xbb, 0x69, 0xe8, 0x8f, 0xf3, 0xcc, 0x3d, 0x38, 0x5f, - 0x2d, 0xd3, 0x75, 0x1c, 0xfc, 0x0d, 0xda, 0x2f, 0xe1, 0x1e, 0x44, 0xe2, 0x8a, 0x29, 0x90, 0x76, - 0xcb, 0xe8, 0x7c, 0x98, 0x67, 0xee, 0xfe, 0xf9, 0x52, 0x8d, 0xae, 0x74, 0x77, 0x7e, 0x6f, 0xa0, - 0x47, 0xf3, 0xc7, 0xe4, 0xff, 0x34, 0x65, 0x80, 0x50, 0x50, 0xdd, 0x8b, 0x2a, 0x75, 0xc7, 0x1b, - 0xa4, 0x6e, 0x7a, 0x6c, 0x66, 0x57, 0x7c, 0x0a, 0x49, 0x3a, 0xa7, 0xbd, 0xce, 0xfe, 0xfa, 0x7d, - 0xed, 0x6f, 0xde, 0xcf, 0xfe, 0xd6, 0x7f, 0x64, 0xff, 0xf6, 0x26, 0xf6, 0xeb, 0xdb, 0x33, 0x86, - 0x54, 0xf2, 0x24, 0xb6, 0x77, 0x16, 0x6f, 0xcf, 0x0f, 0x05, 0x4c, 0xab, 0xba, 0x7f, 0x74, 0x7d, - 0xe3, 0xd4, 0xde, 0xde, 0x38, 0xb5, 0x77, 0x37, 0x4e, 0xed, 0xd7, 0xdc, 0xb1, 0xae, 0x73, 0xc7, - 0x7a, 0x9b, 0x3b, 0xd6, 0xbb, 0xdc, 0xb1, 0xfe, 0xca, 0x1d, 0xeb, 0xcd, 0xdf, 0x4e, 0xed, 0xa7, - 0xad, 0x71, 0xf7, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x05, 0xb4, 0x66, 0xc9, 0xdf, 0x08, 0x00, - 0x00, -} - -func (m *Config) 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 *Config) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Config) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.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 *ConfigCondition) 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 *ConfigCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ConfigCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x32 - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x2a - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - { - size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ConfigList) 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 *ConfigList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ConfigList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.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 *ConfigSpec) 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 *ConfigSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ConfigSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.SkippedTemplates) > 0 { - for iNdEx := len(m.SkippedTemplates) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.SkippedTemplates[iNdEx]) - copy(dAtA[i:], m.SkippedTemplates[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SkippedTemplates[iNdEx]))) - i-- - dAtA[i] = 0x32 - } - } - if len(m.SkippedImagestreams) > 0 { - for iNdEx := len(m.SkippedImagestreams) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.SkippedImagestreams[iNdEx]) - copy(dAtA[i:], m.SkippedImagestreams[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SkippedImagestreams[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - if len(m.Architectures) > 0 { - for iNdEx := len(m.Architectures) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Architectures[iNdEx]) - copy(dAtA[i:], m.Architectures[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Architectures[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i -= len(m.SamplesRegistry) - copy(dAtA[i:], m.SamplesRegistry) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SamplesRegistry))) - i-- - dAtA[i] = 0x12 - i -= len(m.ManagementState) - copy(dAtA[i:], m.ManagementState) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ManagementState))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ConfigStatus) 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 *ConfigStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Version) - copy(dAtA[i:], m.Version) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) - i-- - dAtA[i] = 0x42 - if len(m.SkippedTemplates) > 0 { - for iNdEx := len(m.SkippedTemplates) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.SkippedTemplates[iNdEx]) - copy(dAtA[i:], m.SkippedTemplates[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SkippedTemplates[iNdEx]))) - i-- - dAtA[i] = 0x3a - } - } - if len(m.SkippedImagestreams) > 0 { - for iNdEx := len(m.SkippedImagestreams) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.SkippedImagestreams[iNdEx]) - copy(dAtA[i:], m.SkippedImagestreams[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SkippedImagestreams[iNdEx]))) - i-- - dAtA[i] = 0x32 - } - } - if len(m.Architectures) > 0 { - for iNdEx := len(m.Architectures) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Architectures[iNdEx]) - copy(dAtA[i:], m.Architectures[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Architectures[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - i -= len(m.SamplesRegistry) - copy(dAtA[i:], m.SamplesRegistry) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SamplesRegistry))) - i-- - dAtA[i] = 0x1a - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.ManagementState) - copy(dAtA[i:], m.ManagementState) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ManagementState))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Config) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ConfigCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastUpdateTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ConfigList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ConfigSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ManagementState) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.SamplesRegistry) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Architectures) > 0 { - for _, s := range m.Architectures { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.SkippedImagestreams) > 0 { - for _, s := range m.SkippedImagestreams { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.SkippedTemplates) > 0 { - for _, s := range m.SkippedTemplates { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ConfigStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ManagementState) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.SamplesRegistry) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Architectures) > 0 { - for _, s := range m.Architectures { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.SkippedImagestreams) > 0 { - for _, s := range m.SkippedImagestreams { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.SkippedTemplates) > 0 { - for _, s := range m.SkippedTemplates { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.Version) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Config) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Config{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ConfigSpec", "ConfigSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ConfigStatus", "ConfigStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ConfigCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ConfigCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *ConfigList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Config{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Config", "Config", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ConfigList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ConfigSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ConfigSpec{`, - `ManagementState:` + fmt.Sprintf("%v", this.ManagementState) + `,`, - `SamplesRegistry:` + fmt.Sprintf("%v", this.SamplesRegistry) + `,`, - `Architectures:` + fmt.Sprintf("%v", this.Architectures) + `,`, - `SkippedImagestreams:` + fmt.Sprintf("%v", this.SkippedImagestreams) + `,`, - `SkippedTemplates:` + fmt.Sprintf("%v", this.SkippedTemplates) + `,`, - `}`, - }, "") - return s -} -func (this *ConfigStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]ConfigCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "ConfigCondition", "ConfigCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&ConfigStatus{`, - `ManagementState:` + fmt.Sprintf("%v", this.ManagementState) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `SamplesRegistry:` + fmt.Sprintf("%v", this.SamplesRegistry) + `,`, - `Architectures:` + fmt.Sprintf("%v", this.Architectures) + `,`, - `SkippedImagestreams:` + fmt.Sprintf("%v", this.SkippedImagestreams) + `,`, - `SkippedTemplates:` + fmt.Sprintf("%v", this.SkippedTemplates) + `,`, - `Version:` + fmt.Sprintf("%v", this.Version) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Config) 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: Config: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Config: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", 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.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ConfigCondition) 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: ConfigCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ConfigCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = ConfigConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", 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.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 *ConfigList) 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: ConfigList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ConfigList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", 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.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", 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 - } - m.Items = append(m.Items, Config{}) - if err := m.Items[len(m.Items)-1].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) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ConfigSpec) 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: ConfigSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ConfigSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ManagementState", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ManagementState = github_com_openshift_api_operator_v1.ManagementState(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SamplesRegistry", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SamplesRegistry = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Architectures", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Architectures = append(m.Architectures, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SkippedImagestreams", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SkippedImagestreams = append(m.SkippedImagestreams, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SkippedTemplates", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SkippedTemplates = append(m.SkippedTemplates, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - 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 *ConfigStatus) 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: ConfigStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ConfigStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ManagementState", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ManagementState = github_com_openshift_api_operator_v1.ManagementState(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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 - } - m.Conditions = append(m.Conditions, ConfigCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SamplesRegistry", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SamplesRegistry = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Architectures", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Architectures = append(m.Architectures, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SkippedImagestreams", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SkippedImagestreams = append(m.SkippedImagestreams, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SkippedTemplates", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SkippedTemplates = append(m.SkippedTemplates, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Version = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - 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 skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/samples/v1/generated.proto b/samples/v1/generated.proto deleted file mode 100644 index e1095eeeaa8..00000000000 --- a/samples/v1/generated.proto +++ /dev/null @@ -1,152 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = "proto2"; - -package github.com.openshift.api.samples.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// Config contains the configuration and detailed condition status for the Samples Operator. -// -// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). -// +openshift:compatibility-gen:level=1 -message Config { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // +kubebuilder:validation:Required - // +required - optional ConfigSpec spec = 2; - - // +optional - optional ConfigStatus status = 3; -} - -// ConfigCondition captures various conditions of the Config -// as entries are processed. -message ConfigCondition { - // type of condition. - optional string type = 1; - - // status of the condition, one of True, False, Unknown. - optional string status = 2; - - // lastUpdateTime is the last time this condition was updated. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 3; - - // lastTransitionTime is the last time the condition transitioned from one status to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4; - - // reason is what caused the condition's last transition. - optional string reason = 5; - - // message is a human readable message indicating details about the transition. - optional string message = 6; -} - -// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). -// +openshift:compatibility-gen:level=1 -message ConfigList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - repeated Config items = 2; -} - -// ConfigSpec contains the desired configuration and state for the Samples Operator, controlling -// various behavior around the imagestreams and templates it creates/updates in the -// openshift namespace. -message ConfigSpec { - // managementState is top level on/off type of switch for all operators. - // When "Managed", this operator processes config and manipulates the samples accordingly. - // When "Unmanaged", this operator ignores any updates to the resources it watches. - // When "Removed", it reacts that same wasy as it does if the Config object - // is deleted, meaning any ImageStreams or Templates it manages (i.e. it honors the skipped - // lists) and the registry secret are deleted, along with the ConfigMap in the operator's - // namespace that represents the last config used to manipulate the samples, - optional string managementState = 1; - - // samplesRegistry allows for the specification of which registry is accessed - // by the ImageStreams for their image content. Defaults on the content in https://github.com/openshift/library - // that are pulled into this github repository, but based on our pulling only ocp content it typically - // defaults to registry.redhat.io. - optional string samplesRegistry = 2; - - // architectures determine which hardware architecture(s) to install, where x86_64, ppc64le, and s390x are the only - // supported choices currently. - repeated string architectures = 4; - - // skippedImagestreams specifies names of image streams that should NOT be - // created/updated. Admins can use this to allow them to delete content - // they don’t want. They will still have to manually delete the - // content but the operator will not recreate(or update) anything - // listed here. - repeated string skippedImagestreams = 5; - - // skippedTemplates specifies names of templates that should NOT be - // created/updated. Admins can use this to allow them to delete content - // they don’t want. They will still have to manually delete the - // content but the operator will not recreate(or update) anything - // listed here. - repeated string skippedTemplates = 6; -} - -// ConfigStatus contains the actual configuration in effect, as well as various details -// that describe the state of the Samples Operator. -message ConfigStatus { - // managementState reflects the current operational status of the on/off switch for - // the operator. This operator compares the ManagementState as part of determining that we are turning - // the operator back on (i.e. "Managed") when it was previously "Unmanaged". - // +patchMergeKey=type - // +patchStrategy=merge - optional string managementState = 1; - - // conditions represents the available maintenance status of the sample - // imagestreams and templates. - // +patchMergeKey=type - // +patchStrategy=merge - repeated ConfigCondition conditions = 2; - - // samplesRegistry allows for the specification of which registry is accessed - // by the ImageStreams for their image content. Defaults on the content in https://github.com/openshift/library - // that are pulled into this github repository, but based on our pulling only ocp content it typically - // defaults to registry.redhat.io. - // +patchMergeKey=type - // +patchStrategy=merge - optional string samplesRegistry = 3; - - // architectures determine which hardware architecture(s) to install, where x86_64 and ppc64le are the - // supported choices. - // +patchMergeKey=type - // +patchStrategy=merge - repeated string architectures = 5; - - // skippedImagestreams specifies names of image streams that should NOT be - // created/updated. Admins can use this to allow them to delete content - // they don’t want. They will still have to manually delete the - // content but the operator will not recreate(or update) anything - // listed here. - // +patchMergeKey=type - // +patchStrategy=merge - repeated string skippedImagestreams = 6; - - // skippedTemplates specifies names of templates that should NOT be - // created/updated. Admins can use this to allow them to delete content - // they don’t want. They will still have to manually delete the - // content but the operator will not recreate(or update) anything - // listed here. - // +patchMergeKey=type - // +patchStrategy=merge - repeated string skippedTemplates = 7; - - // version is the value of the operator's payload based version indicator when it was last successfully processed - // +patchMergeKey=type - // +patchStrategy=merge - optional string version = 8; -} -