apiVersion: v1
kind: Pod
metadata:
  annotations:
    checksum/config: 5591acee2ca724d7c7be067dfdef56669fb91832a08546fdd38b253a4ad2a763
    checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24
    checksum/secret: 5eac45b346b8dcb0d56367bd14ba166073dfe79e2acaec24ef6eec1d98e33180
    kubectl.kubernetes.io/default-container: grafana
  creationTimestamp: "2026-09-07T08:44:01Z"
  generateName: kube-prometheus-stack-grafana-7566fbcbb-
  labels:
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/name: grafana
    pod-template-hash: 7566fbcbb
  name: kube-prometheus-stack-grafana-7566fbcbb-dczcl
  namespace: monitoring
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: kube-prometheus-stack-grafana-7566fbcbb
    uid: c35a8253-b5c4-4c26-96e0-20fb6d7ad2ff
  resourceVersion: "5064"
  uid: 0ade140a-a0c3-47e6-9a8b-2993fbe0a562
spec:
  automountServiceAccountToken: true
  containers:
  - env:
    - name: METHOD
      value: WATCH
    - name: LABEL
      value: grafana_dashboard
    - name: LABEL_VALUE
      value: "1"
    - name: FOLDER
      value: /tmp/dashboards
    - name: RESOURCE
      value: both
    - name: NAMESPACE
      value: ALL
    - name: REQ_USERNAME
      valueFrom:
        secretKeyRef:
          key: admin-user
          name: kube-prometheus-stack-grafana
    - name: REQ_PASSWORD
      valueFrom:
        secretKeyRef:
          key: admin-password
          name: kube-prometheus-stack-grafana
    - name: REQ_URL
      value: http://localhost:3000/api/admin/provisioning/dashboards/reload
    - name: REQ_METHOD
      value: POST
    image: harbor.atmosphere.dev/quay.io/kiwigrid/k8s-sidecar:1.26.1
    imagePullPolicy: IfNotPresent
    name: grafana-sc-dashboard
    resources: {}
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
      seccompProfile:
        type: RuntimeDefault
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /tmp/dashboards
      name: sc-dashboard-volume
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-9lpk7
      readOnly: true
  - env:
    - name: METHOD
      value: WATCH
    - name: LABEL
      value: grafana_datasource
    - name: LABEL_VALUE
      value: "1"
    - name: FOLDER
      value: /etc/grafana/provisioning/datasources
    - name: RESOURCE
      value: both
    - name: REQ_USERNAME
      valueFrom:
        secretKeyRef:
          key: admin-user
          name: kube-prometheus-stack-grafana
    - name: REQ_PASSWORD
      valueFrom:
        secretKeyRef:
          key: admin-password
          name: kube-prometheus-stack-grafana
    - name: REQ_URL
      value: http://localhost:3000/api/admin/provisioning/datasources/reload
    - name: REQ_METHOD
      value: POST
    image: harbor.atmosphere.dev/quay.io/kiwigrid/k8s-sidecar:1.26.1
    imagePullPolicy: IfNotPresent
    name: grafana-sc-datasources
    resources: {}
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
      seccompProfile:
        type: RuntimeDefault
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/grafana/provisioning/datasources
      name: sc-datasources-volume
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-9lpk7
      readOnly: true
  - env:
    - name: POD_IP
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: status.podIP
    - name: GF_SECURITY_ADMIN_USER
      valueFrom:
        secretKeyRef:
          key: admin-user
          name: kube-prometheus-stack-grafana
    - name: GF_SECURITY_ADMIN_PASSWORD
      valueFrom:
        secretKeyRef:
          key: admin-password
          name: kube-prometheus-stack-grafana
    - name: GF_PATHS_DATA
      value: /var/lib/grafana/
    - name: GF_PATHS_LOGS
      value: /var/log/grafana
    - name: GF_PATHS_PLUGINS
      value: /var/lib/grafana/plugins
    - name: GF_PATHS_PROVISIONING
      value: /etc/grafana/provisioning
    image: harbor.atmosphere.dev/docker.io/grafana/grafana:11.0.0
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 10
      httpGet:
        path: /api/health
        port: 3000
        scheme: HTTP
      initialDelaySeconds: 60
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 30
    name: grafana
    ports:
    - containerPort: 3000
      name: grafana
      protocol: TCP
    - containerPort: 9094
      name: gossip-tcp
      protocol: TCP
    - containerPort: 9094
      name: gossip-udp
      protocol: UDP
    readinessProbe:
      failureThreshold: 3
      httpGet:
        path: /api/health
        port: 3000
        scheme: HTTP
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 1
    resources: {}
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
      seccompProfile:
        type: RuntimeDefault
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/grafana/grafana.ini
      name: config
      subPath: grafana.ini
    - mountPath: /var/lib/grafana
      name: storage
    - mountPath: /tmp/dashboards
      name: sc-dashboard-volume
    - mountPath: /etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml
      name: sc-dashboard-provider
      subPath: provider.yaml
    - mountPath: /etc/grafana/provisioning/datasources
      name: sc-datasources-volume
    - mountPath: /etc/secrets/auth_generic_oauth
      name: auth-generic-oauth-secret-mount
      readOnly: true
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-9lpk7
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  nodeName: instance
  nodeSelector:
    openstack-control-plane: enabled
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext:
    fsGroup: 472
    runAsGroup: 472
    runAsNonRoot: true
    runAsUser: 472
  serviceAccount: kube-prometheus-stack-grafana
  serviceAccountName: kube-prometheus-stack-grafana
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - configMap:
      defaultMode: 420
      name: kube-prometheus-stack-grafana
    name: config
  - emptyDir: {}
    name: storage
  - emptyDir: {}
    name: sc-dashboard-volume
  - configMap:
      defaultMode: 420
      name: kube-prometheus-stack-grafana-config-dashboards
    name: sc-dashboard-provider
  - emptyDir: {}
    name: sc-datasources-volume
  - name: auth-generic-oauth-secret-mount
    secret:
      defaultMode: 288
      secretName: kube-prometheus-stack-grafana-client-secret
  - name: kube-api-access-9lpk7
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2026-09-07T08:44:01Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-09-07T08:44:31Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-09-07T08:44:31Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-09-07T08:44:01Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://7fae56b76d2ee765d9f0a171bec91ae97a5d924e4b55510b35f782e3a5c8ba73
    image: harbor.atmosphere.dev/docker.io/grafana/grafana:11.0.0
    imageID: harbor.atmosphere.dev/docker.io/grafana/grafana@sha256:0dc5a246ab16bb2c38a349fb588174e832b4c6c2db0981d0c3e6cd774ba66a54
    lastState: {}
    name: grafana
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-09-07T08:44:15Z"
  - containerID: containerd://e1d3618a1a7b38d1d986b71b6a0934afc7a60d59c1619ebf6d33d0e2e0a9809d
    image: harbor.atmosphere.dev/quay.io/kiwigrid/k8s-sidecar:1.26.1
    imageID: harbor.atmosphere.dev/quay.io/kiwigrid/k8s-sidecar@sha256:b8d5067137fec093cf48670dc3a1dbb38f9e734f3a6683015c2e89a45db5fd16
    lastState: {}
    name: grafana-sc-dashboard
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-09-07T08:44:06Z"
  - containerID: containerd://f1ad51fc7492a06b2faf9aeffb409ed6b0cd7db546804e4a7f1c4c458f23fd13
    image: harbor.atmosphere.dev/quay.io/kiwigrid/k8s-sidecar:1.26.1
    imageID: harbor.atmosphere.dev/quay.io/kiwigrid/k8s-sidecar@sha256:b8d5067137fec093cf48670dc3a1dbb38f9e734f3a6683015c2e89a45db5fd16
    lastState: {}
    name: grafana-sc-datasources
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-09-07T08:44:06Z"
  hostIP: 162.253.55.69
  phase: Running
  podIP: 10.0.0.161
  podIPs:
  - ip: 10.0.0.161
  qosClass: BestEffort
  startTime: "2026-09-07T08:44:01Z"
