Add Provider Network CRD controller
[ovn4nfv-k8s-plugin.git] / deploy / crds / k8s_v1alpha1_providernetwork_crd.yaml
1 apiVersion: apiextensions.k8s.io/v1beta1
2 kind: CustomResourceDefinition
3 metadata:
4   name: providernetworks.k8s.plugin.opnfv.org
5 spec:
6   group: k8s.plugin.opnfv.org
7   names:
8     kind: ProviderNetwork
9     listKind: ProviderNetworkList
10     plural: providernetworks
11     singular: providernetwork
12   scope: Namespaced
13   subresources:
14     status: {}
15   validation:
16     openAPIV3Schema:
17       properties:
18         apiVersion:
19           description: 'APIVersion defines the versioned schema of this representation
20             of an object. Servers should convert recognized schemas to the latest
21             internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
22           type: string
23         kind:
24           description: 'Kind is a string value representing the REST resource this
25             object represents. Servers may infer this from the endpoint the client
26             submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
27           type: string
28         metadata:
29           type: object
30         spec:
31           properties:
32             cniType:
33               description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
34                 Important: Run "operator-sdk generate k8s" to regenerate code after
35                 modifying this file Add custom validation using kubebuilder tags:
36                 https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html'
37               type: string
38             dns:
39               properties:
40                 domain:
41                   type: string
42                 nameservers:
43                   items:
44                     type: string
45                   type: array
46                 options:
47                   items:
48                     type: string
49                   type: array
50                 search:
51                   items:
52                     type: string
53                   type: array
54               type: object
55             ipv4Subnets:
56               items:
57                 properties:
58                   excludeIps:
59                     type: string
60                   gateway:
61                     type: string
62                   name:
63                     type: string
64                   subnet:
65                     type: string
66                 required:
67                 - name
68                 - subnet
69                 type: object
70               type: array
71             ipv6Subnets:
72               items:
73                 properties:
74                   excludeIps:
75                     type: string
76                   gateway:
77                     type: string
78                   name:
79                     type: string
80                   subnet:
81                     type: string
82                 required:
83                 - name
84                 - subnet
85                 type: object
86               type: array
87             providerNetType:
88               type: string
89             routes:
90               items:
91                 properties:
92                   dst:
93                     type: string
94                   gw:
95                     type: string
96                 required:
97                 - dst
98                 type: object
99               type: array
100             vlan:
101               properties:
102                 logicalInterfaceName:
103                   type: string
104                 nodeLabelList:
105                   description: '"all"/"any"(in which case a node will be randomly
106                     selected)/"specific"(see below)'
107                   items:
108                     type: string
109                   type: array
110                 providerInterfaceName:
111                   description: if VlanNodeSelector is value "specific" then this array
112                     provides a list of nodes labels
113                   type: string
114                 vlanId:
115                   type: string
116                 vlanNodeSelector:
117                   type: string
118               required:
119               - vlanId
120               - vlanNodeSelector
121               - providerInterfaceName
122               type: object
123           required:
124           - cniType
125           - ipv4Subnets
126           - providerNetType
127           - vlan
128           type: object
129         status:
130           properties:
131             state:
132               description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
133                 of cluster Important: Run "operator-sdk generate k8s" to regenerate
134                 code after modifying this file Add custom validation using kubebuilder
135                 tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html'
136               type: string
137           required:
138           - state
139           type: object
140   version: v1alpha1
141   versions:
142   - name: v1alpha1
143     served: true
144     storage: true