apiVersion: v1 kind: ServiceAccount metadata: name: mtproxy-link-reader --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: mtproxy-link-reader rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["mtproxy-links", "telemt-links"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: mtproxy-link-reader roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mtproxy-link-reader subjects: - kind: ServiceAccount name: mtproxy-link-reader --- apiVersion: apps/v1 kind: Deployment metadata: name: mtproxy-link-reader labels: app: mtproxy-link-reader spec: replicas: 1 selector: matchLabels: app: mtproxy-link-reader template: metadata: labels: app: mtproxy-link-reader spec: serviceAccountName: mtproxy-link-reader nodeSelector: homelab.hexor.cy/exposure: external securityContext: runAsNonRoot: true runAsUser: 1000 seccompProfile: type: RuntimeDefault containers: - name: reader image: ultradesu/k8s-secrets:0.2.2@sha256:f206942d21ca9dcd131d6e19ba26cc17671815919217aef657b30a9f85854778 imagePullPolicy: IfNotPresent args: - --secrets - mtproxy-links,telemt-links - --namespace - mtproxy - --port - "3000" ports: - name: http containerPort: 3000 readinessProbe: httpGet: path: /health port: http livenessProbe: httpGet: path: /health port: http resources: requests: cpu: 50m memory: 64Mi limits: memory: 128Mi securityContext: readOnlyRootFilesystem: true allowPrivilegeEscalation: false capabilities: drop: ["ALL"] --- apiVersion: v1 kind: Service metadata: name: mtproxy-link-reader spec: selector: app: mtproxy-link-reader ports: - name: http port: 80 targetPort: http