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.0 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