diff options
Diffstat (limited to 'pkg/apis/k8s')
-rw-r--r-- | pkg/apis/k8s/v1alpha1/providernetwork_types.go | 9 | ||||
-rw-r--r-- | pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go | 40 | ||||
-rw-r--r-- | pkg/apis/k8s/v1alpha1/zz_generated.openapi.go | 167 |
3 files changed, 167 insertions, 49 deletions
diff --git a/pkg/apis/k8s/v1alpha1/providernetwork_types.go b/pkg/apis/k8s/v1alpha1/providernetwork_types.go index 573a107..e404575 100644 --- a/pkg/apis/k8s/v1alpha1/providernetwork_types.go +++ b/pkg/apis/k8s/v1alpha1/providernetwork_types.go @@ -19,7 +19,8 @@ type ProviderNetworkSpec struct { DNS DnsSpec `json:"dns,omitempty"` Routes []Route `json:"routes,omitempty"` ProviderNetType string `json:"providerNetType"` - Vlan VlanSpec `json:"vlan"` // For now VLAN is the only supported type + Vlan VlanSpec `json:"vlan,omitempty"` // For now VLAN & Direct only supported type + Direct DirectSpec `json:"direct,omitempty"` } type VlanSpec struct { @@ -30,6 +31,12 @@ type VlanSpec struct { LogicalInterfaceName string `json:"logicalInterfaceName,omitempty"` } +type DirectSpec struct { + DirectNodeSelector string `json:"directNodeSelector"` // "all"/"any"(in which case a node will be randomly selected)/"specific"(see below) + NodeLabelList []string `json:"nodeLabelList,omitempty"` // if DirectNodeSelector is value "specific" then this array provides a list of nodes labels + ProviderInterfaceName string `json:"providerInterfaceName"` +} + // ProviderNetworkStatus defines the observed state of ProviderNetwork // +k8s:openapi-gen=true type ProviderNetworkStatus struct { diff --git a/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go index cf716cd..49cc157 100644 --- a/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go @@ -1,22 +1,6 @@ // +build !ignore_autogenerated -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by deepcopy-gen. DO NOT EDIT. +// Code generated by operator-sdk. DO NOT EDIT. package v1alpha1 @@ -25,6 +9,27 @@ import ( ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DirectSpec) DeepCopyInto(out *DirectSpec) { + *out = *in + if in.NodeLabelList != nil { + in, out := &in.NodeLabelList, &out.NodeLabelList + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DirectSpec. +func (in *DirectSpec) DeepCopy() *DirectSpec { + if in == nil { + return nil + } + out := new(DirectSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DnsSpec) DeepCopyInto(out *DnsSpec) { *out = *in if in.Nameservers != nil { @@ -355,6 +360,7 @@ func (in *ProviderNetworkSpec) DeepCopyInto(out *ProviderNetworkSpec) { copy(*out, *in) } in.Vlan.DeepCopyInto(&out.Vlan) + in.Direct.DeepCopyInto(&out.Direct) return } diff --git a/pkg/apis/k8s/v1alpha1/zz_generated.openapi.go b/pkg/apis/k8s/v1alpha1/zz_generated.openapi.go index 7343285..6e4ef6c 100644 --- a/pkg/apis/k8s/v1alpha1/zz_generated.openapi.go +++ b/pkg/apis/k8s/v1alpha1/zz_generated.openapi.go @@ -1,4 +1,4 @@ -// +build ! +// +build !ignore_autogenerated // This file was autogenerated by openapi-gen. Do not edit it manually! @@ -11,12 +11,15 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.Network": schema_pkg_apis_k8s_v1alpha1_Network(ref), - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.NetworkSpec": schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref), - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.NetworkStatus": schema_pkg_apis_k8s_v1alpha1_NetworkStatus(ref), - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetwork": schema_pkg_apis_k8s_v1alpha1_ProviderNetwork(ref), - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetworkSpec": schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref), - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetworkStatus": schema_pkg_apis_k8s_v1alpha1_ProviderNetworkStatus(ref), + "./pkg/apis/k8s/v1alpha1.Network": schema_pkg_apis_k8s_v1alpha1_Network(ref), + "./pkg/apis/k8s/v1alpha1.NetworkChaining": schema_pkg_apis_k8s_v1alpha1_NetworkChaining(ref), + "./pkg/apis/k8s/v1alpha1.NetworkChainingSpec": schema_pkg_apis_k8s_v1alpha1_NetworkChainingSpec(ref), + "./pkg/apis/k8s/v1alpha1.NetworkChainingStatus": schema_pkg_apis_k8s_v1alpha1_NetworkChainingStatus(ref), + "./pkg/apis/k8s/v1alpha1.NetworkSpec": schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref), + "./pkg/apis/k8s/v1alpha1.NetworkStatus": schema_pkg_apis_k8s_v1alpha1_NetworkStatus(ref), + "./pkg/apis/k8s/v1alpha1.ProviderNetwork": schema_pkg_apis_k8s_v1alpha1_ProviderNetwork(ref), + "./pkg/apis/k8s/v1alpha1.ProviderNetworkSpec": schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref), + "./pkg/apis/k8s/v1alpha1.ProviderNetworkStatus": schema_pkg_apis_k8s_v1alpha1_ProviderNetworkStatus(ref), } } @@ -25,17 +28,18 @@ func schema_pkg_apis_k8s_v1alpha1_Network(ref common.ReferenceCallback) common.O Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "Network is the Schema for the networks API", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { SchemaProps: spec.SchemaProps{ - 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/api-conventions.md#types-kinds", + 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{"string"}, Format: "", }, }, "apiVersion": { SchemaProps: spec.SchemaProps{ - 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/api-conventions.md#resources", + 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{"string"}, Format: "", }, @@ -47,19 +51,111 @@ func schema_pkg_apis_k8s_v1alpha1_Network(ref common.ReferenceCallback) common.O }, "spec": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.NetworkSpec"), + Ref: ref("./pkg/apis/k8s/v1alpha1.NetworkSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.NetworkStatus"), + Ref: ref("./pkg/apis/k8s/v1alpha1.NetworkStatus"), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.NetworkSpec", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.NetworkStatus"}, + "./pkg/apis/k8s/v1alpha1.NetworkSpec", "./pkg/apis/k8s/v1alpha1.NetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_pkg_apis_k8s_v1alpha1_NetworkChaining(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkChaining is the Schema for the networkchainings API", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Ref: ref("./pkg/apis/k8s/v1alpha1.NetworkChainingSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Ref: ref("./pkg/apis/k8s/v1alpha1.NetworkChainingStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "./pkg/apis/k8s/v1alpha1.NetworkChainingSpec", "./pkg/apis/k8s/v1alpha1.NetworkChainingStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_pkg_apis_k8s_v1alpha1_NetworkChainingSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkChainingSpec defines the desired state of NetworkChaining", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "chainType": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "routingSpec": { + SchemaProps: spec.SchemaProps{ + Description: "Currently only Routing type is supported", + Ref: ref("./pkg/apis/k8s/v1alpha1.RouteSpec"), + }, + }, + }, + Required: []string{"chainType", "routingSpec"}, + }, + }, + Dependencies: []string{ + "./pkg/apis/k8s/v1alpha1.RouteSpec"}, + } +} + +func schema_pkg_apis_k8s_v1alpha1_NetworkChainingStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkChainingStatus defines the observed state of NetworkChaining", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "state": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"state"}, + }, + }, } } @@ -68,6 +164,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref common.ReferenceCallback) comm Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "NetworkSpec defines the desired state of Network", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "cniType": { SchemaProps: spec.SchemaProps{ @@ -82,7 +179,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref common.ReferenceCallback) comm Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.IpSubnet"), + Ref: ref("./pkg/apis/k8s/v1alpha1.IpSubnet"), }, }, }, @@ -94,7 +191,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref common.ReferenceCallback) comm Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.IpSubnet"), + Ref: ref("./pkg/apis/k8s/v1alpha1.IpSubnet"), }, }, }, @@ -102,7 +199,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref common.ReferenceCallback) comm }, "dns": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.DnsSpec"), + Ref: ref("./pkg/apis/k8s/v1alpha1.DnsSpec"), }, }, "routes": { @@ -111,7 +208,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref common.ReferenceCallback) comm Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.Route"), + Ref: ref("./pkg/apis/k8s/v1alpha1.Route"), }, }, }, @@ -122,7 +219,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkSpec(ref common.ReferenceCallback) comm }, }, Dependencies: []string{ - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.DnsSpec", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.IpSubnet", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.Route"}, + "./pkg/apis/k8s/v1alpha1.DnsSpec", "./pkg/apis/k8s/v1alpha1.IpSubnet", "./pkg/apis/k8s/v1alpha1.Route"}, } } @@ -131,6 +228,7 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkStatus(ref common.ReferenceCallback) co Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "NetworkStatus defines the observed state of Network", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "state": { SchemaProps: spec.SchemaProps{ @@ -143,7 +241,6 @@ func schema_pkg_apis_k8s_v1alpha1_NetworkStatus(ref common.ReferenceCallback) co Required: []string{"state"}, }, }, - Dependencies: []string{}, } } @@ -152,17 +249,18 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetwork(ref common.ReferenceCallback) Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "ProviderNetwork is the Schema for the providernetworks API", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { SchemaProps: spec.SchemaProps{ - 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/api-conventions.md#types-kinds", + 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{"string"}, Format: "", }, }, "apiVersion": { SchemaProps: spec.SchemaProps{ - 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/api-conventions.md#resources", + 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{"string"}, Format: "", }, @@ -174,19 +272,19 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetwork(ref common.ReferenceCallback) }, "spec": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetworkSpec"), + Ref: ref("./pkg/apis/k8s/v1alpha1.ProviderNetworkSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetworkStatus"), + Ref: ref("./pkg/apis/k8s/v1alpha1.ProviderNetworkStatus"), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetworkSpec", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.ProviderNetworkStatus"}, + "./pkg/apis/k8s/v1alpha1.ProviderNetworkSpec", "./pkg/apis/k8s/v1alpha1.ProviderNetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } @@ -195,6 +293,7 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref common.ReferenceCallba Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "ProviderNetworkSpec defines the desired state of ProviderNetwork", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "cniType": { SchemaProps: spec.SchemaProps{ @@ -209,7 +308,7 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref common.ReferenceCallba Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.IpSubnet"), + Ref: ref("./pkg/apis/k8s/v1alpha1.IpSubnet"), }, }, }, @@ -221,7 +320,7 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref common.ReferenceCallba Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.IpSubnet"), + Ref: ref("./pkg/apis/k8s/v1alpha1.IpSubnet"), }, }, }, @@ -229,7 +328,7 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref common.ReferenceCallba }, "dns": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.DnsSpec"), + Ref: ref("./pkg/apis/k8s/v1alpha1.DnsSpec"), }, }, "routes": { @@ -238,7 +337,7 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref common.ReferenceCallba Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.Route"), + Ref: ref("./pkg/apis/k8s/v1alpha1.Route"), }, }, }, @@ -252,15 +351,21 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkSpec(ref common.ReferenceCallba }, "vlan": { SchemaProps: spec.SchemaProps{ - Ref: ref("ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.VlanSpec"), + Ref: ref("./pkg/apis/k8s/v1alpha1.VlanSpec"), + }, + }, + "direct": { + SchemaProps: spec.SchemaProps{ + Description: "For now VLAN & Direct only supported type", + Ref: ref("./pkg/apis/k8s/v1alpha1.DirectSpec"), }, }, }, - Required: []string{"cniType", "ipv4Subnets", "providerNetType", "vlan"}, + Required: []string{"cniType", "ipv4Subnets", "providerNetType"}, }, }, Dependencies: []string{ - "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.DnsSpec", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.IpSubnet", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.Route", "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1.VlanSpec"}, + "./pkg/apis/k8s/v1alpha1.DirectSpec", "./pkg/apis/k8s/v1alpha1.DnsSpec", "./pkg/apis/k8s/v1alpha1.IpSubnet", "./pkg/apis/k8s/v1alpha1.Route", "./pkg/apis/k8s/v1alpha1.VlanSpec"}, } } @@ -269,6 +374,7 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkStatus(ref common.ReferenceCall Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "ProviderNetworkStatus defines the observed state of ProviderNetwork", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "state": { SchemaProps: spec.SchemaProps{ @@ -281,6 +387,5 @@ func schema_pkg_apis_k8s_v1alpha1_ProviderNetworkStatus(ref common.ReferenceCall Required: []string{"state"}, }, }, - Dependencies: []string{}, } } |