apiVersion: v1
kind: Pod
metadata:
  annotations:
    checksum/config: 32f250d8ef1605eb2faf2e58042869208d6923cfce53b0b0ada59431dce0effc
    checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24
    checksum/secret: 0983c3476dcc3deba9ef217f7b41d2855fca98aca867bed74cee9c27b0a4a8ff
    kubectl.kubernetes.io/default-container: grafana
  creationTimestamp: "2026-09-01T04:25:46Z"
  generateName: kube-prometheus-stack-grafana-6649b95548-
  labels:
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/name: grafana
    pod-template-hash: 6649b95548
  name: kube-prometheus-stack-grafana-6649b95548-j5kdg
  namespace: monitoring
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: kube-prometheus-stack-grafana-6649b95548
    uid: fcfe5797-8eff-45f1-a81a-93fc6e3262ae
  resourceVersion: "5478"
  uid: f743f81e-a303-4046-9611-81a7f78bd3bb
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-jszq5
      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-jszq5
      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-jszq5
      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-jszq5
    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-01T04:25:46Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-09-01T04:26:17Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-09-01T04:26:17Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-09-01T04:25:46Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://1c812b579a4d239bf3ea85dea00c74bbf52e8bbb77b7fdab571679d53e4dd6c1
    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-01T04:26:03Z"
  - containerID: containerd://9aa4112eba41a74681175f2ee072bca94f134df7ad4f266b1fa2f6124643a05d
    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-01T04:25:52Z"
  - containerID: containerd://21a82c1799eb801e4c5d836ea02d5bbd65e329385422266bc872f98c428fd798
    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-01T04:25:52Z"
  hostIP: 162.253.55.93
  phase: Running
  podIP: 10.0.0.131
  podIPs:
  - ip: 10.0.0.131
  qosClass: BestEffort
  startTime: "2026-09-01T04:25:46Z"
