mirror of
https://github.com/YuzuZensai/netbird-kubernetes-operator.git
synced 2026-09-13 10:49:15 +00:00
This adds a new resource which deploys a Kubernetes API server proxy that can be used to access the API server without tokens through Netbird. Part of #274 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added ClusterProxy custom resource for cluster API proxying capabilities * **Documentation** * Added ClusterProxy API reference documentation with schema details * **Examples** * Added example ClusterProxy configuration and RBAC setup for cluster proxy targets <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/netbirdio/kubernetes-operator/pull/279?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
246 lines
4.0 KiB
YAML
246 lines
4.0 KiB
YAML
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ include "netbird-operator.fullname" . }}
|
|
labels:
|
|
{{- include "netbird-operator.labels" . | nindent 4 }}
|
|
rules:
|
|
- apiGroups:
|
|
- netbird.io
|
|
resources:
|
|
- nbsetupkeys
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- netbird.io
|
|
resources:
|
|
- nbsetupkeys/finalizers
|
|
verbs:
|
|
- update
|
|
- apiGroups:
|
|
- netbird.io
|
|
resources:
|
|
- nbsetupkeys/status
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
- apiGroups:
|
|
- netbird.io
|
|
resources:
|
|
- nbgroups
|
|
- nbresources
|
|
- nbroutingpeers
|
|
- nbpolicies
|
|
- setupkeys
|
|
- groups
|
|
- networkrouters
|
|
- networkresources
|
|
- sidecarprofiles
|
|
- clusterproxies
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
- list
|
|
- watch
|
|
- create
|
|
- delete
|
|
- apiGroups:
|
|
- netbird.io
|
|
resources:
|
|
- nbgroups/status
|
|
- nbresources/status
|
|
- nbroutingpeers/status
|
|
- nbpolicies/status
|
|
- setupkeys/status
|
|
- groups/status
|
|
- networkrouters/status
|
|
- networkresources/status
|
|
- sidecarprofiles/status
|
|
- clusterproxies/status
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
- apiGroups:
|
|
- netbird.io
|
|
resources:
|
|
- nbgroups/finalizers
|
|
- nbresources/finalizers
|
|
- nbroutingpeers/finalizers
|
|
- nbpolicies/finalizers
|
|
- setupkeys/finalizers
|
|
- groups/finalizers
|
|
- networkrouters/finalizers
|
|
- networkresources/finalizers
|
|
- sidecarprofiles/finalizers
|
|
verbs:
|
|
- update
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- services
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- patch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- namespaces
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- services/finalizers
|
|
verbs:
|
|
- update
|
|
- apiGroups:
|
|
- apps
|
|
resources:
|
|
- deployments
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
- list
|
|
- watch
|
|
- create
|
|
- delete
|
|
- apiGroups:
|
|
- policy
|
|
resources:
|
|
- poddisruptionbudgets
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- create
|
|
- update
|
|
- patch
|
|
- delete
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- pods
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
{{- if or .Values.netbirdAPI.keyFromSecret .Values.clusterSecretsPermissions.allowAllSecrets }}
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- secrets
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
{{- if .Values.netbirdAPI.keyFromSecret }}
|
|
- patch
|
|
- update
|
|
- create
|
|
- delete
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.gatewayAPI.enabled }}
|
|
- apiGroups: ["gateway.networking.k8s.io"]
|
|
resources:
|
|
- gatewayclasses
|
|
- gateways
|
|
- httproutes
|
|
- tcproutes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- update
|
|
- patch
|
|
- apiGroups: ["gateway.networking.k8s.io"]
|
|
resources:
|
|
- gatewayclasses/status
|
|
- gateways/status
|
|
- httproutes/status
|
|
- tcproutes/status
|
|
verbs:
|
|
- update
|
|
- patch
|
|
{{- end }}
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: {{ include "netbird-operator.fullname" . }}
|
|
labels:
|
|
{{- include "netbird-operator.labels" . | nindent 4 }}
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: {{ include "netbird-operator.fullname" . }}
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: {{ include "netbird-operator.serviceAccountName" . }}
|
|
namespace: {{ .Release.Namespace }}
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: {{ include "netbird-operator.fullname" . }}
|
|
labels:
|
|
{{- include "netbird-operator.labels" . | nindent 4 }}
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- configmaps
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- create
|
|
- update
|
|
- patch
|
|
- delete
|
|
- apiGroups:
|
|
- coordination.k8s.io
|
|
resources:
|
|
- leases
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- create
|
|
- update
|
|
- patch
|
|
- delete
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- events
|
|
verbs:
|
|
- create
|
|
- patch
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: {{ include "netbird-operator.fullname" . }}
|
|
labels:
|
|
{{- include "netbird-operator.labels" . | nindent 4 }}
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: Role
|
|
name: {{ include "netbird-operator.fullname" . }}
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: {{ include "netbird-operator.serviceAccountName" . }}
|
|
namespace: {{ .Release.Namespace }}
|