added repo

This commit is contained in:
Your Name
2026-08-26 03:39:42 +05:30
parent 45c25a95af
commit b8575bb8b9
6889 changed files with 1217125 additions and 0 deletions
@@ -0,0 +1,22 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.host }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.router.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "deepfence-console.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.router.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "deepfence-console.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "deepfence-console.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.router.service.httpsPort }}
{{- else if contains "ClusterIP" .Values.router.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "deepfence-console.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}
@@ -0,0 +1,81 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "deepfence-console.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "deepfence-console.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "deepfence-console.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "deepfence-console.labels" -}}
helm.sh/chart: {{ include "deepfence-console.chart" . }}
{{ include "deepfence-console.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "deepfence-console.selectorLabels" -}}
app: deepfence-console
app.kubernetes.io/name: {{ include "deepfence-console.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "deepfence-console.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "deepfence-console.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
{{/*
Create the name of the imagePullSecret to use
*/}}
{{- define "deepfence-console.imagePullSecretName" -}}
{{- if .Values.imagePullSecret.create }}
{{- default (include "deepfence-console.fullname" .) .Values.imagePullSecret.name }}
{{- else }}
{{- .Values.imagePullSecret.name }}
{{- end }}
{{- end }}
{{/*
Create secret to access docker registry
*/}}
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imagePullSecret.registry (printf "%s:%s" .Values.imagePullSecret.username .Values.imagePullSecret.password | b64enc) | b64enc }}
{{- end }}
@@ -0,0 +1,113 @@
{{- if .Values.fileserver.create }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "deepfence-console.fullname" . }}-file-server
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-file-server
spec:
serviceName: {{ include "deepfence-console.fullname" . }}-file-server
replicas: 1
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-file-server
template:
metadata:
{{- with .Values.fileserver.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-file-server
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.fileserver.podSecurityContext | nindent 8 }}
containers:
- name: fileserver
securityContext:
{{- toYaml .Values.fileserver.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.fileserver.image.repository }}:{{ default .Values.global.imageTag .Values.fileserver.image.tag }}"
imagePullPolicy: {{ .Values.fileserver.image.pullPolicy }}
envFrom:
- secretRef:
name: {{ include "deepfence-console.fullname" . }}-file-server-secret
ports:
- name: http
containerPort: 9000
protocol: TCP
- name: ui
containerPort: 9090
protocol: TCP
livenessProbe:
httpGet:
path: /status
port: http
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
httpGet:
path: /status
port: http
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
resources:
{{- toYaml .Values.fileserver.resources | nindent 12 }}
volumeMounts:
- mountPath: /data
name: "file-server"
{{- with .Values.fileserver.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.fileserver.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.fileserver.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
volumeClaimTemplates:
- metadata:
name: "file-server"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "{{ .Values.fileserver.volumeSize }}"
storageClassName: {{ default .Values.global.storageClass .Values.fileserver.storageClass }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-file-server
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-file-server
spec:
type: ClusterIP
ports:
- name: http
port: 9000
targetPort: http
protocol: TCP
- name: ui
port: 9090
targetPort: ui
protocol: TCP
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-file-server
{{- end }}
@@ -0,0 +1,15 @@
{{- if .Values.fileserver.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-file-server-secret
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-file-server-secret
stringData:
{{- range $k, $v := .Values.fileserver.secrets }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
@@ -0,0 +1,14 @@
{{- if .Values.kafka.create }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "deepfence-console.fullname" . }}-kafka-broker-config
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-kafka-broker-config
data:
{{- range $k, $v := .Values.kafka.config }}
{{ $k }}: {{ $v | quote }}
{{- end }}
{{- end }}
@@ -0,0 +1,133 @@
{{- if .Values.kafka.create }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
spec:
serviceName: {{ include "deepfence-console.fullname" . }}-kafka-broker
replicas: {{ .Values.kafka.replicaCount }}
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
template:
metadata:
{{- with .Values.kafka.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.kafka.podSecurityContext | nindent 8 }}
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
labelSelector:
matchExpressions:
- key: name
operator: In
values:
- kafka-broker
topologyKey: kubernetes.io/hostname
initContainers:
- name: init
image: busybox
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
command: ["/bin/chmod","-R","777", "/data"]
volumeMounts:
- name: "kafka-broker"
mountPath: /data
containers:
- name: kafka
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.kafka.image.repository }}:{{ default .Values.global.imageTag .Values.kafka.image.tag }}"
imagePullPolicy: {{ .Values.kafka.image.pullPolicy }}
ports:
- containerPort: 9092
- containerPort: 9093
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: REPLICAS
value: "{{ .Values.kafka.replicaCount }}"
- name: SERVICE
value: {{ include "deepfence-console.fullname" . }}-kafka-broker
- name: KAFKA_LOG_DIRS
value: /data/kafka
envFrom:
- configMapRef:
name: {{ include "deepfence-console.fullname" . }}-kafka-broker-config
livenessProbe:
tcpSocket:
port: 9092
initialDelaySeconds: 120
periodSeconds: 30
# readinessProbe:
# tcpSocket:
# port: 9092
# initialDelaySeconds: 120
# periodSeconds: 30
resources:
{{- toYaml .Values.kafka.resources | nindent 12 }}
volumeMounts:
- name: "kafka-broker"
mountPath: /data
{{- with .Values.kafka.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.kafka.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
volumeClaimTemplates:
- metadata:
name: "kafka-broker"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "{{ .Values.kafka.volumeSize }}"
storageClassName: {{ default .Values.global.storageClass .Values.kafka.storageClass }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
spec:
type: ClusterIP
clusterIP: None
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-kafka-broker
ports:
- name: '9092'
port: 9092
protocol: TCP
targetPort: 9092
- name: '9093'
port: 9093
protocol: TCP
targetPort: 9093
{{- end }}
@@ -0,0 +1,14 @@
{{- if .Values.neo4j.create }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "deepfence-console.fullname" . }}-neo4j-config
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j-config
data:
{{- range $k, $v := .Values.neo4j.config }}
{{ $k }}: {{ $v | quote }}
{{- end }}
{{- end }}
@@ -0,0 +1,113 @@
{{- if .Values.neo4j.create }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "deepfence-console.fullname" . }}-neo4j
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j
spec:
serviceName: {{ include "deepfence-console.fullname" . }}-neo4j
replicas: 1
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j
template:
metadata:
{{- with .Values.neo4j.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.neo4j.podSecurityContext | nindent 8 }}
containers:
- name: neo4j
securityContext:
{{- toYaml .Values.neo4j.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.neo4j.image.repository }}:{{ default .Values.global.imageTag .Values.neo4j.image.tag }}"
imagePullPolicy: {{ .Values.neo4j.image.pullPolicy }}
envFrom:
- secretRef:
name: {{ include "deepfence-console.fullname" . }}-neo4j-secret
- configMapRef:
name: {{ include "deepfence-console.fullname" . }}-neo4j-config
ports:
- name: ui
containerPort: 7474
protocol: TCP
- name: http
containerPort: 7687
protocol: TCP
livenessProbe:
tcpSocket:
port: http
initialDelaySeconds: 60
periodSeconds: 30
readinessProbe:
tcpSocket:
port: http
initialDelaySeconds: 60
periodSeconds: 30
resources:
{{- toYaml .Values.neo4j.resources | nindent 12 }}
volumeMounts:
- name: "neo4j"
mountPath: /data
- name: "neo4j"
mountPath: /logs
- name: "neo4j"
mountPath: /plugins
- name: "neo4j"
mountPath: /backups
{{- with .Values.neo4j.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.neo4j.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.neo4j.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
volumeClaimTemplates:
- metadata:
name: "neo4j"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "{{ .Values.neo4j.volumeSize }}"
storageClassName: {{ default .Values.global.storageClass .Values.neo4j.storageClass }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-neo4j
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j
spec:
type: ClusterIP
ports:
- name: http
port: 7687
targetPort: 7687
protocol: TCP
- name: ui
port: 7474
targetPort: 7474
protocol: TCP
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j
{{- end }}
@@ -0,0 +1,15 @@
{{- if .Values.neo4j.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-neo4j-secret
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-neo4j-secret
stringData:
{{- range $k, $v := .Values.neo4j.secrets }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
@@ -0,0 +1,110 @@
{{- if .Values.postgres.create }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "deepfence-console.fullname" . }}-postgres
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-postgres
spec:
serviceName: {{ include "deepfence-console.fullname" . }}-postgres
replicas: 1
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-postgres
template:
metadata:
{{- with .Values.postgres.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-postgres
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.postgres.podSecurityContext | nindent 8 }}
containers:
- name: postgres
securityContext:
{{- toYaml .Values.postgres.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.postgres.image.repository }}:{{ default .Values.global.imageTag .Values.postgres.image.tag }}"
imagePullPolicy: {{ .Values.postgres.image.pullPolicy }}
envFrom:
- secretRef:
name: {{ include "deepfence-console.fullname" . }}-postgres-secret
ports:
- name: tcp
containerPort: 5432
protocol: TCP
livenessProbe:
exec:
command:
- /bin/sh
- -c
- exec pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
exec:
command:
- /bin/sh
- -c
- exec pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
resources:
{{- toYaml .Values.postgres.resources | nindent 12 }}
volumeMounts:
- mountPath: /data
name: "postgres"
{{- with .Values.postgres.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.postgres.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.postgres.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
volumeClaimTemplates:
- metadata:
name: "postgres"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "{{ .Values.postgres.volumeSize }}"
storageClassName: {{ default .Values.global.storageClass .Values.postgres.storageClass }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-postgres
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-postgres
spec:
type: ClusterIP
ports:
- name: tcp
port: 5432
targetPort: tcp
protocol: TCP
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-postgres
{{- end }}
@@ -0,0 +1,15 @@
{{- if .Values.postgres.create }}
---
kind: Secret
apiVersion: v1
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-postgres-secret
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-postgres-secret
stringData:
{{- range $k, $v := .Values.postgres.secrets }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
@@ -0,0 +1,107 @@
{{- if .Values.redis.create }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "deepfence-console.fullname" . }}-redis
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-redis
spec:
serviceName: {{ include "deepfence-console.fullname" . }}-redis
replicas: 1
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-redis
template:
metadata:
{{- with .Values.redis.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-redis
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.redis.podSecurityContext | nindent 8 }}
containers:
- name: redis
securityContext:
{{- toYaml .Values.redis.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.redis.image.repository }}:{{ default .Values.global.imageTag .Values.redis.image.tag }}"
imagePullPolicy: {{ .Values.redis.image.pullPolicy }}
ports:
- name: tcp
containerPort: 6379
protocol: TCP
livenessProbe:
exec:
command:
- /bin/sh
- -c
- exec redis-cli ping
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
exec:
command:
- /bin/sh
- -c
- exec redis-cli ping
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
resources:
{{- toYaml .Values.redis.resources | nindent 12 }}
volumeMounts:
- mountPath: /data
name: "redis"
{{- with .Values.redis.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.redis.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.redis.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
volumeClaimTemplates:
- metadata:
name: "redis"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "{{ .Values.redis.volumeSize }}"
storageClassName: {{ default .Values.global.storageClass .Values.redis.storageClass }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-redis
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-redis
spec:
type: ClusterIP
ports:
- port: 6379
targetPort: tcp
protocol: TCP
name: tcp
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-redis
{{- end }}
@@ -0,0 +1,144 @@
{{- if .Values.console_agents.enabled }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "deepfence-console.fullname" . }}-agent
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
rules:
- apiGroups:
- ''
resources:
- pods
verbs:
- get
- list
- watch
- delete
- apiGroups:
- ''
resources:
- pods/log
- services
- nodes
- namespaces
- persistentvolumes
- persistentvolumeclaims
- configmaps
- endpoints
- replicationcontrollers
- serviceaccounts
- secrets
- limitranges
- resourcequotas
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- statefulsets
- replicasets
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- networkpolicies
verbs:
- get
- list
- watch
- apiGroups:
- batch
resources:
- cronjobs
- jobs
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources:
- deployments
- daemonsets
- ingresses
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments/scale
verbs:
- get
- apiGroups:
- extensions
resources:
- deployments/scale
verbs:
- get
- apiGroups:
- storage.k8s.io
resources:
- storageclasses
verbs:
- get
- list
- watch
- apiGroups:
- volumesnapshot.external-storage.k8s.io
resources:
- volumesnapshots
- volumesnapshotdatas
verbs:
- get
- list
- watch
- apiGroups:
- policy
resources:
- podsecuritypolicies
verbs:
- get
- list
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
- clusterroles
verbs:
- get
- list
- watch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "deepfence-console.fullname" . }}-agent
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
roleRef:
kind: ClusterRole
name: {{ include "deepfence-console.fullname" . }}-agent
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: {{ include "deepfence-console.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
{{- end }}
@@ -0,0 +1,195 @@
{{- if .Values.console_agents.enabled }}
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: {{ include "deepfence-console.fullname" . }}-agent
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-agent
spec:
selector:
matchLabels:
{{- include "deepfence-console.labels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-agent
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
{{- include "deepfence-console.labels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-agent
spec:
hostPID: true
hostNetwork: true
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
automountServiceAccountToken: true
dnsPolicy: ClusterFirstWithHostNet
volumes:
{{- if .Values.console_agents.mountContainerRuntimeSocket.dockerSock }}
- name: docker-sock
hostPath:
path: {{ .Values.console_agents.mountContainerRuntimeSocket.dockerSockPath }}
type: Socket
{{- end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.containerdSock }}
- name: containerd-sock
hostPath:
path: {{ .Values.console_agents.mountContainerRuntimeSocket.containerdSockPath }}
type: Socket
{{- end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.crioSock }}
- name: crio-sock
hostPath:
path: {{ .Values.console_agents.mountContainerRuntimeSocket.crioSockPath }}
type: Socket
- hostPath:
path: /var/lib/containers
type: Directory
name: containers
{{- if .Values.console_agents.mountContainerRuntimeSocket.podmanSock }}
- name: podman-sock
hostPath:
path: {{ .Values.console_agents.mountContainerRuntimeSocket.podmanSockPath }}
type: Socket
- name: systemd
hostPath:
path: /run/systemd
type: Directory
{{- end }}
{{- end }}
- name: kernel-sys
hostPath:
path: /sys/kernel/debug
type: Directory
- name: host-fs
hostPath:
path: /
type: Directory
- name: fenced-path
emptyDir: {}
- name: fenced-path-compliance
emptyDir: {}
- name: fenced-path-compliance-scan-logs
emptyDir: {}
containers:
- name: deepfence-agent
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.console_agents.agent.image.repository }}:{{ default .Values.global.imageTag .Values.console_agents.agent.image.tag }}"
imagePullPolicy: {{ .Values.console_agents.agent.image.pullPolicy }}
securityContext:
privileged: true
resources:
requests:
cpu: {{ .Values.console_agents.agent.resources.requests.cpu }}
memory: {{ .Values.console_agents.agent.resources.requests.memory }}
limits:
cpu: {{ .Values.console_agents.agent.resources.limits.cpu }}
memory: {{ .Values.console_agents.agent.resources.limits.memory }}
env:
- name: MGMT_CONSOLE_URL_INTERNAL
value: {{ include "deepfence-console.fullname" . }}-server
- name: MGMT_CONSOLE_PORT_INTERNAL
value: "8081"
- name: MGMT_CONSOLE_URL
value: {{ include "deepfence-console.fullname" . }}-router
- name: MGMT_CONSOLE_PORT
value: "443"
- name: "DEEPFENCE_KEY"
value: "\"\""
- name: "DEEPFENCE_CONSOLE_AGENT"
value: "true"
- name: USER_DEFINED_TAGS
value: {{ .Values.console_agents.userDefinedTags }}
- name: DF_ENABLE_PROCESS_REPORT
value: "{{ .Values.console_agents.enableGraphReport }}"
- name: DF_ENABLE_CONNECTIONS_REPORT
value: "{{ .Values.console_agents.enableGraphReport }}"
- name: DF_KUBERNETES_ON
value: "Y"
- name: INSTANCE_ID_SUFFIX
value: "{{ .Values.console_agents.instanceIdSuffix }}"
- name: DF_DISABLE_TRAFFIC_ANALYSIS
value: "1"
- name: DF_CLUSTER_NAME
value: "{{ .Values.console_agents.cluster_name }}"
- name: AGENT_HOSTNAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
{{- if .Values.clusterName }}
- name: SCOPE_HOSTNAME
value: "{{ .Values.console_agents.cluster_name }}-$(AGENT_HOSTNAME)"
{{- else }}
- name: SCOPE_HOSTNAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
{{- end }}
- name: AGENT_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: AGENT_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
{{- if .Values.console_agents.mountContainerRuntimeSocket.dockerSock }}
- name: DOCKER_SOCKET_PATH
value: "{{ .Values.console_agents.mountContainerRuntimeSocket.dockerSockPath }}"
{{ end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.containerdSock }}
- name: CONTAINERD_SOCKET_PATH
value: "{{ .Values.console_agents.mountContainerRuntimeSocket.containerdSockPath }}"
{{ end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.crioSock }}
- name: CRIO_SOCKET_PATH
value: "{{ .Values.console_agents.mountContainerRuntimeSocket.crioSockPath }}"
{{ end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.podmanSock }}
- name: PODMAN_SOCKET_PATH
value: "{{ .Values.console_agents.mountContainerRuntimeSocket.podmanSockPath }}"
{{ end }}
volumeMounts:
{{- if .Values.console_agents.mountContainerRuntimeSocket.dockerSock }}
- mountPath: {{ .Values.console_agents.mountContainerRuntimeSocket.dockerSockPath }}
name: docker-sock
{{ end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.containerdSock }}
- mountPath: {{ .Values.console_agents.mountContainerRuntimeSocket.containerdSockPath }}
name: containerd-sock
{{ end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.crioSock }}
- mountPath: {{ .Values.console_agents.mountContainerRuntimeSocket.crioSockPath }}
name: crio-sock
- mountPath: /var/lib/containers
name: containers
{{ end }}
{{- if .Values.console_agents.mountContainerRuntimeSocket.podmanSock }}
- mountPath: {{ .Values.console_agents.mountContainerRuntimeSocket.podmanSockPath }}
name: podman-sock
- mountPath: /run/systemd
name: systemd
{{ end }}
- mountPath: /sys/kernel/debug
name: kernel-sys
- mountPath: /fenced/mnt/host
name: host-fs
readOnly: true
- mountPath: /var/log/fenced
name: fenced-path
- mountPath: /var/log/fenced/compliance
name: fenced-path-compliance
- mountPath: /var/log/fenced/compliance-scan-logs
name: fenced-path-compliance-scan-logs
{{- with .Values.console_agents.agent.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.console_agents.agent.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.console_agents.agent.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
@@ -0,0 +1,11 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ include "deepfence-console.fullname" . }}-config"
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: "{{ include "deepfence-console.fullname" . }}-config"
data:
DEEPFENCE_DEBUG: "false"
DEEPFENCE_SAAS_DEPLOYMENT: "false"
@@ -0,0 +1,20 @@
{{- if .Values.fileserver.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-secrets-fileserver
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
component: file-server
stringData:
DEEPFENCE_MINIO_HOST: {{ include "deepfence-console.fullname" . }}-file-server
DEEPFENCE_MINIO_PORT: "9000"
DEEPFENCE_MINIO_SECURE: "false"
DEEPFENCE_MINIO_BUCKET: default
DEEPFENCE_MINIO_PASSWORD: {{ .Values.fileserver.secrets.MINIO_ROOT_PASSWORD | quote }}
DEEPFENCE_MINIO_USER: {{ .Values.fileserver.secrets.MINIO_ROOT_USER | quote }}
DEEPFENCE_MINIO_DB_BUCKET: database
{{- end }}
@@ -0,0 +1,13 @@
{{- if .Values.kafka.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-secrets-kafka
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
component: kafka
stringData:
DEEPFENCE_KAFKA_BROKERS: "{{ include "deepfence-console.fullname" . }}-kafka-broker.{{ .Release.Namespace }}.svc:9092"
{{- end }}
@@ -0,0 +1,17 @@
{{- if .Values.neo4j.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-secrets-neo4j
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
component: neo4j
stringData:
DEEPFENCE_NEO4J_BOLT_PORT: "7687"
DEEPFENCE_NEO4J_HOST: {{ include "deepfence-console.fullname" . }}-neo4j
DEEPFENCE_NEO4J_USER: {{ (splitList "/" .Values.neo4j.secrets.NEO4J_AUTH) | first | quote }}
DEEPFENCE_NEO4J_PASSWORD: {{ (splitList "/" .Values.neo4j.secrets.NEO4J_AUTH) | last | quote }}
{{- end }}
@@ -0,0 +1,18 @@
{{- if .Values.postgres.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-secrets-postgres
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-secrets-postgres
stringData:
DEEPFENCE_POSTGRES_USER_DB_PORT: "5432"
DEEPFENCE_POSTGRES_USER_DB_HOST: {{ include "deepfence-console.fullname" . }}-postgres
DEEPFENCE_POSTGRES_USER_DB_SSLMODE: disable
DEEPFENCE_POSTGRES_USER_DB_USER: {{ .Values.postgres.secrets.POSTGRES_USER | quote }}
DEEPFENCE_POSTGRES_USER_DB_PASSWORD: {{ .Values.postgres.secrets.POSTGRES_PASSWORD | quote }}
DEEPFENCE_POSTGRES_USER_DB_NAME: {{ .Values.postgres.secrets.POSTGRES_DB | quote }}
{{- end }}
@@ -0,0 +1,15 @@
{{- if .Values.redis.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-secrets-redis
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
component: redis
stringData:
DEEPFENCE_REDIS_DB_NUMBER: "0"
DEEPFENCE_REDIS_PORT: "6379"
DEEPFENCE_REDIS_HOST: {{ include "deepfence-console.fullname" . }}-redis
{{- end }}
@@ -0,0 +1,19 @@
{{- if and (eq .Values.fileserver.create false) .Values.aws_s3_buckets.create }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ include "deepfence-console.fullname" . }}-secrets-fileserver
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
component: file-server
stringData:
DEEPFENCE_MINIO_HOST: "s3.amazonaws.com"
DEEPFENCE_MINIO_SECURE: "true"
DEEPFENCE_MINIO_DB_BUCKET: {{ .Values.aws_s3_buckets.vulnerability_db_bucket | quote }}
DEEPFENCE_MINIO_BUCKET: {{ .Values.aws_s3_buckets.data_bucket | quote }}
DEEPFENCE_MINIO_PASSWORD: {{ .Values.aws_s3_buckets.secret_access_key | quote }}
DEEPFENCE_MINIO_USER: {{ .Values.aws_s3_buckets.access_key_id | quote }}
DEEPFENCE_MINIO_REGION: {{.Values.aws_s3_buckets.region | quote }}
{{- end }}
@@ -0,0 +1,147 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "deepfence-console.fullname" . }}-ingester
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ingester
spec:
{{- if not .Values.ingester.autoscaling.enabled }}
replicas: {{ .Values.ingester.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-ingester
template:
metadata:
{{- with .Values.ingester.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-ingester
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.ingester.podSecurityContext | nindent 8 }}
containers:
- name: ingester
securityContext:
{{- toYaml .Values.ingester.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.ingester.image.repository }}:{{ default .Values.global.imageTag .Values.ingester.image.tag }}"
imagePullPolicy: {{ .Values.ingester.image.pullPolicy }}
env:
- name: DEEPFENCE_MODE
value: ingester
envFrom:
- configMapRef:
name: "{{ include "deepfence-console.fullname" . }}-config"
- secretRef:
{{- if .Values.redis.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-redis"
{{- else }}
name: {{ .Values.redis.secretName }}
{{- end }}
- secretRef:
{{- if or .Values.fileserver.create .Values.aws_s3_buckets.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-fileserver"
{{- else if .Values.fileserver.secretName }}
name: {{ .Values.fileserver.secretName }}
{{- else if .Values.aws_s3_buckets.secretName }}
name: {{ .Values.aws_s3_buckets.secretName }}
{{- end }}
- secretRef:
{{- if .Values.kafka.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-kafka"
{{- else }}
name: {{ .Values.kafka.secretName }}
{{- end }}
- secretRef:
{{- if .Values.postgres.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-postgres"
{{- else }}
name: {{ .Values.postgres.secretName }}
{{- end }}
- secretRef:
{{- if .Values.neo4j.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-neo4j"
{{- else }}
name: {{ .Values.neo4j.secretName }}
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
# livenessProbe:
# httpGet:
# path: /
# port: http
# readinessProbe:
# httpGet:
# path: /
# port: http
resources:
{{- toYaml .Values.ingester.resources | nindent 12 }}
{{- with .Values.ingester.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.ingester.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.ingester.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-ingester
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ingester
spec:
type: {{ .Values.ingester.service.type }}
ports:
- port: {{ .Values.ingester.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ingester
---
{{- if .Values.ingester.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: deepfence-ingester
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
component: ingester
name: deepfence-ingester
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: deepfence-ingester
minReplicas: {{ .Values.ingester.autoscaling.minReplicas }}
maxReplicas: {{ .Values.ingester.autoscaling.maxReplicas }}
metrics:
{{- if .Values.ingester.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.ingester.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.ingester.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
@@ -0,0 +1,29 @@
{{- if .Values.ingress.enable }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "deepfence-console.fullname" . }}-ingress
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
ingressClassName: {{ required "ingress class name is required" .Values.ingress.class }}
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ include "deepfence-console.fullname" . }}-router
port:
{{- if .Values.router.forceHttpsRedirect }}
number: {{ .Values.router.service.httpsPort }}
{{- else }}
number: {{ .Values.router.service.httpPort }}
{{- end }}
{{- with .Values.ingress.host }}
host: {{ . }}
{{- end }}
{{- end }}
@@ -0,0 +1,183 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "deepfence-console.fullname" . }}-router
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-router
spec:
{{- if not .Values.router.autoscaling.enabled }}
replicas: {{ .Values.router.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-router
template:
metadata:
{{- with .Values.router.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-router
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.router.podSecurityContext | nindent 8 }}
containers:
- name: router
securityContext:
{{- toYaml .Values.router.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.router.image.repository }}:{{ default .Values.global.imageTag .Values.router.image.tag }}"
imagePullPolicy: {{ .Values.router.image.pullPolicy }}
env:
- name: FORCE_HTTPS_REDIRECT
value: "{{ .Values.router.forceHttpsRedirect }}"
- name: UI_SERVICE_NAME
value: {{ include "deepfence-console.fullname" . }}-ui
- name: UI_SERVICE_PORT
value: {{ .Values.ui.service.port | quote }}
- name: API_SERVICE_HOST
value: {{ include "deepfence-console.fullname" . }}-server
- name: API_SERVICE_PORT
value: {{ .Values.server.service.port | quote }}
- name: DEEPFENCE_MINIO_HOST
value: {{ include "deepfence-console.fullname" . }}-file-server
- name: DEEPFENCE_MINIO_PORT
value: "9000"
envFrom:
- configMapRef:
name: "{{ include "deepfence-console.fullname" . }}-config"
ports:
- name: http
containerPort: 80
protocol: TCP
- name: https
containerPort: 443
protocol: TCP
livenessProbe:
httpGet:
path: /
port: https
scheme: HTTPS
initialDelaySeconds: 90
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
httpGet:
path: /
port: https
scheme: HTTPS
initialDelaySeconds: 90
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 10
successThreshold: 1
volumeMounts:
{{- if or .Values.router.tls.secretName (and .Values.router.tls.cert .Values.router.tls.key) }}
- name: certs
mountPath: /etc/deepfence/certs
readOnly: true
{{- end }}
resources:
{{- toYaml .Values.router.resources | nindent 12 }}
volumes:
{{- if .Values.router.tls.secretName }}
- name: certs
secret:
secretName: {{ .Values.router.tls.secretName }}
{{- else if and .Values.router.tls.cert .Values.router.tls.key }}
- name: certs
secret:
secretName: deepfence-router-tls
{{- end }}
{{- with .Values.router.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.router.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.router.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
{{- if or .Values.router.service.create .Values.ingress.enable }}
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-router
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-router
{{- with .Values.router.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.router.service.type }}
ports:
- port: {{ .Values.router.service.httpsPort }}
targetPort: https
protocol: TCP
name: https
- port: {{ .Values.router.service.httpPort }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-router
{{- end }}
---
{{- if .Values.router.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "deepfence-console.fullname" . }}-router
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-router
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "deepfence-console.fullname" . }}-router
minReplicas: {{ .Values.router.autoscaling.minReplicas }}
maxReplicas: {{ .Values.router.autoscaling.maxReplicas }}
metrics:
{{- if .Values.router.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.router.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.router.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.router.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
---
{{- if and .Values.router.tls.cert .Values.router.tls.key }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "deepfence-console.fullname" . }}-router-tls
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-router-tls
type: kubernetes.io/tls
data:
tls.crt: |-
{{ .Values.router.tls.cert | b64enc | indent 4}}
tls.key: |-
{{ .Values.router.tls.key | b64enc | indent 4}}
{{- end }}
@@ -0,0 +1,115 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "deepfence-console.fullname" . }}-scheduler
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-scheduler
spec:
replicas: 1
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-scheduler
template:
metadata:
{{- with .Values.scheduler.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-scheduler
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.scheduler.podSecurityContext | nindent 8 }}
containers:
- name: scheduler
securityContext:
{{- toYaml .Values.scheduler.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.scheduler.image.repository }}:{{ default .Values.global.imageTag .Values.scheduler.image.tag }}"
imagePullPolicy: {{ .Values.scheduler.image.pullPolicy }}
env:
- name: DEEPFENCE_MODE
value: scheduler
envFrom:
- configMapRef:
name: "{{ include "deepfence-console.fullname" . }}-config"
- secretRef:
{{- if .Values.redis.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-redis"
{{- else }}
name: {{ .Values.redis.secretName }}
{{- end }}
- secretRef:
{{- if or .Values.fileserver.create .Values.aws_s3_buckets.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-fileserver"
{{- else if .Values.fileserver.secretName }}
name: {{ .Values.fileserver.secretName }}
{{- else if .Values.aws_s3_buckets.secretName }}
name: {{ .Values.aws_s3_buckets.secretName }}
{{- end }}
- secretRef:
{{- if .Values.kafka.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-kafka"
{{- else }}
name: {{ .Values.kafka.secretName }}
{{- end }}
- secretRef:
{{- if .Values.postgres.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-postgres"
{{- else }}
name: {{ .Values.postgres.secretName }}
{{- end }}
- secretRef:
{{- if .Values.neo4j.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-neo4j"
{{- else }}
name: {{ .Values.neo4j.secretName }}
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
# livenessProbe:
# httpGet:
# path: /
# port: http
# readinessProbe:
# httpGet:
# path: /
# port: http
resources:
{{- toYaml .Values.scheduler.resources | nindent 12 }}
{{- with .Values.scheduler.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.scheduler.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.scheduler.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-scheduler
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-scheduler
spec:
type: {{ .Values.scheduler.service.type }}
ports:
- port: {{ .Values.scheduler.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-scheduler
@@ -0,0 +1,170 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "deepfence-console.fullname" . }}-server
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-server
spec:
{{- if not .Values.server.autoscaling.enabled }}
replicas: {{ .Values.server.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-server
template:
metadata:
{{- with .Values.server.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-server
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
automountServiceAccountToken: true
securityContext:
{{- toYaml .Values.server.podSecurityContext | nindent 8 }}
containers:
- name: server
securityContext:
{{- toYaml .Values.server.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.server.image.repository }}:{{ default .Values.global.imageTag .Values.server.image.tag }}"
imagePullPolicy: {{ .Values.server.image.pullPolicy }}
env:
- name: CONSOLE_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: DEEPFENCE_ACCESS_TOKEN_EXPIRY_MINUTES
value: "5"
- name: DEEPFENCE_CONSOLE_ORCHESTRATOR
value: "kubernetes"
envFrom:
- configMapRef:
name: "{{ include "deepfence-console.fullname" . }}-config"
- secretRef:
{{- if .Values.redis.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-redis"
{{- else }}
name: {{ .Values.redis.secretName }}
{{- end }}
- secretRef:
{{- if or .Values.fileserver.create .Values.aws_s3_buckets.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-fileserver"
{{- else if .Values.fileserver.secretName }}
name: {{ .Values.fileserver.secretName }}
{{- else if .Values.aws_s3_buckets.secretName }}
name: {{ .Values.aws_s3_buckets.secretName }}
{{- end }}
- secretRef:
{{- if .Values.kafka.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-kafka"
{{- else }}
name: {{ .Values.kafka.secretName }}
{{- end }}
- secretRef:
{{- if .Values.postgres.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-postgres"
{{- else }}
name: {{ .Values.postgres.secretName }}
{{- end }}
- secretRef:
{{- if .Values.neo4j.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-neo4j"
{{- else }}
name: {{ .Values.neo4j.secretName }}
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
- name: internal
containerPort: 8081
protocol: TCP
livenessProbe:
httpGet:
path: /deepfence/ping
port: http
initialDelaySeconds: 90
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
httpGet:
path: /deepfence/ping
port: http
initialDelaySeconds: 90
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
resources:
{{- toYaml .Values.server.resources | nindent 12 }}
{{- with .Values.server.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.server.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-server
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-server
spec:
type: ClusterIP
ports:
- port: {{ .Values.server.service.port }}
targetPort: http
protocol: TCP
name: http
- port: {{ .Values.server.service.internalPort }}
targetPort: internal
protocol: TCP
name: internal
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-server
---
{{- if .Values.server.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "deepfence-console.fullname" . }}-server
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-server
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "deepfence-console.fullname" . }}-server
minReplicas: {{ .Values.server.autoscaling.minReplicas }}
maxReplicas: {{ .Values.server.autoscaling.maxReplicas }}
metrics:
{{- if .Values.server.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.server.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.server.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.server.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
@@ -0,0 +1,153 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "deepfence-console.fullname" . }}-ui
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ui
spec:
{{- if not .Values.ui.autoscaling.enabled }}
replicas: {{ .Values.ui.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-ui
template:
metadata:
{{- with .Values.ui.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-ui
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.ui.podSecurityContext | nindent 8 }}
containers:
- name: ui
securityContext:
{{- toYaml .Values.ui.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.ui.image.repository }}:{{ default .Values.global.imageTag .Values.ui.image.tag }}"
imagePullPolicy: {{ .Values.ui.image.pullPolicy }}
envFrom:
- configMapRef:
name: "{{ include "deepfence-console.fullname" . }}-config"
- secretRef:
{{- if .Values.redis.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-redis"
{{- else }}
name: {{ .Values.redis.secretName }}
{{- end }}
- secretRef:
{{- if or .Values.fileserver.create .Values.aws_s3_buckets.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-fileserver"
{{- else if .Values.fileserver.secretName }}
name: {{ .Values.fileserver.secretName }}
{{- else if .Values.aws_s3_buckets.secretName }}
name: {{ .Values.aws_s3_buckets.secretName }}
{{- end }}
- secretRef:
{{- if .Values.kafka.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-kafka"
{{- else }}
name: {{ .Values.kafka.secretName }}
{{- end }}
- secretRef:
{{- if .Values.postgres.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-postgres"
{{- else }}
name: {{ .Values.postgres.secretName }}
{{- end }}
- secretRef:
{{- if .Values.neo4j.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-neo4j"
{{- else }}
name: {{ .Values.neo4j.secretName }}
{{- end }}
ports:
- name: http
containerPort: 8081
protocol: TCP
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
resources:
{{- toYaml .Values.ui.resources | nindent 12 }}
{{- with .Values.ui.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.ui.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.ui.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-ui
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ui
spec:
type: {{ .Values.ui.service.type }}
ports:
- port: {{ .Values.ui.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ui
---
{{- if .Values.ui.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "deepfence-console.fullname" . }}-ui
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-ui
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "deepfence-console.fullname" . }}-ui
minReplicas: {{ .Values.ui.autoscaling.minReplicas }}
maxReplicas: {{ .Values.ui.autoscaling.maxReplicas }}
metrics:
{{- if .Values.ui.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.ui.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.ui.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.ui.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
@@ -0,0 +1,146 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "deepfence-console.fullname" . }}-worker
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-worker
spec:
{{- if not .Values.worker.autoscaling.enabled }}
replicas: {{ .Values.worker.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "deepfence-console.selectorLabels" . | nindent 6 }}
name: {{ include "deepfence-console.fullname" . }}-worker
template:
metadata:
{{- with .Values.worker.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "deepfence-console.selectorLabels" . | nindent 8 }}
name: {{ include "deepfence-console.fullname" . }}-worker
spec:
serviceAccountName: {{ include "deepfence-console.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.worker.podSecurityContext | nindent 8 }}
containers:
- name: worker
securityContext:
{{- toYaml .Values.worker.securityContext | nindent 12 }}
image: "{{ .Values.global.imageRepoPrefix }}/{{ .Values.worker.image.repository }}:{{ default .Values.global.imageTag .Values.worker.image.tag }}"
imagePullPolicy: {{ .Values.worker.image.pullPolicy }}
env:
- name: DEEPFENCE_MODE
value: worker
envFrom:
- configMapRef:
name: "{{ include "deepfence-console.fullname" . }}-config"
- secretRef:
{{- if .Values.redis.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-redis"
{{- else }}
name: {{ .Values.redis.secretName }}
{{- end }}
- secretRef:
{{- if or .Values.fileserver.create .Values.aws_s3_buckets.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-fileserver"
{{- else if .Values.fileserver.secretName }}
name: {{ .Values.fileserver.secretName }}
{{- else if .Values.aws_s3_buckets.secretName }}
name: {{ .Values.aws_s3_buckets.secretName }}
{{- end }}
- secretRef:
{{- if .Values.kafka.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-kafka"
{{- else }}
name: {{ .Values.kafka.secretName }}
{{- end }}
- secretRef:
{{- if .Values.postgres.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-postgres"
{{- else }}
name: {{ .Values.postgres.secretName }}
{{- end }}
- secretRef:
{{- if .Values.neo4j.create }}
name: "{{ include "deepfence-console.fullname" . }}-secrets-neo4j"
{{- else }}
name: {{ .Values.neo4j.secretName }}
{{- end }}
ports:
- name: http
containerPort: {{ .Values.worker.service.port }}
protocol: TCP
# livenessProbe:
# httpGet:
# path: /
# port: http
# readinessProbe:
# httpGet:
# path: /
# port: http
resources:
{{- toYaml .Values.worker.resources | nindent 12 }}
{{- with .Values.worker.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.worker.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.worker.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "deepfence-console.fullname" . }}-worker
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-worker
spec:
type: {{ .Values.worker.service.type }}
ports:
- port: {{ .Values.worker.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "deepfence-console.selectorLabels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-worker
---
{{- if .Values.worker.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "deepfence-console.fullname" . }}-worker
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
name: {{ include "deepfence-console.fullname" . }}-worker
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "deepfence-console.fullname" . }}-worker
minReplicas: {{ .Values.worker.autoscaling.minReplicas }}
maxReplicas: {{ .Values.worker.autoscaling.maxReplicas }}
metrics:
{{- if .Values.worker.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.worker.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.worker.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.worker.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
@@ -0,0 +1,12 @@
---
{{- if .Values.imagePullSecret.create }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "deepfence-console.imagePullSecretName" . }}
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: {{ template "imagePullSecret" . }}
{{- end }}
@@ -0,0 +1,54 @@
{{- if .Values.serviceAccount.create }}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "deepfence-console.serviceAccountName" . }}
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: false
{{- if ( include "deepfence-console.imagePullSecretName" . ) }}
imagePullSecrets:
- name: {{ include "deepfence-console.imagePullSecretName" . }}
{{- end }}
{{- end }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "deepfence-console.fullname" . }}
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
roleRef:
kind: ClusterRole
name: {{ include "deepfence-console.serviceAccountName" . }}-role
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
{{- if .Values.serviceAccount.create }}
name: {{ include "deepfence-console.serviceAccountName" . }}
{{- else }}
name: {{ .Values.serviceAccount.name }}
{{- end }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "deepfence-console.serviceAccountName" . }}-role
labels:
{{- include "deepfence-console.labels" . | nindent 4 }}
rules:
- apiGroups:
- ''
resources:
- pods
- pods/log
verbs:
- get
- list
- watch