Files
qinglong/deploy/kubernetes/ql3-cluster/operations/plugin-package-management/base/deployment.yaml
T

216 lines
8.0 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: ql3-plugin-package-management
namespace: qinglong3-system
labels:
app.kubernetes.io/name: ql3-plugin-package-management
app.kubernetes.io/component: plugin-package-management
app.kubernetes.io/part-of: qinglong3
spec:
replicas: 2
minReadySeconds: 10
revisionHistoryLimit: 3
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
selector:
matchLabels:
app.kubernetes.io/name: ql3-plugin-package-management
app.kubernetes.io/component: plugin-package-management
template:
metadata:
labels:
app.kubernetes.io/name: ql3-plugin-package-management
app.kubernetes.io/component: plugin-package-management
app.kubernetes.io/part-of: qinglong3
spec:
serviceAccountName: ql3-plugin-package-management
automountServiceAccountToken: false
terminationGracePeriodSeconds: 30
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
seccompProfile:
type: RuntimeDefault
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app.kubernetes.io/name: ql3-plugin-package-management
app.kubernetes.io/component: plugin-package-management
containers:
- name: management
image: qinglong3-cluster-admin:3.0.0-alpha.2
imagePullPolicy: IfNotPresent
command:
- node
- /opt/qinglong/node_modules/@qinglong/cluster-admin/dist/plugin-package/management/pluginPackageManagementCli.js
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
env:
- name: QL3_PROFILE
value: cluster-admin
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_ENABLED
value: 'true'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_HOST
value: 0.0.0.0
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_PORT
value: '8443'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_TLS_CERT_FILE
value: /var/run/secrets/qinglong3/plugin-package-management-tls/tls.crt
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_TLS_KEY_FILE
value: /var/run/secrets/qinglong3/plugin-package-management-tls/tls.key
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_IDENTITY_KEYSET_FILE
value: /var/run/qinglong3/plugin-package-management-identity/keyset.json
- name: QL3_PLUGIN_PACKAGE_PUBLISHER_TRUST_FILE
value: /var/run/qinglong3/plugin-package-trust/publishers.json
- name: QL3_PLUGIN_PACKAGE_TRUST_AUTHORITY_PROJECT_ID
value: cluster-trust-authority
- name: QL3_PLUGIN_PACKAGE_TRUST_AUTHORITY_ID
value: cluster
- name: QL3_PLUGIN_PACKAGE_TRUST_OBSERVER_ID
value: cluster-package-manager
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_APPROVAL_LIFETIME_MS
value: '900000'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_QUOTA_WINDOW_MS
value: '60000'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_PROPOSE_QUOTA
value: '30'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_DECIDE_QUOTA
value: '60'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_INSPECT_QUOTA
value: '600'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_MAX_BODY_BYTES
value: '65536'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_MAX_CONNECTIONS
value: '32'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_MAX_CONCURRENT_REQUESTS
value: '16'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_REQUEST_TIMEOUT_MS
value: '10000'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_DRAIN_TIMEOUT_MS
value: '10000'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_RATE_WINDOW_MS
value: '60000'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_PEER_REQUEST_LIMIT
value: '60'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_GLOBAL_REQUEST_LIMIT
value: '600'
- name: QL3_PLUGIN_PACKAGE_MANAGEMENT_MAX_RATE_LIMIT_PEERS
value: '512'
- name: QL3_POSTGRES_PACKAGE_MANAGER_TLS_MODE
value: verify-full
- name: QL3_POSTGRES_PACKAGE_MANAGER_TLS_CA_FILE
value: /var/run/secrets/qinglong3/postgres-package-manager/ca.crt
- name: QL3_POSTGRES_PACKAGE_MANAGER_APPLICATION_NAME
value: qinglong3-plugin-package-manager
- name: QL3_POSTGRES_PACKAGE_MANAGER_MAX_CONNECTIONS
value: '2'
- name: QL3_POSTGRES_PACKAGE_MANAGER_URL
valueFrom:
secretKeyRef:
name: ql3-cluster-plugin-package-management-database
key: postgres-package-manager-url
- name: QL3_POSTGRES_PACKAGE_MANAGER_TLS_SERVERNAME
valueFrom:
secretKeyRef:
name: ql3-cluster-plugin-package-management-database
key: postgres-tls-servername
ports:
- name: https
containerPort: 8443
protocol: TCP
startupProbe:
httpGet:
path: /livez
port: https
scheme: HTTPS
periodSeconds: 2
timeoutSeconds: 1
failureThreshold: 30
readinessProbe:
httpGet:
path: /readyz
port: https
scheme: HTTPS
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 2
livenessProbe:
httpGet:
path: /livez
port: https
scheme: HTTPS
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 3
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: '1'
memory: 512Mi
volumeMounts:
- name: tmp
mountPath: /tmp
- name: management-tls
mountPath: /var/run/secrets/qinglong3/plugin-package-management-tls
readOnly: true
- name: management-identity
mountPath: /var/run/qinglong3/plugin-package-management-identity
readOnly: true
- name: plugin-package-trust
mountPath: /var/run/qinglong3/plugin-package-trust
readOnly: true
- name: postgres-package-manager-ca
mountPath: /var/run/secrets/qinglong3/postgres-package-manager
readOnly: true
volumes:
- name: tmp
emptyDir:
medium: Memory
sizeLimit: 16Mi
- name: management-tls
secret:
secretName: ql3-plugin-package-management-tls
defaultMode: 288
items:
- key: tls.crt
path: tls.crt
- key: tls.key
path: tls.key
- name: management-identity
secret:
secretName: ql3-plugin-package-management-identity
defaultMode: 292
items:
- key: keyset.json
path: keyset.json
- name: plugin-package-trust
configMap:
name: ql3-plugin-publisher-trust
defaultMode: 292
items:
- key: publishers.json
path: publishers.json
- name: postgres-package-manager-ca
secret:
secretName: ql3-cluster-plugin-package-management-database
defaultMode: 292
items:
- key: postgres-ca.crt
path: ca.crt