// Copyright (c) 2017 Intel Corporation // // 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. // package types import ( "net" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/containernetworking/cni/pkg/types" ) // NetConf for cni config file written in json type NetConf struct { types.NetConf CNIDir string `json:"cniDir"` Delegates []map[string]interface{} `json:"delegates"` Kubeconfig string `json:"kubeconfig"` UseDefault bool `json:"always_use_default"` } type Netplugin struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata"` Plugin string `json:"plugin"` Args string `json:"args"` } // K8sArgs is the valid CNI_ARGS used for Kubernetes type K8sArgs struct { types.CommonArgs IP net.IP K8S_POD_NAME types.UnmarshallableString K8S_POD_NAMESPACE types.UnmarshallableString K8S_POD_INFRA_CONTAINER_ID types.UnmarshallableString }