| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: dataops-hook-bootstrap
- namespace: {{ .Values.namespace }}
- annotations:
- helm.sh/hook: pre-install,pre-upgrade
- helm.sh/hook-weight: "-40"
- helm.sh/hook-delete-policy: before-hook-creation
- automountServiceAccountToken: false
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: Role
- metadata:
- name: dataops-hook-bootstrap
- namespace: {{ .Values.namespace }}
- annotations:
- helm.sh/hook: pre-install,pre-upgrade
- helm.sh/hook-weight: "-39"
- helm.sh/hook-delete-policy: before-hook-creation
- rules: []
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: RoleBinding
- metadata:
- name: dataops-hook-bootstrap
- namespace: {{ .Values.namespace }}
- annotations:
- helm.sh/hook: pre-install,pre-upgrade
- helm.sh/hook-weight: "-38"
- helm.sh/hook-delete-policy: before-hook-creation
- subjects:
- - kind: ServiceAccount
- name: dataops-hook-bootstrap
- namespace: {{ .Values.namespace }}
- roleRef: {apiGroup: rbac.authorization.k8s.io, kind: Role, name: dataops-hook-bootstrap}
- ---
- apiVersion: policy/v1
- kind: PodDisruptionBudget
- metadata:
- name: dataops-backend
- namespace: {{ .Values.namespace }}
- spec: {minAvailable: 1, selector: {matchLabels: {app: dataops-backend}}}
- ---
- apiVersion: networking.k8s.io/v1
- kind: NetworkPolicy
- metadata:
- name: dataops-default-deny
- namespace: {{ .Values.namespace }}
- spec: {podSelector: {}, policyTypes: [Ingress, Egress]}
- ---
- apiVersion: batch/v1
- kind: Job
- metadata:
- name: dataops-role-init
- namespace: {{ .Values.namespace }}
- labels: {app: dataops-role-init}
- annotations:
- helm.sh/hook: pre-install,pre-upgrade
- helm.sh/hook-weight: "-20"
- helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
- spec:
- template:
- metadata: {labels: {app: dataops-role-init}}
- spec:
- serviceAccountName: dataops-hook-bootstrap
- automountServiceAccountToken: false
- restartPolicy: Never
- securityContext: {seccompProfile: {type: RuntimeDefault}}
- containers:
- - name: role-init
- image: "{{ .Values.images.migrator }}"
- securityContext: {runAsNonRoot: true, allowPrivilegeEscalation: false, readOnlyRootFilesystem: true, capabilities: {drop: ["ALL"]}}
- env: [{name: DB_ROLE_INIT_DATABASE_URL, valueFrom: {secretKeyRef: {name: "{{ .Values.secrets.database }}", key: migration_url}}}]
- ---
- apiVersion: batch/v1
- kind: Job
- metadata:
- name: dataops-db-migrate
- namespace: {{ .Values.namespace }}
- labels: {app: dataops-db-migrate}
- annotations:
- helm.sh/hook: pre-install,pre-upgrade
- helm.sh/hook-weight: "-10"
- helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
- spec:
- template:
- metadata: {labels: {app: dataops-db-migrate}}
- spec:
- serviceAccountName: dataops-hook-bootstrap
- automountServiceAccountToken: false
- restartPolicy: Never
- securityContext: {seccompProfile: {type: RuntimeDefault}}
- containers:
- - name: db-migrate
- image: "{{ .Values.images.migrator }}"
- securityContext: {runAsNonRoot: true, allowPrivilegeEscalation: false, readOnlyRootFilesystem: true, capabilities: {drop: ["ALL"]}}
- env: [{name: MIGRATION_DATABASE_URL, valueFrom: {secretKeyRef: {name: "{{ .Values.secrets.database }}", key: migration_url}}}]
- ---
- apiVersion: networking.k8s.io/v1
- kind: NetworkPolicy
- metadata:
- name: dataops-hook-egress
- namespace: {{ .Values.namespace }}
- annotations:
- helm.sh/hook: pre-install,pre-upgrade
- helm.sh/hook-weight: "-30"
- helm.sh/hook-delete-policy: before-hook-creation
- spec:
- podSelector:
- matchExpressions:
- - key: app
- operator: In
- values: [dataops-role-init, dataops-db-migrate]
- policyTypes: [Egress]
- egress:
- - to:
- - namespaceSelector: {matchLabels: {kubernetes.io/metadata.name: kube-system}}
- podSelector: {matchLabels: {k8s-app: kube-dns}}
- ports: [{protocol: UDP, port: 53}, {protocol: TCP, port: 53}]
- - to:
- - podSelector: {matchLabels: {app: dataops-postgres}}
- ports: [{protocol: TCP, port: 5432}]
- ---
- apiVersion: networking.k8s.io/v1
- kind: NetworkPolicy
- metadata:
- name: dataops-runtime-egress
- namespace: {{ .Values.namespace }}
- spec:
- podSelector:
- matchExpressions:
- - key: app
- operator: In
- values: [dataops-backend, dataops-runner]
- policyTypes: [Egress]
- egress:
- - to:
- - namespaceSelector: {matchLabels: {kubernetes.io/metadata.name: kube-system}}
- podSelector: {matchLabels: {k8s-app: kube-dns}}
- ports: [{protocol: UDP, port: 53}, {protocol: TCP, port: 53}]
- - to:
- - podSelector: {matchLabels: {app: dataops-postgres}}
- ports: [{protocol: TCP, port: 5432}]
- - to:
- - podSelector: {matchLabels: {app: dataops-neo4j}}
- ports: [{protocol: TCP, port: 7687}]
- - to:
- - podSelector: {matchLabels: {app: dataops-minio}}
- ports: [{protocol: TCP, port: 9000}]
- - to:
- - podSelector:
- matchExpressions:
- - key: app
- operator: In
- values: [dataops-backend, dataops-runner]
- ports: [{protocol: TCP, port: 5500}, {protocol: TCP, port: 5600}]
- ---
- apiVersion: networking.k8s.io/v1
- kind: NetworkPolicy
- metadata:
- name: dataops-backend-ingress
- namespace: {{ .Values.namespace }}
- spec:
- podSelector: {matchLabels: {app: dataops-backend}}
- policyTypes: [Ingress]
- ingress:
- - from:
- - namespaceSelector: {matchLabels: {kubernetes.io/metadata.name: dataops-ingress}}
- podSelector: {matchLabels: {app: dataops-ingress-controller}}
- ports: [{protocol: TCP, port: 5500}]
- - from:
- - namespaceSelector: {matchLabels: {kubernetes.io/metadata.name: dataops-monitoring}}
- podSelector: {matchLabels: {app: dataops-health-check}}
- ports: [{protocol: TCP, port: 5500}]
|