diff --git a/README.md b/README.md index 557b29d9b..0c7f488e1 100644 --- a/README.md +++ b/README.md @@ -90,9 +90,9 @@ Multus is compatible to work with both CRD and TPR(deprecated in K8s 1.7). apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: - name: network-attachment-definitions.kubernetes.cni.cncf.io + name: network-attachment-definitions.k8s.cni.cncf.io spec: - group: kubernetes.cni.cncf.io + group: k8s.cni.cncf.io version: v1 scope: Namespaced names: @@ -112,19 +112,19 @@ spec: 2. Run kubectl create command for the Custom Resource Definition ``` # kubectl create -f ./crdnetwork.yaml -customresourcedefinition "networks.kubernetes.cni.cncf.io" created +customresourcedefinition "network-attachment-definitions.k8s.cni.cncf.io" created ``` 3. Run kubectl get command to check the Network CRD creation ``` # kubectl get CustomResourceDefinition NAME KIND -networks.kubernetes.cni.cncf.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io +network-attachment-definitions.k8s.cni.cncf.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io ``` For Kubernetes v1.7 and above use CRD to create network object. For version older than 1.7 use TPR based objects as shown below: Note: Both TPR and CRD will have same selfLink : -*/apis/kubernetes.cni.cncf.io/v1/namespaces/default/networks/* +*/apis/k8s.cni.cncf.io/v1/namespaces/default/network-attachment-definitions/* #### TPR based Network objects @@ -135,7 +135,7 @@ Note: Both TPR and CRD will have same selfLink : apiVersion: extensions/v1beta1 kind: ThirdPartyResource metadata: - name: network.kubernetes.cni.cncf.io + name: network-attachment-definition.k8s.cni.cncf.io description: "A specification of a Network obj in the kubernetes" versions: - name: v1 @@ -145,13 +145,13 @@ versions: ``` # kubectl create -f ./tprnetwork.yaml -thirdpartyresource "network.kubernetes.cni.cncf.io" created +thirdpartyresource "network-attachment-definition.k8s.cni.cncf.io" created ``` 3. Run kubectl get command to check the Network TPR creation ``` # kubectl get thirdpartyresource NAME DESCRIPTION VERSION(S) -network.kubernetes.cni.cncf.io A specification of a Network obj in the kubernetes v1 +network-attachment-definition.k8s.cni.cncf.io A specification of a Network obj in the kubernetes v1 ``` ### Creating network resources in Kubernetes @@ -160,7 +160,7 @@ network.kubernetes.cni.cncf.io A specification of a Network obj in the kuberne 2. Save the following YAML to flannel-network.yaml ``` -apiVersion: "kubernetes.cni.cncf.io/v1" +apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: flannel-networkobj @@ -187,7 +187,7 @@ flannel-networkobj 26s ``` 4. Get the custom network object details ``` -apiVersion: kubernetes.cni.cncf.io/v1 +apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: clusterName: "" @@ -198,7 +198,7 @@ metadata: name: flannel-networkobj namespace: default resourceVersion: "21176114" - selfLink: /apis/kubernetes.cni.cncf.io/v1/namespaces/default/networks/flannel-networkobj + selfLink: /apis/k8s.cni.cncf.io/v1/namespaces/default/networks/flannel-networkobj uid: 8ac8f873-59b2-11e8-8308-a4bf01024e6f spec: config: '{ "cniVersion": "0.3.0", "type": "flannel", "delegate": { "isDefaultGateway": @@ -206,7 +206,7 @@ spec: ``` 5. Save the following YAML to sriov-network.yaml to creating sriov network object. ( Refer to [Intel - SR-IOV CNI](https://github.com/Intel-Corp/sriov-cni) or contact @kural in [Intel-Corp Slack](https://intel-corp.herokuapp.com/) for running the DPDK based workloads in Kubernetes) ``` -apiVersion: "kubernetes.cni.cncf.io/v1" +apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: sriov-conf @@ -229,7 +229,7 @@ spec: 6. Likewise save the following YAML to sriov-vlanid-l2enable-network.yaml to create another sriov based network object: ``` -apiVersion: "kubernetes.cni.cncf.io/v1" +apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: sriov-vlanid-l2enable-conf @@ -296,7 +296,7 @@ kind: Pod metadata: name: multus-multi-net-poc annotations: - kubernetes.v1.cni.cncf.io/networks: '[ + k8s.v1.cni.cncf.io/networks: '[ { "name": "flannel-conf" }, { "name": "sriov-conf" }, { "name": "sriov-vlanid-l2enable-conf", diff --git a/examples/README.md b/examples/README.md index 41e2dcb35..ebd297543 100644 --- a/examples/README.md +++ b/examples/README.md @@ -12,7 +12,7 @@ More specifically, these examples show: * Multus configured, using CNI a `.conf` file, with CRD support, specifying that we will use a "default network". * A resource definition with a daemonset that places the `.conf` on each node in the cluster. -* A CRD definining the "networks" @ `networks.kubernetes.cni.cncf.io` +* A CRD definining the "networks" @ `network-attachment-definitions.k8s.cni.cncf.io` * CRD objects containing the configuration for both Flannel & macvlan. ## Quick-start instructions diff --git a/examples/crd.yml b/examples/crd.yml index 1e8c118de..1dac3ae7a 100644 --- a/examples/crd.yml +++ b/examples/crd.yml @@ -1,9 +1,9 @@ apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: - name: network-attachment-definitions.kubernetes.cni.cncf.io + name: network-attachment-definitions.k8s.cni.cncf.io spec: - group: kubernetes.cni.cncf.io + group: k8s.cni.cncf.io version: v1 scope: Namespaced names: diff --git a/examples/flannel-conf.yml b/examples/flannel-conf.yml index ed3d86659..64b431e82 100644 --- a/examples/flannel-conf.yml +++ b/examples/flannel-conf.yml @@ -1,4 +1,4 @@ -apiVersion: "kubernetes.cni.cncf.io/v1" +apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: flannel-conf diff --git a/examples/macvlan-conf.yml b/examples/macvlan-conf.yml index c18f95512..e393dda0c 100644 --- a/examples/macvlan-conf.yml +++ b/examples/macvlan-conf.yml @@ -1,4 +1,4 @@ -apiVersion: "kubernetes.cni.cncf.io/v1" +apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: macvlan-conf diff --git a/k8sclient/k8sclient.go b/k8sclient/k8sclient.go index bcbf3e9f0..c45492a21 100644 --- a/k8sclient/k8sclient.go +++ b/k8sclient/k8sclient.go @@ -77,7 +77,7 @@ func getPodNetworkAnnotation(client KubeClient, k8sArgs types.K8sArgs) (string, return "", "", fmt.Errorf("getPodNetworkAnnotation: failed to query the pod %v in out of cluster comm: %v", string(k8sArgs.K8S_POD_NAME), err) } - return pod.Annotations["kubernetes.v1.cni.cncf.io/networks"], pod.ObjectMeta.Namespace, nil + return pod.Annotations["k8s.v1.cni.cncf.io/networks"], pod.ObjectMeta.Namespace, nil } func parsePodNetworkObjectName(podnetwork string) (string, string, string, error) { @@ -247,7 +247,7 @@ func cniConfigFromNetworkResource(customResource *types.NetworkAttachmentDefinit } func getKubernetesDelegate(client KubeClient, net *types.NetworkSelectionElement, confdir string) (*types.DelegateNetConf, error) { - rawPath := fmt.Sprintf("/apis/kubernetes.cni.cncf.io/v1/namespaces/%s/network-attachment-definitions/%s", net.Namespace, net.Name) + rawPath := fmt.Sprintf("/apis/k8s.cni.cncf.io/v1/namespaces/%s/network-attachment-definitions/%s", net.Namespace, net.Name) netData, err := client.GetRawWithPath(rawPath) if err != nil { return nil, fmt.Errorf("getKubernetesDelegate: failed to get network resource, refer Multus README.md for the usage guide: %v", err) diff --git a/testing/testing.go b/testing/testing.go index 5795254c3..8814abf42 100644 --- a/testing/testing.go +++ b/testing/testing.go @@ -52,7 +52,7 @@ func (f *FakeKubeClient) GetRawWithPath(path string) ([]byte, error) { func (f *FakeKubeClient) AddNetConfig(namespace, name, data string) { cr := fmt.Sprintf(`{ - "apiVersion": "kubernetes.cni.cncf.io/v1", + "apiVersion": "k8s.cni.cncf.io/v1", "kind": "Network", "metadata": { "namespace": "%s", @@ -64,19 +64,19 @@ func (f *FakeKubeClient) AddNetConfig(namespace, name, data string) { }`, namespace, name, strings.Replace(data, "\"", "\\\"", -1)) cr = strings.Replace(cr, "\n", "", -1) cr = strings.Replace(cr, "\t", "", -1) - f.nets[fmt.Sprintf("/apis/kubernetes.cni.cncf.io/v1/namespaces/%s/network-attachment-definitions/%s", namespace, name)] = cr + f.nets[fmt.Sprintf("/apis/k8s.cni.cncf.io/v1/namespaces/%s/network-attachment-definitions/%s", namespace, name)] = cr } func (f *FakeKubeClient) AddNetFile(namespace, name, filePath, fileData string) { cr := fmt.Sprintf(`{ - "apiVersion": "kubernetes.cni.cncf.io/v1", + "apiVersion": "k8s.cni.cncf.io/v1", "kind": "Network", "metadata": { "namespace": "%s", "name": "%s" } }`, namespace, name) - f.nets[fmt.Sprintf("/apis/kubernetes.cni.cncf.io/v1/namespaces/%s/network-attachment-definitions/%s", namespace, name)] = cr + f.nets[fmt.Sprintf("/apis/k8s.cni.cncf.io/v1/namespaces/%s/network-attachment-definitions/%s", namespace, name)] = cr err := ioutil.WriteFile(filePath, []byte(fileData), 0600) Expect(err).NotTo(HaveOccurred()) @@ -113,7 +113,7 @@ func NewFakePod(name string, netAnnotation string) *v1.Pod { netAnnotation = strings.Replace(netAnnotation, "\n", "", -1) netAnnotation = strings.Replace(netAnnotation, "\t", "", -1) pod.ObjectMeta.Annotations = map[string]string{ - "kubernetes.v1.cni.cncf.io/networks": netAnnotation, + "k8s.v1.cni.cncf.io/networks": netAnnotation, } } return pod