{{- $syncEnabled := (or (and (ne (.Values.syncCatalog.enabled | toString) "-") .Values.syncCatalog.enabled) (and (eq (.Values.syncCatalog.enabled | toString) "-") .Values.global.enabled)) }}
{{- if $syncEnabled }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: {{ template "consul.fullname" . }}-sync-catalog
  labels:
    app: {{ template "consul.name" . }}
    chart: {{ template "consul.chart" . }}
    heritage: {{ .Release.Service }}
    release: {{ .Release.Name }}
rules:
  - apiGroups: [""]
    resources:
      - services
      - endpoints
    verbs:
      - get
      - list
      - watch
{{- if .Values.syncCatalog.toK8S }}
      - update
      - patch
      - delete
      - create
{{- end }}
  - apiGroups: [""]
    resources:
      - nodes
    verbs:
      - get
{{- if .Values.global.bootstrapACLs }}
  - apiGroups: [""]
    resources:
      - secrets
    resourceNames:
      - {{ template "consul.fullname" . }}-catalog-sync-acl-token
    verbs:
      - get
{{- end }}
{{- if .Values.global.enablePodSecurityPolicies }}
  - apiGroups: ["policy"]
    resources: ["podsecuritypolicies"]
    verbs:
      - use
    resourceNames:
      - {{ template "consul.fullname" . }}-sync-catalog
{{- end }}
{{- end }}
