Skip to content

Commit b708889

Browse files
Releases 1.1.0 (#54)
New Features: - Added Site CRD - Added Allocation CRD - Added Subnet CRD Improvements: - Disabling CalicoWatcher when Calico CNI not detected - Added */finalizers resource for all CRDs' RBAC Bug Fixes: - Fixed finalizers names for all CRDs - Minor fixes and linter warnings fixes Co-authored-by: Artashes Balabekyan <[email protected]>
1 parent 745a016 commit b708889

9 files changed

+751
-3
lines changed

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:experimental
22
# Build the manager binary
3-
FROM golang:1.16 as builder
3+
FROM golang:1.17 as builder
44

55
WORKDIR /workspace
66

deploy/charts/netris-operator/Chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.4.3
18+
version: 0.5.0
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to
2222
# follow Semantic Versioning. They should reflect the version the application is using.
23-
appVersion: v1.0.3
23+
appVersion: v1.1.0
2424
home: https://github.com/netrisai/netris-operator
2525
icon: https://www.netris.ai/wp-content/uploads/2021/01/logo-300.png # [todo] Change url to permalink
2626
keywords:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
---
3+
apiVersion: apiextensions.k8s.io/v1
4+
kind: CustomResourceDefinition
5+
metadata:
6+
annotations:
7+
controller-gen.kubebuilder.io/version: v0.6.1
8+
creationTimestamp: null
9+
name: allocationmeta.k8s.netris.ai
10+
spec:
11+
group: k8s.netris.ai
12+
names:
13+
kind: AllocationMeta
14+
listKind: AllocationMetaList
15+
plural: allocationmeta
16+
singular: allocationmeta
17+
scope: Namespaced
18+
versions:
19+
- name: v1alpha1
20+
schema:
21+
openAPIV3Schema:
22+
description: AllocationMeta is the Schema for the allocationmeta API
23+
properties:
24+
apiVersion:
25+
description: 'APIVersion defines the versioned schema of this representation
26+
of an object. Servers should convert recognized schemas to the latest
27+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
28+
type: string
29+
kind:
30+
description: 'Kind is a string value representing the REST resource this
31+
object represents. Servers may infer this from the endpoint the client
32+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
33+
type: string
34+
metadata:
35+
type: object
36+
spec:
37+
description: AllocationMetaSpec defines the desired state of AllocationMeta
38+
properties:
39+
allocationGeneration:
40+
format: int64
41+
type: integer
42+
allocationName:
43+
type: string
44+
id:
45+
type: integer
46+
imported:
47+
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
48+
Important: Run "make" to regenerate code after modifying this file'
49+
type: boolean
50+
prefix:
51+
type: string
52+
reclaimPolicy:
53+
type: boolean
54+
tenant:
55+
type: string
56+
required:
57+
- allocationGeneration
58+
- allocationName
59+
- id
60+
- imported
61+
- prefix
62+
- reclaimPolicy
63+
- tenant
64+
type: object
65+
status:
66+
description: AllocationMetaStatus defines the observed state of AllocationMeta
67+
type: object
68+
type: object
69+
served: true
70+
storage: true
71+
subresources:
72+
status: {}
73+
status:
74+
acceptedNames:
75+
kind: ""
76+
plural: ""
77+
conditions: []
78+
storedVersions: []
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
2+
---
3+
apiVersion: apiextensions.k8s.io/v1
4+
kind: CustomResourceDefinition
5+
metadata:
6+
annotations:
7+
controller-gen.kubebuilder.io/version: v0.6.1
8+
creationTimestamp: null
9+
name: allocations.k8s.netris.ai
10+
spec:
11+
group: k8s.netris.ai
12+
names:
13+
kind: Allocation
14+
listKind: AllocationList
15+
plural: allocations
16+
singular: allocation
17+
scope: Namespaced
18+
versions:
19+
- additionalPrinterColumns:
20+
- jsonPath: .spec.prefix
21+
name: Prefix
22+
type: string
23+
- jsonPath: .spec.tenant
24+
name: Tenant
25+
type: string
26+
- jsonPath: .status.status
27+
name: Status
28+
type: string
29+
- jsonPath: .metadata.creationTimestamp
30+
name: Age
31+
type: date
32+
name: v1alpha1
33+
schema:
34+
openAPIV3Schema:
35+
description: Allocation is the Schema for the allocations API
36+
properties:
37+
apiVersion:
38+
description: 'APIVersion defines the versioned schema of this representation
39+
of an object. Servers should convert recognized schemas to the latest
40+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
41+
type: string
42+
kind:
43+
description: 'Kind is a string value representing the REST resource this
44+
object represents. Servers may infer this from the endpoint the client
45+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
46+
type: string
47+
metadata:
48+
type: object
49+
spec:
50+
description: AllocationSpec defines the desired state of Allocation
51+
properties:
52+
prefix:
53+
pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[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|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$)
54+
type: string
55+
tenant:
56+
type: string
57+
required:
58+
- prefix
59+
- tenant
60+
type: object
61+
status:
62+
description: AllocationStatus defines the observed state of Allocation
63+
properties:
64+
message:
65+
type: string
66+
status:
67+
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
68+
of cluster Important: Run "make" to regenerate code after modifying
69+
this file'
70+
type: string
71+
type: object
72+
type: object
73+
served: true
74+
storage: true
75+
subresources:
76+
status: {}
77+
status:
78+
acceptedNames:
79+
kind: ""
80+
plural: ""
81+
conditions: []
82+
storedVersions: []
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
2+
---
3+
apiVersion: apiextensions.k8s.io/v1
4+
kind: CustomResourceDefinition
5+
metadata:
6+
annotations:
7+
controller-gen.kubebuilder.io/version: v0.6.1
8+
creationTimestamp: null
9+
name: sitemeta.k8s.netris.ai
10+
spec:
11+
group: k8s.netris.ai
12+
names:
13+
kind: SiteMeta
14+
listKind: SiteMetaList
15+
plural: sitemeta
16+
singular: sitemeta
17+
scope: Namespaced
18+
versions:
19+
- name: v1alpha1
20+
schema:
21+
openAPIV3Schema:
22+
description: SiteMeta is the Schema for the sitemeta API
23+
properties:
24+
apiVersion:
25+
description: 'APIVersion defines the versioned schema of this representation
26+
of an object. Servers should convert recognized schemas to the latest
27+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
28+
type: string
29+
kind:
30+
description: 'Kind is a string value representing the REST resource this
31+
object represents. Servers may infer this from the endpoint the client
32+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
33+
type: string
34+
metadata:
35+
type: object
36+
spec:
37+
description: SiteMetaSpec defines the desired state of SiteMeta
38+
properties:
39+
aclDefaultPolicy:
40+
type: string
41+
id:
42+
type: integer
43+
imported:
44+
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
45+
Important: Run "make" to regenerate code after modifying this file'
46+
type: boolean
47+
publicAsn:
48+
type: integer
49+
reclaimPolicy:
50+
type: boolean
51+
rohAsn:
52+
type: integer
53+
rohRoutingProfile:
54+
type: integer
55+
siteGeneration:
56+
format: int64
57+
type: integer
58+
siteMesh:
59+
type: string
60+
siteName:
61+
type: string
62+
vmAsn:
63+
type: integer
64+
required:
65+
- aclDefaultPolicy
66+
- id
67+
- imported
68+
- publicAsn
69+
- reclaimPolicy
70+
- rohAsn
71+
- rohRoutingProfile
72+
- siteGeneration
73+
- siteMesh
74+
- siteName
75+
- vmAsn
76+
type: object
77+
status:
78+
description: SiteMetaStatus defines the observed state of SiteMeta
79+
type: object
80+
type: object
81+
served: true
82+
storage: true
83+
subresources:
84+
status: {}
85+
status:
86+
acceptedNames:
87+
kind: ""
88+
plural: ""
89+
conditions: []
90+
storedVersions: []
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
2+
---
3+
apiVersion: apiextensions.k8s.io/v1
4+
kind: CustomResourceDefinition
5+
metadata:
6+
annotations:
7+
controller-gen.kubebuilder.io/version: v0.6.1
8+
creationTimestamp: null
9+
name: sites.k8s.netris.ai
10+
spec:
11+
group: k8s.netris.ai
12+
names:
13+
kind: Site
14+
listKind: SiteList
15+
plural: sites
16+
singular: site
17+
scope: Namespaced
18+
versions:
19+
- additionalPrinterColumns:
20+
- jsonPath: .spec.publicAsn
21+
name: Public ASN
22+
type: integer
23+
- jsonPath: .spec.rohAsn
24+
name: ROH ASN
25+
type: integer
26+
- jsonPath: .spec.vmAsn
27+
name: VM ASN
28+
type: integer
29+
- jsonPath: .spec.rohRoutingProfile
30+
name: ROH Routing Profile
31+
type: string
32+
- jsonPath: .spec.siteMesh
33+
name: Site Mesh
34+
type: string
35+
- jsonPath: .spec.aclDefaultPolicy
36+
name: ACL Default Policy
37+
type: string
38+
- jsonPath: .status.status
39+
name: Status
40+
type: string
41+
- jsonPath: .metadata.creationTimestamp
42+
name: Age
43+
type: date
44+
name: v1alpha1
45+
schema:
46+
openAPIV3Schema:
47+
description: Site is the Schema for the sites API
48+
properties:
49+
apiVersion:
50+
description: 'APIVersion defines the versioned schema of this representation
51+
of an object. Servers should convert recognized schemas to the latest
52+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
53+
type: string
54+
kind:
55+
description: 'Kind is a string value representing the REST resource this
56+
object represents. Servers may infer this from the endpoint the client
57+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
58+
type: string
59+
metadata:
60+
type: object
61+
spec:
62+
description: SiteSpec defines the desired state of Site
63+
properties:
64+
aclDefaultPolicy:
65+
enum:
66+
- permit
67+
- deny
68+
type: string
69+
publicAsn:
70+
maximum: 65534
71+
minimum: 0
72+
type: integer
73+
rohAsn:
74+
maximum: 65534
75+
minimum: 0
76+
type: integer
77+
rohRoutingProfile:
78+
enum:
79+
- default
80+
- default_agg
81+
- full
82+
type: string
83+
siteMesh:
84+
enum:
85+
- disabled
86+
- hub
87+
- spoke
88+
- dspoke
89+
type: string
90+
vmAsn:
91+
maximum: 65534
92+
minimum: 0
93+
type: integer
94+
required:
95+
- aclDefaultPolicy
96+
- publicAsn
97+
- rohAsn
98+
- rohRoutingProfile
99+
- siteMesh
100+
- vmAsn
101+
type: object
102+
status:
103+
description: SiteStatus defines the observed state of Site
104+
properties:
105+
message:
106+
type: string
107+
status:
108+
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
109+
of cluster Important: Run "make" to regenerate code after modifying
110+
this file'
111+
type: string
112+
type: object
113+
type: object
114+
served: true
115+
storage: true
116+
subresources:
117+
status: {}
118+
status:
119+
acceptedNames:
120+
kind: ""
121+
plural: ""
122+
conditions: []
123+
storedVersions: []

0 commit comments

Comments
 (0)