apiVersion: v1
kind: Pod
metadata:
  annotations:
    checksum/config: f4cb0d26b0a8e4fed05d559a73daa6b4783e5112fb28b6f935482983c904ffbb
    checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24
    checksum/secret: 706afee791c1917e0bd15d21af9dc3720a4b2522962af649777c048060999dcc
    kubectl.kubernetes.io/default-container: grafana
  creationTimestamp: "2026-05-16T09:30:17Z"
  generateName: kube-prometheus-stack-grafana-69fc9ddc99-
  labels:
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/name: grafana
    pod-template-hash: 69fc9ddc99
  name: kube-prometheus-stack-grafana-69fc9ddc99-xh7cs
  namespace: monitoring
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: kube-prometheus-stack-grafana-69fc9ddc99
    uid: 5e73c896-7666-40c2-8326-12b643d15f21
  resourceVersion: "5359"
  uid: f34205cb-36ce-4cad-8fa6-8ed7549c0f75
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-8v766
      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-8v766
      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-8v766
      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-8v766
    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-05-16T09:30:18Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-05-16T09:30:48Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-05-16T09:30:48Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-05-16T09:30:17Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://155717d7011bb6966822a9c008de0d489d0f150fb65ea1de8932c50103b15e2d
    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-05-16T09:30:33Z"
  - containerID: containerd://689f41939e530c5bacc97f9c520bdc6da61c455bb2495e7149702723d4a455e9
    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-05-16T09:30:22Z"
  - containerID: containerd://a3c24b5a674c4f7f39a33afd2138bca68a6cd23d944759b46e8d02503735620b
    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-05-16T09:30:22Z"
  hostIP: 162.253.55.100
  phase: Running
  podIP: 10.0.0.187
  podIPs:
  - ip: 10.0.0.187
  qosClass: BestEffort
  startTime: "2026-05-16T09:30:18Z"
