# Copyright 2020-2023 Open Networking Foundation (ONF) and the ONF Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
apiVersion: "v1"
kind: "ServiceAccount"
metadata:
  name: "{{ .Values.serviceAccountName }}"
  namespace: {{ .Release.Namespace | quote }}
---
apiVersion: "rbac.authorization.k8s.io/v1"
kind: ClusterRole
metadata:
  name: "{{ .Release.Name }}-{{ .Chart.Name }}-pod-svc-reader"
  namespace: {{ .Release.Namespace | quote }}
rules:
  - apiGroups: [""]
    resources:
      - pods
      - services
    verbs:
      - get
      - list
      - watch
---
apiVersion: "rbac.authorization.k8s.io/v1"
kind: "ClusterRoleBinding"
metadata:
  name: "{{ .Release.Name }}-{{ .Chart.Name }}-pod-svc-reader-binding"
  namespace: {{ .Release.Namespace | quote }}
subjects:
  - kind: "ServiceAccount"
    name: "{{ .Values.serviceAccountName }}"
    namespace: {{ .Release.Namespace | quote }}
roleRef:
    kind: "ClusterRole"
    name: "{{ .Release.Name }}-{{ .Chart.Name }}-pod-svc-reader"
    apiGroup: "rbac.authorization.k8s.io"
