apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations:
    meta.helm.sh/release-name: ovn
    meta.helm.sh/release-namespace: openstack
    openstackhelm.openstack.org/release_uuid: ""
  creationTimestamp: "2026-03-04T01:47:21Z"
  generation: 1
  labels:
    app.kubernetes.io/managed-by: Helm
    application: ovn
    component: ovn-ovsdb-nb
    release_group: ovn
  name: ovn-ovsdb-nb
  namespace: openstack
  resourceVersion: "14771"
  uid: 308c34b4-bb53-447b-9ed7-b6ae9ac9537d
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain
  podManagementPolicy: Parallel
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      application: ovn
      component: ovn-ovsdb-nb
      release_group: ovn
  serviceName: ovn-ovsdb-nb
  template:
    metadata:
      annotations:
        configmap-bin-hash: c409b7b2d3b66c56bb7fa0ff87b762d0d7725211812e5a579a83fa8382c24150
        openstackhelm.openstack.org/release_uuid: ""
      creationTimestamp: null
      labels:
        application: ovn
        component: ovn-ovsdb-nb
        release_group: ovn
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: release_group
                  operator: In
                  values:
                  - ovn
                - key: application
                  operator: In
                  values:
                  - ovn
                - key: component
                  operator: In
                  values:
                  - ovn-ovsdb-nb
              topologyKey: kubernetes.io/hostname
            weight: 10
      containers:
      - command:
        - /root/ovnkube.sh
        - nb-ovsdb
        env:
        - name: OVN_DAEMONSET_VERSION
          value: "3"
        - name: OVN_LOGLEVEL_NB
          value: -vconsole:info -vfile:info
        - name: OVN_KUBERNETES_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: OVN_KUBERNETES_STATEFULSET
          value: ovn-ovsdb-nb
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: OVN_SSL_ENABLE
          value: "no"
        - name: ENABLE_IPSEC
          value: "false"
        - name: OVN_NB_RAFT_ELECTION_TIMER
          value: "1000"
        - name: OVN_NB_PORT
          value: "6641"
        - name: OVN_NB_RAFT_PORT
          value: "6643"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/ovn:v24.03.7-3@sha256:deb1966eff94d8da072a3647db63546722094deb3ef34b6b464609bcba61887a
        imagePullPolicy: IfNotPresent
        name: ovsdb
        ports:
        - containerPort: 6641
          protocol: TCP
        - containerPort: 6643
          protocol: TCP
        readinessProbe:
          exec:
            command:
            - /usr/bin/ovn-kube-util
            - readiness-probe
            - -t
            - ovnnb-db
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 60
          successThreshold: 1
          timeoutSeconds: 30
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /var/run/openvswitch
          name: run-openvswitch
        - mountPath: /var/run/ovn
          name: run-openvswitch
        - mountPath: /etc/ovn
          name: data
        - mountPath: /var/log/ovn
          name: var-log-ovn
      dnsPolicy: ClusterFirst
      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
        - name: DEPENDENCY_DAEMONSET
        - name: DEPENDENCY_CONTAINER
        - name: DEPENDENCY_POD_JSON
        - 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
      nodeSelector:
        openstack-control-plane: enabled
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: ovn-ovsdb-nb
      serviceAccountName: ovn-ovsdb-nb
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /run/openvswitch
          type: DirectoryOrCreate
        name: run-openvswitch
      - emptyDir: {}
        name: var-log-ovn
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      creationTimestamp: null
      name: data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
      storageClassName: general
      volumeMode: Filesystem
    status:
      phase: Pending
status:
  availableReplicas: 1
  collisionCount: 0
  currentReplicas: 1
  currentRevision: ovn-ovsdb-nb-6b5b975d78
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updateRevision: ovn-ovsdb-nb-6b5b975d78
  updatedReplicas: 1
