{{/* GKE Autopilot clusters forbid users from impersonating system:masters
Groups. This is a security measure released under the GKE Warden authz module
https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-security#built-in-security
Because of this limitation, users are unable to specify kubernetes_groups=["system:masters"]
in Teleport, so we create a Kubernetes Group called cluster-admin when we detect
that the underlying cluster is a GKE cluster.  */}}
{{- if or (contains "-gke." .Capabilities.KubeVersion.Version) (.Values.adminClusterRoleBinding.create) -}}
{{- $groupName := (coalesce .Values.adminClusterRoleBinding.name "cluster-admin") }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-k8s-cluster-group
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
# This is the built-in cluster-admin role that exists in all K8S clusters.
# We are binding the cluster-admin role to the cluster-admin group.
# See https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: {{ $groupName }}
{{- end }}
