apiVersion: v1
kind: Pod
metadata:
  annotations:
    checksum/config: 05847512fdaac5c053e7fe74b25e8f631deae1db132d3624e6f9b1ef87357f1f
    checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24
    checksum/secret: fb602af698653ea9d496e7cbff360565d0abc14eee05c21fb6a333f573de080b
    kubectl.kubernetes.io/default-container: grafana
  creationTimestamp: "2026-04-07T15:26:26Z"
  generateName: kube-prometheus-stack-grafana-7ffd88fd6b-
  labels:
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/name: grafana
    pod-template-hash: 7ffd88fd6b
  name: kube-prometheus-stack-grafana-7ffd88fd6b-57v9l
  namespace: monitoring
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: kube-prometheus-stack-grafana-7ffd88fd6b
    uid: 4c731ca1-0398-44db-8e08-eb987a73ca13
  resourceVersion: "5412"
  uid: 87b17852-9f52-4c1c-b90e-d2a77bfef32a
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-srj4n
      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-srj4n
      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-srj4n
      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-srj4n
    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-04-07T15:26:26Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-04-07T15:26:57Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-04-07T15:26:57Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-04-07T15:26:26Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://3048a31a3c0f3788f5815ad78c649daf54f0204ac7a86b3242db0189510e12a4
    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-04-07T15:26:43Z"
  - containerID: containerd://9e55c7f0b5feff65776451571ceb2f3cc2a7a9986b4387eb7b294255ae302529
    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-04-07T15:26:31Z"
  - containerID: containerd://a50753fd86ee31cdd1cd66de438ceb2e4c5c80f5a1fbab3cdf0352030282907c
    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-04-07T15:26:31Z"
  hostIP: 199.204.45.216
  phase: Running
  podIP: 10.0.0.82
  podIPs:
  - ip: 10.0.0.82
  qosClass: BestEffort
  startTime: "2026-04-07T15:26:26Z"
