From b708889b8a92036e6f2a2715ff3fdfac510aedfb Mon Sep 17 00:00:00 2001 From: Gor <37933026+pogossian@users.noreply.github.com> Date: Wed, 2 Feb 2022 16:48:55 +0400 Subject: [PATCH] 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 --- Dockerfile | 2 +- deploy/charts/netris-operator/Chart.yaml | 4 +- .../crds/k8s.netris.ai_allocationmeta.yaml | 78 +++++++ .../crds/k8s.netris.ai_allocations.yaml | 82 ++++++++ .../crds/k8s.netris.ai_sitemeta.yaml | 90 ++++++++ .../crds/k8s.netris.ai_sites.yaml | 123 +++++++++++ .../crds/k8s.netris.ai_subnetmeta.yaml | 82 ++++++++ .../crds/k8s.netris.ai_subnets.yaml | 101 +++++++++ .../netris-operator/templates/rbac.yaml | 192 ++++++++++++++++++ 9 files changed, 751 insertions(+), 3 deletions(-) create mode 100644 deploy/charts/netris-operator/crds/k8s.netris.ai_allocationmeta.yaml create mode 100644 deploy/charts/netris-operator/crds/k8s.netris.ai_allocations.yaml create mode 100644 deploy/charts/netris-operator/crds/k8s.netris.ai_sitemeta.yaml create mode 100644 deploy/charts/netris-operator/crds/k8s.netris.ai_sites.yaml create mode 100644 deploy/charts/netris-operator/crds/k8s.netris.ai_subnetmeta.yaml create mode 100644 deploy/charts/netris-operator/crds/k8s.netris.ai_subnets.yaml diff --git a/Dockerfile b/Dockerfile index 35ba82e..a6a681f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:experimental # Build the manager binary -FROM golang:1.16 as builder +FROM golang:1.17 as builder WORKDIR /workspace diff --git a/deploy/charts/netris-operator/Chart.yaml b/deploy/charts/netris-operator/Chart.yaml index 7339629..3e8e3eb 100644 --- a/deploy/charts/netris-operator/Chart.yaml +++ b/deploy/charts/netris-operator/Chart.yaml @@ -15,12 +15,12 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.4.3 +version: 0.5.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: v1.0.3 +appVersion: v1.1.0 home: https://github.com/netrisai/netris-operator icon: https://www.netris.ai/wp-content/uploads/2021/01/logo-300.png # [todo] Change url to permalink keywords: diff --git a/deploy/charts/netris-operator/crds/k8s.netris.ai_allocationmeta.yaml b/deploy/charts/netris-operator/crds/k8s.netris.ai_allocationmeta.yaml new file mode 100644 index 0000000..076f8a0 --- /dev/null +++ b/deploy/charts/netris-operator/crds/k8s.netris.ai_allocationmeta.yaml @@ -0,0 +1,78 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: allocationmeta.k8s.netris.ai +spec: + group: k8s.netris.ai + names: + kind: AllocationMeta + listKind: AllocationMetaList + plural: allocationmeta + singular: allocationmeta + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: AllocationMeta is the Schema for the allocationmeta API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: AllocationMetaSpec defines the desired state of AllocationMeta + properties: + allocationGeneration: + format: int64 + type: integer + allocationName: + type: string + id: + type: integer + imported: + description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + Important: Run "make" to regenerate code after modifying this file' + type: boolean + prefix: + type: string + reclaimPolicy: + type: boolean + tenant: + type: string + required: + - allocationGeneration + - allocationName + - id + - imported + - prefix + - reclaimPolicy + - tenant + type: object + status: + description: AllocationMetaStatus defines the observed state of AllocationMeta + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/deploy/charts/netris-operator/crds/k8s.netris.ai_allocations.yaml b/deploy/charts/netris-operator/crds/k8s.netris.ai_allocations.yaml new file mode 100644 index 0000000..1f44525 --- /dev/null +++ b/deploy/charts/netris-operator/crds/k8s.netris.ai_allocations.yaml @@ -0,0 +1,82 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: allocations.k8s.netris.ai +spec: + group: k8s.netris.ai + names: + kind: Allocation + listKind: AllocationList + plural: allocations + singular: allocation + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.prefix + name: Prefix + type: string + - jsonPath: .spec.tenant + name: Tenant + type: string + - jsonPath: .status.status + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Allocation is the Schema for the allocations API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: AllocationSpec defines the desired state of Allocation + properties: + prefix: + 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]))?$) + type: string + tenant: + type: string + required: + - prefix + - tenant + type: object + status: + description: AllocationStatus defines the observed state of Allocation + properties: + message: + type: string + status: + description: 'INSERT ADDITIONAL STATUS FIELD - define observed state + of cluster Important: Run "make" to regenerate code after modifying + this file' + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/deploy/charts/netris-operator/crds/k8s.netris.ai_sitemeta.yaml b/deploy/charts/netris-operator/crds/k8s.netris.ai_sitemeta.yaml new file mode 100644 index 0000000..c188797 --- /dev/null +++ b/deploy/charts/netris-operator/crds/k8s.netris.ai_sitemeta.yaml @@ -0,0 +1,90 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: sitemeta.k8s.netris.ai +spec: + group: k8s.netris.ai + names: + kind: SiteMeta + listKind: SiteMetaList + plural: sitemeta + singular: sitemeta + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: SiteMeta is the Schema for the sitemeta API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: SiteMetaSpec defines the desired state of SiteMeta + properties: + aclDefaultPolicy: + type: string + id: + type: integer + imported: + description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + Important: Run "make" to regenerate code after modifying this file' + type: boolean + publicAsn: + type: integer + reclaimPolicy: + type: boolean + rohAsn: + type: integer + rohRoutingProfile: + type: integer + siteGeneration: + format: int64 + type: integer + siteMesh: + type: string + siteName: + type: string + vmAsn: + type: integer + required: + - aclDefaultPolicy + - id + - imported + - publicAsn + - reclaimPolicy + - rohAsn + - rohRoutingProfile + - siteGeneration + - siteMesh + - siteName + - vmAsn + type: object + status: + description: SiteMetaStatus defines the observed state of SiteMeta + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/deploy/charts/netris-operator/crds/k8s.netris.ai_sites.yaml b/deploy/charts/netris-operator/crds/k8s.netris.ai_sites.yaml new file mode 100644 index 0000000..9678013 --- /dev/null +++ b/deploy/charts/netris-operator/crds/k8s.netris.ai_sites.yaml @@ -0,0 +1,123 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: sites.k8s.netris.ai +spec: + group: k8s.netris.ai + names: + kind: Site + listKind: SiteList + plural: sites + singular: site + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.publicAsn + name: Public ASN + type: integer + - jsonPath: .spec.rohAsn + name: ROH ASN + type: integer + - jsonPath: .spec.vmAsn + name: VM ASN + type: integer + - jsonPath: .spec.rohRoutingProfile + name: ROH Routing Profile + type: string + - jsonPath: .spec.siteMesh + name: Site Mesh + type: string + - jsonPath: .spec.aclDefaultPolicy + name: ACL Default Policy + type: string + - jsonPath: .status.status + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Site is the Schema for the sites API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: SiteSpec defines the desired state of Site + properties: + aclDefaultPolicy: + enum: + - permit + - deny + type: string + publicAsn: + maximum: 65534 + minimum: 0 + type: integer + rohAsn: + maximum: 65534 + minimum: 0 + type: integer + rohRoutingProfile: + enum: + - default + - default_agg + - full + type: string + siteMesh: + enum: + - disabled + - hub + - spoke + - dspoke + type: string + vmAsn: + maximum: 65534 + minimum: 0 + type: integer + required: + - aclDefaultPolicy + - publicAsn + - rohAsn + - rohRoutingProfile + - siteMesh + - vmAsn + type: object + status: + description: SiteStatus defines the observed state of Site + properties: + message: + type: string + status: + description: 'INSERT ADDITIONAL STATUS FIELD - define observed state + of cluster Important: Run "make" to regenerate code after modifying + this file' + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/deploy/charts/netris-operator/crds/k8s.netris.ai_subnetmeta.yaml b/deploy/charts/netris-operator/crds/k8s.netris.ai_subnetmeta.yaml new file mode 100644 index 0000000..8162b5f --- /dev/null +++ b/deploy/charts/netris-operator/crds/k8s.netris.ai_subnetmeta.yaml @@ -0,0 +1,82 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: subnetmeta.k8s.netris.ai +spec: + group: k8s.netris.ai + names: + kind: SubnetMeta + listKind: SubnetMetaList + plural: subnetmeta + singular: subnetmeta + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: SubnetMeta is the Schema for the subnetmeta API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: SubnetMetaSpec defines the desired state of SubnetMeta + properties: + defaultGateway: + type: string + id: + type: integer + imported: + type: boolean + prefix: + type: string + purpose: + type: string + reclaimPolicy: + type: boolean + sites: + items: + type: integer + type: array + subnetGeneration: + format: int64 + type: integer + subnetName: + type: string + tenantid: + type: integer + required: + - id + - imported + - reclaimPolicy + - subnetGeneration + - subnetName + type: object + status: + description: SubnetMetaStatus defines the observed state of SubnetMeta + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/deploy/charts/netris-operator/crds/k8s.netris.ai_subnets.yaml b/deploy/charts/netris-operator/crds/k8s.netris.ai_subnets.yaml new file mode 100644 index 0000000..3490cf9 --- /dev/null +++ b/deploy/charts/netris-operator/crds/k8s.netris.ai_subnets.yaml @@ -0,0 +1,101 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: subnets.k8s.netris.ai +spec: + group: k8s.netris.ai + names: + kind: Subnet + listKind: SubnetList + plural: subnets + singular: subnet + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.prefix + name: Prefix + type: string + - jsonPath: .spec.tenant + name: Tenant + type: string + - jsonPath: .spec.purpose + name: Purpose + type: string + - jsonPath: .spec.sites + name: Sites + type: string + - jsonPath: .spec.defaultGateway + name: Default Gateway + type: string + - jsonPath: .status.status + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Subnet is the Schema for the subnets API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: SubnetSpec defines the desired state of Subnet + properties: + defaultGateway: + 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]?)$ + type: string + prefix: + 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]))?$) + type: string + purpose: + enum: + - common + - loopback + - management + - load-balancer + - nat + - inactive + type: string + sites: + items: + type: string + type: array + tenant: + type: string + type: object + status: + description: SubnetStatus defines the observed state of Subnet + properties: + message: + type: string + status: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/deploy/charts/netris-operator/templates/rbac.yaml b/deploy/charts/netris-operator/templates/rbac.yaml index 6c6ffbf..35ff950 100644 --- a/deploy/charts/netris-operator/templates/rbac.yaml +++ b/deploy/charts/netris-operator/templates/rbac.yaml @@ -76,6 +76,58 @@ rules: - get - list - watch + - apiGroups: + - k8s.netris.ai + resources: + - allocationmeta + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - k8s.netris.ai + resources: + - allocationmeta/finalizers + verbs: + - update + - apiGroups: + - k8s.netris.ai + resources: + - allocationmeta/status + verbs: + - get + - patch + - update + - apiGroups: + - k8s.netris.ai + resources: + - allocations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - k8s.netris.ai + resources: + - allocations/finalizers + verbs: + - update + - apiGroups: + - k8s.netris.ai + resources: + - allocations/status + verbs: + - get + - patch + - update - apiGroups: - k8s.netris.ai resources: @@ -88,6 +140,12 @@ rules: - patch - update - watch + - apiGroups: + - k8s.netris.ai + resources: + - bgpmeta/finalizers + verbs: + - update - apiGroups: - k8s.netris.ai resources: @@ -108,6 +166,12 @@ rules: - patch - update - watch + - apiGroups: + - k8s.netris.ai + resources: + - bgps/finalizers + verbs: + - update - apiGroups: - k8s.netris.ai resources: @@ -128,6 +192,12 @@ rules: - patch - update - watch + - apiGroups: + - k8s.netris.ai + resources: + - l4lbmeta/finalizers + verbs: + - update - apiGroups: - k8s.netris.ai resources: @@ -148,6 +218,12 @@ rules: - patch - update - watch + - apiGroups: + - k8s.netris.ai + resources: + - l4lbs/finalizers + verbs: + - update - apiGroups: - k8s.netris.ai resources: @@ -156,6 +232,110 @@ rules: - get - patch - update + - apiGroups: + - k8s.netris.ai + resources: + - sitemeta + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - k8s.netris.ai + resources: + - sitemeta/finalizers + verbs: + - update + - apiGroups: + - k8s.netris.ai + resources: + - sitemeta/status + verbs: + - get + - patch + - update + - apiGroups: + - k8s.netris.ai + resources: + - sites + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - k8s.netris.ai + resources: + - sites/finalizers + verbs: + - update + - apiGroups: + - k8s.netris.ai + resources: + - sites/status + verbs: + - get + - patch + - update + - apiGroups: + - k8s.netris.ai + resources: + - subnetmeta + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - k8s.netris.ai + resources: + - subnetmeta/finalizers + verbs: + - update + - apiGroups: + - k8s.netris.ai + resources: + - subnetmeta/status + verbs: + - get + - patch + - update + - apiGroups: + - k8s.netris.ai + resources: + - subnets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - k8s.netris.ai + resources: + - subnets/finalizers + verbs: + - update + - apiGroups: + - k8s.netris.ai + resources: + - subnets/status + verbs: + - get + - patch + - update - apiGroups: - k8s.netris.ai resources: @@ -168,6 +348,12 @@ rules: - patch - update - watch + - apiGroups: + - k8s.netris.ai + resources: + - vnetmeta/finalizers + verbs: + - update - apiGroups: - k8s.netris.ai resources: @@ -188,6 +374,12 @@ rules: - patch - update - watch + - apiGroups: + - k8s.netris.ai + resources: + - vnets/finalizers + verbs: + - update - apiGroups: - k8s.netris.ai resources: