apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
    deprecated.daemonset.template.generation: "1"
    meta.helm.sh/release-name: nova
    meta.helm.sh/release-namespace: openstack
    openstackhelm.openstack.org/release_uuid: ""
  creationTimestamp: "2026-04-27T16:33:54Z"
  generation: 1
  labels:
    app.kubernetes.io/managed-by: Helm
    application: nova
    component: compute
    release_group: nova
  name: nova-compute-default
  namespace: openstack
  resourceVersion: "18649"
  uid: ec9cb094-d504-40fd-9677-93b4992fc078
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      application: nova
      component: compute
      release_group: nova
  template:
    metadata:
      annotations:
        configmap-bin-hash: 8a57d562bbf9c49449ea876ab5fea8e17ef2b87db3cfbf34c062d99bc45818c9
        configmap-etc-hash: e5dc6db04ff0a4d20a5fab27f8a41cbce13c3a5aa42401484b482f3164c1fee8
        openstackhelm.openstack.org/release_uuid: ""
      creationTimestamp: null
      labels:
        application: nova
        component: compute
        release_group: nova
    spec:
      containers:
      - command:
        - /tmp/nova-compute.sh
        env:
        - name: CEPH_CINDER_USER
          value: cinder
        - name: LIBVIRT_CEPH_SECRET_UUID
        - name: RPC_PROBE_TIMEOUT
          value: "60"
        - name: RPC_PROBE_RETRIES
          value: "2"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova:2023.2@sha256:24f355ec45f4c67170ebb1da898894da796f44f57ac4e7c6435790db3f98f789
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - python
            - /tmp/health-probe.py
            - --config-file
            - /etc/nova/nova.conf
            - --service-queue-name
            - compute
            - --liveness-probe
            - --use-fqdn
          failureThreshold: 3
          periodSeconds: 90
          successThreshold: 1
          timeoutSeconds: 70
        name: nova-compute
        readinessProbe:
          exec:
            command:
            - python
            - /tmp/health-probe.py
            - --config-file
            - /etc/nova/nova.conf
            - --service-queue-name
            - compute
            - --use-fqdn
          failureThreshold: 3
          periodSeconds: 90
          successThreshold: 1
          timeoutSeconds: 70
        resources: {}
        securityContext:
          privileged: true
          readOnlyRootFilesystem: true
        startupProbe:
          exec:
            command:
            - python
            - /tmp/health-probe.py
            - --config-file
            - /etc/nova/nova.conf
            - --service-queue-name
            - compute
            - --liveness-probe
            - --use-fqdn
          failureThreshold: 120
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 70
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /dev/pts
          name: dev-pts
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /tmp/nova-compute.sh
          name: nova-bin
          readOnly: true
          subPath: nova-compute.sh
        - mountPath: /tmp/health-probe.py
          name: nova-bin
          readOnly: true
          subPath: health-probe.py
        - mountPath: /etc/nova/nova.conf
          name: nova-etc
          readOnly: true
          subPath: nova-compute.conf
        - mountPath: /etc/nova/api-paste.ini
          name: nova-etc
          readOnly: true
          subPath: api-paste.ini
        - mountPath: /etc/nova/policy.yaml
          name: nova-etc
          readOnly: true
          subPath: policy.yaml
        - mountPath: /etc/sudoers.d/kolla_nova_sudoers
          name: nova-etc
          readOnly: true
          subPath: nova_sudoers
        - mountPath: /etc/nova/rootwrap.conf
          name: nova-etc
          readOnly: true
          subPath: rootwrap.conf
        - mountPath: /etc/nova/rootwrap.d/compute.filters
          name: nova-etc
          readOnly: true
          subPath: compute.filters
        - mountPath: /etc/nova/rootwrap.d/network.filters
          name: nova-etc
          readOnly: true
          subPath: network.filters
        - mountPath: /etc/ceph
          mountPropagation: Bidirectional
          name: etcceph
        - mountPath: /tmp/client-keyring
          name: ceph-keyring
          readOnly: true
          subPath: key
        - mountPath: /lib/modules
          name: libmodules
          readOnly: true
        - mountPath: /var/lib/nova
          mountPropagation: Bidirectional
          name: varlibnova
        - mountPath: /var/lib/libvirt
          mountPropagation: Bidirectional
          name: varliblibvirt
        - mountPath: /run
          name: run
        - mountPath: /sys/fs/cgroup
          name: cgroup
          readOnly: true
        - mountPath: /tmp/pod-shared
          name: pod-shared
        - mountPath: /etc/machine-id
          name: machine-id
          readOnly: true
      - command:
        - /tmp/ssh-start.sh
        env:
        - name: KEY_TYPES
          value: rsa,dsa,ecdsa,ed25519
        - name: SSH_PORT
          value: "8022"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova-ssh:latest@sha256:7b8c92ca1d175f1144a71b0ea09c356168ab6a726df44782a927be623dbbd633
        imagePullPolicy: IfNotPresent
        name: nova-compute-ssh
        ports:
        - containerPort: 8022
          protocol: TCP
        resources: {}
        securityContext:
          privileged: true
          runAsUser: 0
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /var/lib/nova
          name: varlibnova
        - mountPath: /tmp/ssh-start.sh
          name: nova-bin
          readOnly: true
          subPath: ssh-start.sh
      dnsPolicy: ClusterFirstWithHostNet
      hostIPC: true
      hostNetwork: true
      hostPID: true
      initContainers:
      - command:
        - kubernetes-entrypoint
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: INTERFACE_NAME
          value: eth0
        - name: PATH
          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
        - name: DEPENDENCY_SERVICE
          value: openstack:rabbitmq-nova,openstack:glance-api,openstack:nova-api,openstack:neutron-server,openstack:nova-metadata
        - name: DEPENDENCY_JOBS
          value: nova-db-sync,nova-rabbit-init
        - name: DEPENDENCY_DAEMONSET
        - name: DEPENDENCY_CONTAINER
        - name: DEPENDENCY_POD_JSON
          value: '[{"labels":{"application":"libvirt","component":"libvirt"},"requireSameNode":true},{"labels":{"application":"neutron","component":"neutron-ovs-agent"},"requireSameNode":true}]'
        - name: DEPENDENCY_CUSTOM_RESOURCE
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/kubernetes-entrypoint:edge@sha256:8921b64b87af184a1421dd856b2703bcf3cff9f50863cd0d18371cf964a87bd3
        imagePullPolicy: IfNotPresent
        name: init
        resources: {}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsUser: 65534
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      - command:
        - /tmp/nova-compute-init.sh
        env:
        - name: NOVA_USER_UID
          value: "42424"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova:2023.2@sha256:24f355ec45f4c67170ebb1da898894da796f44f57ac4e7c6435790db3f98f789
        imagePullPolicy: IfNotPresent
        name: nova-compute-init
        resources: {}
        securityContext:
          readOnlyRootFilesystem: true
          runAsUser: 0
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /tmp/nova-compute-init.sh
          name: nova-bin
          readOnly: true
          subPath: nova-compute-init.sh
        - mountPath: /var/lib/nova
          name: varlibnova
        - mountPath: /tmp/pod-shared
          name: pod-shared
      - command:
        - chown
        - -R
        - 'nova:'
        - /etc/ceph
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova:2023.2@sha256:24f355ec45f4c67170ebb1da898894da796f44f57ac4e7c6435790db3f98f789
        imagePullPolicy: IfNotPresent
        name: ceph-perms
        resources: {}
        securityContext:
          readOnlyRootFilesystem: true
          runAsUser: 0
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /etc/ceph
          name: etcceph
      - command:
        - /tmp/ceph-admin-keyring.sh
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova:2023.2@sha256:24f355ec45f4c67170ebb1da898894da796f44f57ac4e7c6435790db3f98f789
        imagePullPolicy: IfNotPresent
        name: ceph-admin-keyring-placement
        resources: {}
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /etc/ceph
          name: etcceph
        - mountPath: /tmp/ceph-admin-keyring.sh
          name: nova-bin
          readOnly: true
          subPath: ceph-admin-keyring.sh
        - mountPath: /tmp/client-keyring
          name: ceph-keyring
          readOnly: true
          subPath: key
      - command:
        - /tmp/ceph-keyring.sh
        env:
        - name: CEPH_CINDER_USER
          value: cinder
        - name: LIBVIRT_CEPH_SECRET_UUID
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova:2023.2@sha256:24f355ec45f4c67170ebb1da898894da796f44f57ac4e7c6435790db3f98f789
        imagePullPolicy: IfNotPresent
        name: ceph-keyring-placement
        resources: {}
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /etc/ceph
          name: etcceph
        - mountPath: /tmp/ceph-keyring.sh
          name: nova-bin
          subPath: ceph-keyring.sh
        - mountPath: /etc/ceph/ceph.conf.template
          name: ceph-etc
          readOnly: true
          subPath: ceph.conf
      - command:
        - /tmp/nova-console-compute-init.sh
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova:2023.2@sha256:24f355ec45f4c67170ebb1da898894da796f44f57ac4e7c6435790db3f98f789
        imagePullPolicy: IfNotPresent
        name: nova-compute-vnc-init
        resources: {}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /tmp/nova-console-compute-init.sh
          name: nova-bin
          readOnly: true
          subPath: nova-console-compute-init.sh
        - mountPath: /tmp/pod-shared
          name: pod-shared
      - command:
        - /tmp/ssh-init.sh
        env:
        - name: SSH_PORT
          value: "8022"
        - name: NOVA_USER_UID
          value: "42424"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/nova-ssh:latest@sha256:7b8c92ca1d175f1144a71b0ea09c356168ab6a726df44782a927be623dbbd633
        imagePullPolicy: IfNotPresent
        name: nova-compute-ssh-init
        resources: {}
        securityContext:
          runAsUser: 0
        terminationMessagePath: /var/log/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /var/lib/nova
          name: varlibnova
        - mountPath: /tmp/nova-ssh/authorized_keys
          name: nova-ssh
          subPath: public-key
        - mountPath: /tmp/nova-ssh/id_rsa
          name: nova-ssh
          subPath: private-key
        - mountPath: /tmp/ssh-init.sh
          name: nova-bin
          readOnly: true
          subPath: ssh-init.sh
      nodeSelector:
        openstack-compute-node: enabled
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        runAsUser: 42424
      serviceAccount: nova-compute
      serviceAccountName: nova-compute
      terminationGracePeriodSeconds: 30
      volumes:
      - emptyDir: {}
        name: pod-tmp
      - configMap:
          defaultMode: 365
          name: nova-bin
        name: nova-bin
      - name: nova-etc
        secret:
          defaultMode: 292
          secretName: nova-compute-default
      - name: nova-ssh
        secret:
          defaultMode: 420
          secretName: nova-ssh
      - hostPath:
          path: /var/lib/openstack-helm/compute/nova
          type: ""
        name: etcceph
      - configMap:
          defaultMode: 292
          name: ceph-etc
        name: ceph-etc
      - name: ceph-keyring
        secret:
          defaultMode: 420
          secretName: pvc-ceph-client-key
      - hostPath:
          path: /dev/pts
          type: ""
        name: dev-pts
      - hostPath:
          path: /lib/modules
          type: ""
        name: libmodules
      - hostPath:
          path: /var/lib/nova
          type: ""
        name: varlibnova
      - hostPath:
          path: /var/lib/libvirt
          type: ""
        name: varliblibvirt
      - hostPath:
          path: /run
          type: ""
        name: run
      - hostPath:
          path: /sys/fs/cgroup
          type: ""
        name: cgroup
      - emptyDir: {}
        name: pod-shared
      - hostPath:
          path: /etc/machine-id
          type: ""
        name: machine-id
  updateStrategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
status:
  currentNumberScheduled: 1
  desiredNumberScheduled: 1
  numberAvailable: 1
  numberMisscheduled: 0
  numberReady: 1
  observedGeneration: 1
  updatedNumberScheduled: 1
