aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/apis/k8s/v1alpha1/network_types.go2
-rw-r--r--pkg/apis/k8s/v1alpha1/networkchaining_types.go66
-rw-r--r--pkg/apis/k8s/v1alpha1/providernetwork_types.go1
-rw-r--r--pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go136
-rw-r--r--pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go4
-rw-r--r--pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go141
-rw-r--r--pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go2
-rw-r--r--pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go9
-rw-r--r--pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go191
-rw-r--r--pkg/generated/informers/externalversions/generic.go2
-rw-r--r--pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go7
-rw-r--r--pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go89
-rw-r--r--pkg/generated/listers/k8s/v1alpha1/expansion_generated.go8
-rw-r--r--pkg/generated/listers/k8s/v1alpha1/networkchaining.go95
14 files changed, 749 insertions, 4 deletions
diff --git a/pkg/apis/k8s/v1alpha1/network_types.go b/pkg/apis/k8s/v1alpha1/network_types.go
index a606dbb..0372eb4 100644
--- a/pkg/apis/k8s/v1alpha1/network_types.go
+++ b/pkg/apis/k8s/v1alpha1/network_types.go
@@ -58,7 +58,7 @@ type NetworkStatus struct {
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
+// +genclient
// Network is the Schema for the networks API
// +k8s:openapi-gen=true
// +kubebuilder:subresource:status
diff --git a/pkg/apis/k8s/v1alpha1/networkchaining_types.go b/pkg/apis/k8s/v1alpha1/networkchaining_types.go
new file mode 100644
index 0000000..59a3816
--- /dev/null
+++ b/pkg/apis/k8s/v1alpha1/networkchaining_types.go
@@ -0,0 +1,66 @@
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
+// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
+
+// NetworkChainingSpec defines the desired state of NetworkChaining
+// +k8s:openapi-gen=true
+type NetworkChainingSpec struct {
+ ChainType string `json:"chainType"` // Currently only Routing type is supported
+ RoutingSpec RouteSpec `json:"routingSpec"` // Spec for Routing type
+ // Add other Chanining mechanisms here
+}
+
+type RouteSpec struct {
+ LeftNetwork []RoutingNetwork `json:"leftNetwork"` // Info on Network on the left side
+ RightNetwork []RoutingNetwork `json:"rightNetwork"`// Info on Network on the right side
+ NetworkChain string `json:"networkChain"`// NetworkChain is a comma seprated list with format DeploymentName, middle Network Name, DeploymentName, ...
+ Namespace string `json:"namespace"` // Kubernetes namespace
+ }
+
+ type RoutingNetwork struct {
+ NetworkName string `json:"networkName"` // Name of the network
+ GatewayIP string `json:"gatewayIp"` // Gateway IP Address
+ Subnet string `json:"subnet"` // Subnet
+ }
+
+// NetworkChainingStatus defines the observed state of NetworkChaining
+// +k8s:openapi-gen=true
+type NetworkChainingStatus struct {
+ State string `json:"state"` // Indicates if Network Chain is in "created" state
+}
+
+
+// NetworkChaining is the Schema for the networkchainings API
+// +k8s:openapi-gen=true
+// +kubebuilder:subresource:status
+// +kubebuilder:resource:path=networkchainings,scope=Namespaced
+// +genclient
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+type NetworkChaining struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ Spec NetworkChainingSpec `json:"spec,omitempty"`
+ Status NetworkChainingStatus `json:"status,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// NetworkChainingList contains a list of NetworkChaining
+type NetworkChainingList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []NetworkChaining `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&NetworkChaining{}, &NetworkChainingList{})
+}
+
+
+
diff --git a/pkg/apis/k8s/v1alpha1/providernetwork_types.go b/pkg/apis/k8s/v1alpha1/providernetwork_types.go
index 3f8444f..573a107 100644
--- a/pkg/apis/k8s/v1alpha1/providernetwork_types.go
+++ b/pkg/apis/k8s/v1alpha1/providernetwork_types.go
@@ -44,6 +44,7 @@ type ProviderNetworkStatus struct {
// ProviderNetwork is the Schema for the providernetworks API
// +k8s:openapi-gen=true
// +kubebuilder:subresource:status
+// +genclient
type ProviderNetwork struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
diff --git a/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go
index 69f190e..cf716cd 100644
--- a/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go
@@ -100,6 +100,100 @@ func (in *Network) DeepCopyObject() runtime.Object {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *NetworkChaining) DeepCopyInto(out *NetworkChaining) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ out.Status = in.Status
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChaining.
+func (in *NetworkChaining) DeepCopy() *NetworkChaining {
+ if in == nil {
+ return nil
+ }
+ out := new(NetworkChaining)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *NetworkChaining) 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 *NetworkChainingList) DeepCopyInto(out *NetworkChainingList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]NetworkChaining, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChainingList.
+func (in *NetworkChainingList) DeepCopy() *NetworkChainingList {
+ if in == nil {
+ return nil
+ }
+ out := new(NetworkChainingList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *NetworkChainingList) 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 *NetworkChainingSpec) DeepCopyInto(out *NetworkChainingSpec) {
+ *out = *in
+ in.RoutingSpec.DeepCopyInto(&out.RoutingSpec)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChainingSpec.
+func (in *NetworkChainingSpec) DeepCopy() *NetworkChainingSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(NetworkChainingSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *NetworkChainingStatus) DeepCopyInto(out *NetworkChainingStatus) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChainingStatus.
+func (in *NetworkChainingStatus) DeepCopy() *NetworkChainingStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(NetworkChainingStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NetworkList) DeepCopyInto(out *NetworkList) {
*out = *in
out.TypeMeta = in.TypeMeta
@@ -307,6 +401,48 @@ func (in *Route) DeepCopy() *Route {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RouteSpec) DeepCopyInto(out *RouteSpec) {
+ *out = *in
+ if in.LeftNetwork != nil {
+ in, out := &in.LeftNetwork, &out.LeftNetwork
+ *out = make([]RoutingNetwork, len(*in))
+ copy(*out, *in)
+ }
+ if in.RightNetwork != nil {
+ in, out := &in.RightNetwork, &out.RightNetwork
+ *out = make([]RoutingNetwork, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec.
+func (in *RouteSpec) DeepCopy() *RouteSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(RouteSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RoutingNetwork) DeepCopyInto(out *RoutingNetwork) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingNetwork.
+func (in *RoutingNetwork) DeepCopy() *RoutingNetwork {
+ if in == nil {
+ return nil
+ }
+ out := new(RoutingNetwork)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VlanSpec) DeepCopyInto(out *VlanSpec) {
*out = *in
if in.NodeLabelList != nil {
diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go
index da5a09a..481177b 100644
--- a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go
+++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go
@@ -33,6 +33,10 @@ func (c *FakeK8sV1alpha1) Networks(namespace string) v1alpha1.NetworkInterface {
return &FakeNetworks{c, namespace}
}
+func (c *FakeK8sV1alpha1) NetworkChainings(namespace string) v1alpha1.NetworkChainingInterface {
+ return &FakeNetworkChainings{c, namespace}
+}
+
func (c *FakeK8sV1alpha1) ProviderNetworks(namespace string) v1alpha1.ProviderNetworkInterface {
return &FakeProviderNetworks{c, namespace}
}
diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go
new file mode 100644
index 0000000..7dce774
--- /dev/null
+++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go
@@ -0,0 +1,141 @@
+/*
+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 client-gen. DO NOT EDIT.
+
+package fake
+
+import (
+ v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1"
+
+ v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ schema "k8s.io/apimachinery/pkg/runtime/schema"
+ types "k8s.io/apimachinery/pkg/types"
+ watch "k8s.io/apimachinery/pkg/watch"
+ testing "k8s.io/client-go/testing"
+)
+
+// FakeNetworkChainings implements NetworkChainingInterface
+type FakeNetworkChainings struct {
+ Fake *FakeK8sV1alpha1
+ ns string
+}
+
+var networkchainingsResource = schema.GroupVersionResource{Group: "k8s.plugin.opnfv.org", Version: "v1alpha1", Resource: "networkchainings"}
+
+var networkchainingsKind = schema.GroupVersionKind{Group: "k8s.plugin.opnfv.org", Version: "v1alpha1", Kind: "NetworkChaining"}
+
+// Get takes name of the networkChaining, and returns the corresponding networkChaining object, and an error if there is any.
+func (c *FakeNetworkChainings) Get(name string, options v1.GetOptions) (result *v1alpha1.NetworkChaining, err error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewGetAction(networkchainingsResource, c.ns, name), &v1alpha1.NetworkChaining{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.NetworkChaining), err
+}
+
+// List takes label and field selectors, and returns the list of NetworkChainings that match those selectors.
+func (c *FakeNetworkChainings) List(opts v1.ListOptions) (result *v1alpha1.NetworkChainingList, err error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewListAction(networkchainingsResource, networkchainingsKind, c.ns, opts), &v1alpha1.NetworkChainingList{})
+
+ if obj == nil {
+ return nil, err
+ }
+
+ label, _, _ := testing.ExtractFromListOptions(opts)
+ if label == nil {
+ label = labels.Everything()
+ }
+ list := &v1alpha1.NetworkChainingList{ListMeta: obj.(*v1alpha1.NetworkChainingList).ListMeta}
+ for _, item := range obj.(*v1alpha1.NetworkChainingList).Items {
+ if label.Matches(labels.Set(item.Labels)) {
+ list.Items = append(list.Items, item)
+ }
+ }
+ return list, err
+}
+
+// Watch returns a watch.Interface that watches the requested networkChainings.
+func (c *FakeNetworkChainings) Watch(opts v1.ListOptions) (watch.Interface, error) {
+ return c.Fake.
+ InvokesWatch(testing.NewWatchAction(networkchainingsResource, c.ns, opts))
+
+}
+
+// Create takes the representation of a networkChaining and creates it. Returns the server's representation of the networkChaining, and an error, if there is any.
+func (c *FakeNetworkChainings) Create(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewCreateAction(networkchainingsResource, c.ns, networkChaining), &v1alpha1.NetworkChaining{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.NetworkChaining), err
+}
+
+// Update takes the representation of a networkChaining and updates it. Returns the server's representation of the networkChaining, and an error, if there is any.
+func (c *FakeNetworkChainings) Update(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewUpdateAction(networkchainingsResource, c.ns, networkChaining), &v1alpha1.NetworkChaining{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.NetworkChaining), err
+}
+
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *FakeNetworkChainings) UpdateStatus(networkChaining *v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewUpdateSubresourceAction(networkchainingsResource, "status", c.ns, networkChaining), &v1alpha1.NetworkChaining{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.NetworkChaining), err
+}
+
+// Delete takes name of the networkChaining and deletes it. Returns an error if one occurs.
+func (c *FakeNetworkChainings) Delete(name string, options *v1.DeleteOptions) error {
+ _, err := c.Fake.
+ Invokes(testing.NewDeleteAction(networkchainingsResource, c.ns, name), &v1alpha1.NetworkChaining{})
+
+ return err
+}
+
+// DeleteCollection deletes a collection of objects.
+func (c *FakeNetworkChainings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
+ action := testing.NewDeleteCollectionAction(networkchainingsResource, c.ns, listOptions)
+
+ _, err := c.Fake.Invokes(action, &v1alpha1.NetworkChainingList{})
+ return err
+}
+
+// Patch applies the patch and returns the patched networkChaining.
+func (c *FakeNetworkChainings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.NetworkChaining, err error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewPatchSubresourceAction(networkchainingsResource, c.ns, name, pt, data, subresources...), &v1alpha1.NetworkChaining{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.NetworkChaining), err
+}
diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go
index 5d2ad85..564c8dc 100644
--- a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go
+++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go
@@ -20,4 +20,6 @@ package v1alpha1
type NetworkExpansion interface{}
+type NetworkChainingExpansion interface{}
+
type ProviderNetworkExpansion interface{}
diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go
index 3eba88c..00c601e 100644
--- a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go
+++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go
@@ -19,7 +19,6 @@ limitations under the License.
package v1alpha1
import (
- "k8s.io/apimachinery/pkg/runtime/serializer"
v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1"
"ovn4nfv-k8s-plugin/pkg/generated/clientset/versioned/scheme"
@@ -29,6 +28,7 @@ import (
type K8sV1alpha1Interface interface {
RESTClient() rest.Interface
NetworksGetter
+ NetworkChainingsGetter
ProviderNetworksGetter
}
@@ -41,6 +41,10 @@ func (c *K8sV1alpha1Client) Networks(namespace string) NetworkInterface {
return newNetworks(c, namespace)
}
+func (c *K8sV1alpha1Client) NetworkChainings(namespace string) NetworkChainingInterface {
+ return newNetworkChainings(c, namespace)
+}
+
func (c *K8sV1alpha1Client) ProviderNetworks(namespace string) ProviderNetworkInterface {
return newProviderNetworks(c, namespace)
}
@@ -77,8 +81,7 @@ func setConfigDefaults(config *rest.Config) error {
gv := v1alpha1.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- //config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
- config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
+ config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go
new file mode 100644
index 0000000..97bba42
--- /dev/null
+++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go
@@ -0,0 +1,191 @@
+/*
+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 client-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+ v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1"
+ scheme "ovn4nfv-k8s-plugin/pkg/generated/clientset/versioned/scheme"
+ "time"
+
+ v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ types "k8s.io/apimachinery/pkg/types"
+ watch "k8s.io/apimachinery/pkg/watch"
+ rest "k8s.io/client-go/rest"
+)
+
+// NetworkChainingsGetter has a method to return a NetworkChainingInterface.
+// A group's client should implement this interface.
+type NetworkChainingsGetter interface {
+ NetworkChainings(namespace string) NetworkChainingInterface
+}
+
+// NetworkChainingInterface has methods to work with NetworkChaining resources.
+type NetworkChainingInterface interface {
+ Create(*v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error)
+ Update(*v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error)
+ UpdateStatus(*v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error)
+ Delete(name string, options *v1.DeleteOptions) error
+ DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
+ Get(name string, options v1.GetOptions) (*v1alpha1.NetworkChaining, error)
+ List(opts v1.ListOptions) (*v1alpha1.NetworkChainingList, error)
+ Watch(opts v1.ListOptions) (watch.Interface, error)
+ Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.NetworkChaining, err error)
+ NetworkChainingExpansion
+}
+
+// networkChainings implements NetworkChainingInterface
+type networkChainings struct {
+ client rest.Interface
+ ns string
+}
+
+// newNetworkChainings returns a NetworkChainings
+func newNetworkChainings(c *K8sV1alpha1Client, namespace string) *networkChainings {
+ return &networkChainings{
+ client: c.RESTClient(),
+ ns: namespace,
+ }
+}
+
+// Get takes name of the networkChaining, and returns the corresponding networkChaining object, and an error if there is any.
+func (c *networkChainings) Get(name string, options v1.GetOptions) (result *v1alpha1.NetworkChaining, err error) {
+ result = &v1alpha1.NetworkChaining{}
+ err = c.client.Get().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ Name(name).
+ VersionedParams(&options, scheme.ParameterCodec).
+ Do().
+ Into(result)
+ return
+}
+
+// List takes label and field selectors, and returns the list of NetworkChainings that match those selectors.
+func (c *networkChainings) List(opts v1.ListOptions) (result *v1alpha1.NetworkChainingList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
+ result = &v1alpha1.NetworkChainingList{}
+ err = c.client.Get().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
+ Do().
+ Into(result)
+ return
+}
+
+// Watch returns a watch.Interface that watches the requested networkChainings.
+func (c *networkChainings) Watch(opts v1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
+ opts.Watch = true
+ return c.client.Get().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
+ Watch()
+}
+
+// Create takes the representation of a networkChaining and creates it. Returns the server's representation of the networkChaining, and an error, if there is any.
+func (c *networkChainings) Create(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) {
+ result = &v1alpha1.NetworkChaining{}
+ err = c.client.Post().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ Body(networkChaining).
+ Do().
+ Into(result)
+ return
+}
+
+// Update takes the representation of a networkChaining and updates it. Returns the server's representation of the networkChaining, and an error, if there is any.
+func (c *networkChainings) Update(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) {
+ result = &v1alpha1.NetworkChaining{}
+ err = c.client.Put().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ Name(networkChaining.Name).
+ Body(networkChaining).
+ Do().
+ Into(result)
+ return
+}
+
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+
+func (c *networkChainings) UpdateStatus(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) {
+ result = &v1alpha1.NetworkChaining{}
+ err = c.client.Put().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ Name(networkChaining.Name).
+ SubResource("status").
+ Body(networkChaining).
+ Do().
+ Into(result)
+ return
+}
+
+// Delete takes name of the networkChaining and deletes it. Returns an error if one occurs.
+func (c *networkChainings) Delete(name string, options *v1.DeleteOptions) error {
+ return c.client.Delete().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ Name(name).
+ Body(options).
+ Do().
+ Error()
+}
+
+// DeleteCollection deletes a collection of objects.
+func (c *networkChainings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
+ return c.client.Delete().
+ Namespace(c.ns).
+ Resource("networkchainings").
+ VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
+ Body(options).
+ Do().
+ Error()
+}
+
+// Patch applies the patch and returns the patched networkChaining.
+func (c *networkChainings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.NetworkChaining, err error) {
+ result = &v1alpha1.NetworkChaining{}
+ err = c.client.Patch(pt).
+ Namespace(c.ns).
+ Resource("networkchainings").
+ SubResource(subresources...).
+ Name(name).
+ Body(data).
+ Do().
+ Into(result)
+ return
+}
diff --git a/pkg/generated/informers/externalversions/generic.go b/pkg/generated/informers/externalversions/generic.go
index badc74f..4579982 100644
--- a/pkg/generated/informers/externalversions/generic.go
+++ b/pkg/generated/informers/externalversions/generic.go
@@ -55,6 +55,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource
// Group=k8s.plugin.opnfv.org, Version=v1alpha1
case v1alpha1.SchemeGroupVersion.WithResource("networks"):
return &genericInformer{resource: resource.GroupResource(), informer: f.K8s().V1alpha1().Networks().Informer()}, nil
+ case v1alpha1.SchemeGroupVersion.WithResource("networkchainings"):
+ return &genericInformer{resource: resource.GroupResource(), informer: f.K8s().V1alpha1().NetworkChainings().Informer()}, nil
case v1alpha1.SchemeGroupVersion.WithResource("providernetworks"):
return &genericInformer{resource: resource.GroupResource(), informer: f.K8s().V1alpha1().ProviderNetworks().Informer()}, nil
diff --git a/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go b/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go
index cef0e40..a7d9f6d 100644
--- a/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go
+++ b/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go
@@ -26,6 +26,8 @@ import (
type Interface interface {
// Networks returns a NetworkInformer.
Networks() NetworkInformer
+ // NetworkChainings returns a NetworkChainingInformer.
+ NetworkChainings() NetworkChainingInformer
// ProviderNetworks returns a ProviderNetworkInformer.
ProviderNetworks() ProviderNetworkInformer
}
@@ -46,6 +48,11 @@ func (v *version) Networks() NetworkInformer {
return &networkInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}
+// NetworkChainings returns a NetworkChainingInformer.
+func (v *version) NetworkChainings() NetworkChainingInformer {
+ return &networkChainingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
+}
+
// ProviderNetworks returns a ProviderNetworkInformer.
func (v *version) ProviderNetworks() ProviderNetworkInformer {
return &providerNetworkInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
diff --git a/pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go b/pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go
new file mode 100644
index 0000000..70f7839
--- /dev/null
+++ b/pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go
@@ -0,0 +1,89 @@
+/*
+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 informer-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+ k8sv1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1"
+ versioned "ovn4nfv-k8s-plugin/pkg/generated/clientset/versioned"
+ internalinterfaces "ovn4nfv-k8s-plugin/pkg/generated/informers/externalversions/internalinterfaces"
+ v1alpha1 "ovn4nfv-k8s-plugin/pkg/generated/listers/k8s/v1alpha1"
+ time "time"
+
+ v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ runtime "k8s.io/apimachinery/pkg/runtime"
+ watch "k8s.io/apimachinery/pkg/watch"
+ cache "k8s.io/client-go/tools/cache"
+)
+
+// NetworkChainingInformer provides access to a shared informer and lister for
+// NetworkChainings.
+type NetworkChainingInformer interface {
+ Informer() cache.SharedIndexInformer
+ Lister() v1alpha1.NetworkChainingLister
+}
+
+type networkChainingInformer struct {
+ factory internalinterfaces.SharedInformerFactory
+ tweakListOptions internalinterfaces.TweakListOptionsFunc
+ namespace string
+}
+
+// NewNetworkChainingInformer constructs a new informer for NetworkChaining type.
+// Always prefer using an informer factory to get a shared informer instead of getting an independent
+// one. This reduces memory footprint and number of connections to the server.
+func NewNetworkChainingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
+ return NewFilteredNetworkChainingInformer(client, namespace, resyncPeriod, indexers, nil)
+}
+
+// NewFilteredNetworkChainingInformer constructs a new informer for NetworkChaining type.
+// Always prefer using an informer factory to get a shared informer instead of getting an independent
+// one. This reduces memory footprint and number of connections to the server.
+func NewFilteredNetworkChainingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
+ return cache.NewSharedIndexInformer(
+ &cache.ListWatch{
+ ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
+ if tweakListOptions != nil {
+ tweakListOptions(&options)
+ }
+ return client.K8sV1alpha1().NetworkChainings(namespace).List(options)
+ },
+ WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
+ if tweakListOptions != nil {
+ tweakListOptions(&options)
+ }
+ return client.K8sV1alpha1().NetworkChainings(namespace).Watch(options)
+ },
+ },
+ &k8sv1alpha1.NetworkChaining{},
+ resyncPeriod,
+ indexers,
+ )
+}
+
+func (f *networkChainingInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
+ return NewFilteredNetworkChainingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
+}
+
+func (f *networkChainingInformer) Informer() cache.SharedIndexInformer {
+ return f.factory.InformerFor(&k8sv1alpha1.NetworkChaining{}, f.defaultInformer)
+}
+
+func (f *networkChainingInformer) Lister() v1alpha1.NetworkChainingLister {
+ return v1alpha1.NewNetworkChainingLister(f.Informer().GetIndexer())
+}
diff --git a/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go b/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go
index 78871af..5fe0caa 100644
--- a/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go
+++ b/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go
@@ -26,6 +26,14 @@ type NetworkListerExpansion interface{}
// NetworkNamespaceLister.
type NetworkNamespaceListerExpansion interface{}
+// NetworkChainingListerExpansion allows custom methods to be added to
+// NetworkChainingLister.
+type NetworkChainingListerExpansion interface{}
+
+// NetworkChainingNamespaceListerExpansion allows custom methods to be added to
+// NetworkChainingNamespaceLister.
+type NetworkChainingNamespaceListerExpansion interface{}
+
// ProviderNetworkListerExpansion allows custom methods to be added to
// ProviderNetworkLister.
type ProviderNetworkListerExpansion interface{}
diff --git a/pkg/generated/listers/k8s/v1alpha1/networkchaining.go b/pkg/generated/listers/k8s/v1alpha1/networkchaining.go
new file mode 100644
index 0000000..cea5ac7
--- /dev/null
+++ b/pkg/generated/listers/k8s/v1alpha1/networkchaining.go
@@ -0,0 +1,95 @@
+/*
+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 lister-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+ v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1"
+
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/labels"
+ "k8s.io/client-go/tools/cache"
+)
+
+// NetworkChainingLister helps list NetworkChainings.
+type NetworkChainingLister interface {
+ // List lists all NetworkChainings in the indexer.
+ List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error)
+ // NetworkChainings returns an object that can list and get NetworkChainings.
+ NetworkChainings(namespace string) NetworkChainingNamespaceLister
+ NetworkChainingListerExpansion
+}
+
+// networkChainingLister implements the NetworkChainingLister interface.
+type networkChainingLister struct {
+ indexer cache.Indexer
+}
+
+// NewNetworkChainingLister returns a new NetworkChainingLister.
+func NewNetworkChainingLister(indexer cache.Indexer) NetworkChainingLister {
+ return &networkChainingLister{indexer: indexer}
+}
+
+// List lists all NetworkChainings in the indexer.
+func (s *networkChainingLister) List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error) {
+ err = cache.ListAll(s.indexer, selector, func(m interface{}) {
+ ret = append(ret, m.(*v1alpha1.NetworkChaining))
+ })
+ return ret, err
+}
+
+// NetworkChainings returns an object that can list and get NetworkChainings.
+func (s *networkChainingLister) NetworkChainings(namespace string) NetworkChainingNamespaceLister {
+ return networkChainingNamespaceLister{indexer: s.indexer, namespace: namespace}
+}
+
+// NetworkChainingNamespaceLister helps list and get NetworkChainings.
+type NetworkChainingNamespaceLister interface {
+ // List lists all NetworkChainings in the indexer for a given namespace.
+ List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error)
+ // Get retrieves the NetworkChaining from the indexer for a given namespace and name.
+ Get(name string) (*v1alpha1.NetworkChaining, error)
+ NetworkChainingNamespaceListerExpansion
+}
+
+// networkChainingNamespaceLister implements the NetworkChainingNamespaceLister
+// interface.
+type networkChainingNamespaceLister struct {
+ indexer cache.Indexer
+ namespace string
+}
+
+// List lists all NetworkChainings in the indexer for a given namespace.
+func (s networkChainingNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error) {
+ err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
+ ret = append(ret, m.(*v1alpha1.NetworkChaining))
+ })
+ return ret, err
+}
+
+// Get retrieves the NetworkChaining from the indexer for a given namespace and name.
+func (s networkChainingNamespaceLister) Get(name string) (*v1alpha1.NetworkChaining, error) {
+ obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
+ if err != nil {
+ return nil, err
+ }
+ if !exists {
+ return nil, errors.NewNotFound(v1alpha1.Resource("networkchaining"), name)
+ }
+ return obj.(*v1alpha1.NetworkChaining), nil
+}