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,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
@@ -0,0 +1,6 @@
apiVersion: v2
appVersion: 2.0.1
description: A Helm chart for Kubernetes
name: deepfence-console
type: application
version: 2.0.2
@@ -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
@@ -0,0 +1,490 @@
# Default values for deepfence-console.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
nameOverride: ""
fullnameOverride: ""
global:
imageRepoPrefix: "quay.io"
# imageRepoPrefix: "docker.io"
# this image tag is used everywhere for console services
# to override set tag at service level
imageTag: 2.0.1
storageClass: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
imagePullSecret:
# Specifies whether a image pull secret should be created
create: true
registry: "quay.io"
# registry: "https://index.docker.io/v1/"
username: ""
password: ""
# The name of the imagePullSecret to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
kafka:
# Specifies whether a kafka cluster should be created
create: true
# if create false provide name of the existing secret
# secret format refer templates/console-secrets/kafka.yaml
secretName: ""
# if create true then below values are used to create kafka cluster
replicaCount: 1 # recommended 3 for high availability kafka
image:
repository: deepfenceio/deepfence_kafka_broker
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
config:
# required, recommended to generate new UUID using kafka-storage tool
STORAGE_UUID: hNQ55qppT5GGybF52ZGlOQ
storageClass: ""
volumeSize: 50G
resources:
limits:
cpu: 4000m
memory: 8192Mi
requests:
cpu: 500m
memory: 1024Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
postgres:
# Specifies whether a postgres database instance should be created
create: true
# if create false provide name of the existing secret
# secret format refer templates/deepfence-console-secrets/postgres.yaml
secretName: ""
# if create true then below values are used to create postgres database instance
secrets:
POSTGRES_PASSWORD: deepfence
POSTGRES_USER: deepfence
POSTGRES_DB: users
image:
repository: deepfenceio/deepfence_postgres
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
storageClass: ""
volumeSize: 50G
resources:
limits:
cpu: 2000m
memory: 2048Mi
requests:
cpu: 200m
memory: 512Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
redis:
# Specifies whether a postgres database instance should be created
create: true
# if create false provide name of the existing secret
# secret format refer templates/console-secrets/redis.yaml
secretName: ""
# if create true then below values are used to create postgres database instance
image:
repository: deepfenceio/deepfence_redis
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
storageClass: ""
volumeSize: 10G
resources:
limits:
cpu: 1000m
memory: 2048Mi
requests:
cpu: 100m
memory: 128Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
fileserver:
# Specifies whether a file server instance should be created
# set this to false if using S3
create: true
# if create false provide name of the existing secret
# secret format refer templates/console-secrets/minio.yaml
secretName: ""
# if create true then below values are used to create postgres database instance
secrets:
MINIO_ROOT_USER: deepfence
MINIO_ROOT_PASSWORD: deepfence
image:
repository: deepfenceio/deepfence_file_server
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
storageClass: ""
volumeSize: 50G
resources:
limits:
cpu: 2000m
memory: 4096Mi
requests:
cpu: 100m
memory: 128Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
# these values are used if fileserver.create=false
aws_s3_buckets:
# Specifies whether secret should be created
create: false
# if create false provide name of the existing secret
# secret format refer templates/deepfence-console-secrets/s3.yaml
secretName: ""
# public bucket with read permisons on objects for hosting vulnerability database
# S3 bucket permissions {"Version":"2012-10-17","Statement":[{"Sid":"database","Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":["arn:aws:s3:::<bucket-name>/database/*","arn:aws:s3:::<bucket-name>/database"]}]}
vulnerability_db_bucket: ""
# prvate bucket to host reports, sbom, etc.
data_bucket: ""
# aws credentials to access buckets
access_key_id : ""
secret_access_key: ""
# region where the buckets are hosted ex: ap-south-1
region: ""
neo4j:
# Specifies whether a neo4j database instance should be created
create: true
# if create false provide name of the existing secret
# secret format refer templates/console-secrets/neo4j.yaml
secretName: ""
# if create true then below values are used to create neo4j database instance
secrets:
# format should be username/password
NEO4J_AUTH: neo4j/e16908ffa5b9f8e9d4ed
# To enable periodic backup of neo4j database to S3, please set the values below
# AWS_ACCESS_KEY: ""
# AWS_SECRET_KEY: ""
# DF_REMOTE_BACKUP_ROOT: "" # S3 bucket name
config:
NEO4J_dbms_memory_pagecache_size: 2600m
NEO4JLABS_PLUGINS: '["apoc"]'
image:
repository: deepfenceio/deepfence_neo4j
pullPolicy: Always
# tag: 2.0.1
storageClass: ""
volumeSize: 50G
resources:
limits:
cpu: 4000m
memory: 16Gi
requests:
cpu: 1000m
memory: 2048Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
# ingress for console
ingress:
enable: false
## name of the ingress class for ingress provider installed on the cluster, cannot be empty
## Example: nginx
class: nginx
## host example: threat.example.com
host: ""
## annotations to customize ingress
annotations:
## nginx ingress annotations
## https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 200m
## aws alb annotations
## aws load balancer controller needs to be installed on the cluster for these annotations to work
## documentation aws load balancer controller https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/guide/ingress/annotations/
# alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
# alb.ingress.kubernetes.io/backend-protocol: HTTPS
## arn of the certificate available on aws certificate manager
# alb.ingress.kubernetes.io/certificate-arn: ""
# alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
# alb.ingress.kubernetes.io/scheme: internet-facing
# alb.ingress.kubernetes.io/target-group-attributes: stickiness.enabled=true,stickiness.lb_cookie.duration_seconds=3600
# alb.ingress.kubernetes.io/target-type: ip
router:
replicaCount: 1
image:
repository: deepfenceio/deepfence_router
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
forceHttpsRedirect: true
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
service:
## useful if deepfence-router chart is not installed
create: false
# useful for configuring loadbalancer options on supported clouds
annotations: {}
## service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
type: ClusterIP # set service type to cluster ip and enable ingress if available
httpsPort: 443
httpPort: 80
resources:
limits:
cpu: 3000m
memory: 4096Mi
requests:
cpu: 100m
memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
nodeSelector: {}
tolerations: []
affinity: {}
# Use custom ssl certificate for Deepfence UI
# custom certificates can be configured using two options
# existing secret or base64 encoded cert and key string
# provide one off the two options to configure custom certificates
tls:
# provide secret name which contains tls cert and key
# reference: https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
# make sure to create secret in the same namespace as that of the console
secretName: ""
# embed given cert and key as secret and mount to router pod
# provide certificate and key in below example format
# cert: |-
# -----BEGIN CERTIFICATE-----
# MIIFCTCCAvGgAwIBAgIUNshy8GFTjfUR7inZ1JCcN+tDuh4wDQYJKoZIhvcNAQEL
# .....
# BMepE4d9+TQFcPQ/OKSlP8FB2nPKZJdM+JlXDFWqeKvbdYS4QErRLd33qUmq
# -----END CERTIFICATE-----
# key: |-
# -----BEGIN PRIVATE KEY-----
# MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDECeUraonCz/89
# .....
# bHEvWp7ugCTFhurM+lla0d+ElDO2
# -----END PRIVATE KEY-----
cert: ""
key: ""
server:
replicaCount: 1
image:
repository: deepfenceio/deepfence_server
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
service:
type: ClusterIP
port: 8080
internalPort: 8081
resources:
limits:
cpu: 3000m
memory: 4096Mi
requests:
cpu: 250m
memory: 256Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
nodeSelector: {}
tolerations: []
affinity: {}
worker:
replicaCount: 1
image:
repository: deepfenceio/deepfence_worker
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
service:
type: ClusterIP
port: 8080
resources:
limits:
cpu: 2000m
memory: 8000Mi
requests:
cpu: 250m
memory: 256Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
nodeSelector: {}
tolerations: []
affinity: {}
ingester:
replicaCount: 1
image:
repository: deepfenceio/deepfence_worker
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
service:
type: ClusterIP
port: 8080
resources:
limits:
cpu: 2000m
memory: 4096Mi
requests:
cpu: 100m
memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
nodeSelector: {}
tolerations: []
affinity: {}
scheduler:
image:
repository: deepfenceio/deepfence_worker
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
service:
type: ClusterIP
port: 8080
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
ui:
replicaCount: 1
image:
repository: deepfenceio/deepfence_ui
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
service:
type: ClusterIP
port: 8081
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {}
tolerations: []
affinity: {}
console_agents:
enabled: true
cluster_name: "tm-cluster"
enableGraphReport: true
userDefinedTags: ""
instanceIdSuffix: "N"
mountContainerRuntimeSocket:
dockerSock: false
# Change if socket path is not the following
dockerSockPath: "/var/run/docker.sock"
containerdSock: true
# Change if socket path is not the following
containerdSockPath: "/run/containerd/containerd.sock"
crioSock: false
# Change if socket path is not the following
crioSockPath: "/var/run/crio/crio.sock"
podmanSock: false
# Change if socket path is not the following
podmanSockPath: "/run/podman/podman.sock"
agent:
image:
repository: deepfenceio/deepfence_agent
pullPolicy: Always
# Overrides the image tag whose default is .global.imageTag
# tag: 2.0.1
resources:
requests:
cpu: 150m
memory: 512Mi
limits:
cpu: 1500m
memory: 2048Mi
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
nodeSelector: {"kubernetes.io/os": "linux"}
tolerations:
- operator: "Exists"
effect: "NoSchedule"
- operator: "Exists"
effect: "NoExecute"
affinity: {}