Files
qinglong/deploy/kubernetes/ql3-cluster/operations/security-administration/base/job.yaml
T

135 lines
4.8 KiB
YAML

apiVersion: batch/v1
kind: Job
metadata:
name: ql3-security-administration
namespace: qinglong3-system
labels:
app.kubernetes.io/name: ql3-security-administration
app.kubernetes.io/component: security-administration
app.kubernetes.io/part-of: qinglong3
qinglong.io/execution-model: caller-driven
spec:
backoffLimit: 0
activeDeadlineSeconds: 300
ttlSecondsAfterFinished: 600
template:
metadata:
labels:
app.kubernetes.io/name: ql3-security-administration
app.kubernetes.io/component: security-administration
app.kubernetes.io/part-of: qinglong3
qinglong.io/execution-model: caller-driven
spec:
serviceAccountName: ql3-security-administration
automountServiceAccountToken: false
enableServiceLinks: false
restartPolicy: Never
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
seccompProfile:
type: RuntimeDefault
initContainers:
- name: stage-private-input
image: qinglong3-cluster-admin:3.0.0-alpha.0
imagePullPolicy: IfNotPresent
command:
- node
- /opt/qinglong/node_modules/@qinglong/cluster-admin/dist/security-administration/clusterAdministrationKubernetesInputStageCli.js
args:
- --source=/var/run/secrets/qinglong3/security-administration-projected
- --target=/var/run/qinglong3/security-administration-private/input
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
resources:
requests:
cpu: 25m
memory: 48Mi
limits:
cpu: 250m
memory: 128Mi
volumeMounts:
- name: projected-input
mountPath: /var/run/secrets/qinglong3/security-administration-projected
readOnly: true
- name: private-input
mountPath: /var/run/qinglong3/security-administration-private
containers:
- name: administrator
image: qinglong3-cluster-admin:3.0.0-alpha.0
imagePullPolicy: IfNotPresent
command:
- node
- /opt/qinglong/node_modules/@qinglong/cluster-admin/dist/security-administration/clusterAdministrationCli.js
args:
- --command=/var/run/qinglong3/security-administration-private/input/command.json
- --assertion=/var/run/qinglong3/security-administration-private/input/assertion.jwt
- --keyset=/var/run/qinglong3/security-administration-private/input/keyset.json
- --pepper=/var/run/qinglong3/security-administration-private/input/pepper
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
env:
- name: QL3_POSTGRES_ADMIN_TLS_MODE
value: verify-full
- name: QL3_POSTGRES_ADMIN_TLS_CA_FILE
value: /var/run/secrets/qinglong3/postgres-security-administration/ca.crt
- name: QL3_POSTGRES_ADMIN_URL
valueFrom:
secretKeyRef:
name: ql3-security-administration-database
key: postgres-admin-url
- name: QL3_POSTGRES_ADMIN_TLS_SERVERNAME
valueFrom:
secretKeyRef:
name: ql3-security-administration-database
key: postgres-tls-servername
resources:
requests:
cpu: 25m
memory: 48Mi
limits:
cpu: 250m
memory: 128Mi
volumeMounts:
- name: private-input
mountPath: /var/run/qinglong3/security-administration-private
readOnly: true
- name: postgres-ca
mountPath: /var/run/secrets/qinglong3/postgres-security-administration
readOnly: true
volumes:
- name: projected-input
secret:
secretName: ql3-security-administration-input
defaultMode: 288
items:
- key: command.json
path: command.json
- key: assertion.jwt
path: assertion.jwt
- key: keyset.json
path: keyset.json
- key: pepper
path: pepper
- name: private-input
emptyDir:
medium: Memory
sizeLimit: 1Mi
- name: postgres-ca
secret:
secretName: ql3-security-administration-database
defaultMode: 292
items:
- key: postgres-ca.crt
path: ca.crt