Integrate Nokia/danm CNI into IEC
[iec.git] / src / foundation / scripts / cni / danm / integration / crds / lightweight / DanmNet.yaml
1 # yamllint disable rule:hyphens rule:commas rule:indentation rule:line-length
2 apiVersion: apiextensions.k8s.io/v1beta1
3 kind: CustomResourceDefinition
4 metadata:
5   name: danmnets.danm.k8s.io
6 spec:
7   scope: Namespaced
8   group: danm.k8s.io
9   version: v1
10   names:
11     kind: DanmNet
12     plural: danmnets
13     singular: danmnet
14     shortNames:
15     - dn
16     - dnet
17   validation:
18     openAPIV3Schema:
19       properties:
20         spec:
21           properties:
22             NetworkID:
23               type: string
24             NetworkType:
25               type: string
26             Options:
27               properties:
28                 cidr:
29                   type: string
30                   pattern: '^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))$'
31                 allocation_pool:
32                   properties:
33                     start:
34                       type: string
35                       pattern: '(^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$)?'
36                     end:
37                       type: string
38                       pattern: '(^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$)?'
39                 container_prefix:
40                   type: string
41                 host_device:
42                   type: string
43                 device_pool:
44                   type: string
45                 vxlan:
46                   type: integer
47                   format: int32
48                   minimum: 1
49                   maximum: 16777214
50                 vlan:
51                   type: integer
52                   format: int32
53                   minimum: 1
54                   maximum: 4094
55                 rt_tables:
56                   type: integer
57                   format: int32
58                   minimum: 0
59                   maximum: 255
60                 net6:
61                   type: string
62                   pattern: '^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))$'
63                 routes:
64                   type: object
65                 routes6:
66                   type: object