apiVersion: v1 kind: Namespace metadata: name: envctl labels: platform.edge.ncr.com/component: 'envctl' workload.edge.ncr.com: 'platform' --- apiVersion: v1 kind: ServiceAccount metadata: name: envctl namespace: envctl labels: platform.edge.ncr.com/component: 'envctl' imagePullSecrets: - name: edge-docker-pull-secret --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: envctl labels: platform.edge.ncr.com/component: 'envctl' roleRef: name: envctl kind: ClusterRole apiGroup: rbac.authorization.k8s.io subjects: - name: envctl namespace: envctl kind: ServiceAccount --- apiVersion: apps/v1 kind: Deployment metadata: name: envctl namespace: envctl labels: platform.edge.ncr.com/component: envctl spec: replicas: 1 selector: matchLabels: platform.edge.ncr.com/component: envctl template: metadata: labels: platform.edge.ncr.com/component: envctl spec: serviceAccountName: envctl priorityClassName: edge-p5-non-critical-infra containers: - name: envctl image: bzl://cmd/edge/envctl:container_push ports: - name: metrics containerPort: 8080 resources: limits: cpu: "100m" imagePullPolicy: IfNotPresent --- apiVersion: v1 kind: Service metadata: name: envctl namespace: envctl labels: platform.edge.ncr.com/component: envctl spec: selector: platform.edge.ncr.com/component: envctl ports: - name: metrics port: 8080 --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: envctl namespace: envctl labels: platform.edge.ncr.com/component: envctl annotations: monitoring.edge.ncr.com/allowed-metrics: | edge_envctl_reconcile_condition_status edge_envctl_reconcile_duration_seconds_sum edge_envctl_reconcile_duration_seconds_count edge_envctl_reconcile_duration_seconds_bucket spec: selector: matchLabels: platform.edge.ncr.com/component: envctl endpoints: - port: metrics