apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2025-12-04T00:59:55Z" generation: 1 labels: app.kubernetes.io/name: ironic control-plane: controller-manager openstack.org/operator-name: ironic name: ironic-operator-controller-manager namespace: openstack-operators ownerReferences: - apiVersion: operator.openstack.org/v1beta1 blockOwnerDeletion: true controller: true kind: OpenStack name: openstack uid: 9b40d236-5eef-410c-b7e3-8bac27dc6af0 resourceVersion: "27238" uid: 67a2de9f-748a-43e8-b49c-acf87b2ea3fb spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/name: ironic-operator control-plane: controller-manager openstack.org/operator-name: ironic strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubectl.kubernetes.io/default-container: manager creationTimestamp: null labels: app.kubernetes.io/name: ironic-operator control-plane: controller-manager openstack.org/operator-name: ironic spec: containers: - args: - --leader-elect - --health-probe-bind-address=:8081 - --metrics-bind-address=127.0.0.1:8080 command: - /manager env: - name: LEASE_DURATION value: "50" - name: RENEW_DEADLINE value: "30" - name: RETRY_PERIOD value: "10" - name: ENABLE_WEBHOOKS value: "false" - name: METRICS_CERTS value: "false" image: quay.io/openstack-k8s-operators/ironic-operator@sha256:0f523b7e2fa9e86fef986acf07d0c42d5658c475d565f11eaea926ebffcb6530 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 15 periodSeconds: 20 successThreshold: 1 timeoutSeconds: 1 name: manager readinessProbe: failureThreshold: 3 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 10m memory: 256Mi securityContext: allowPrivilegeEscalation: false terminationMessagePath: /dev/termination-log terminationMessagePolicy: File - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=0 image: quay.io/openstack-k8s-operators/kube-rbac-proxy:v0.16.0 imagePullPolicy: IfNotPresent name: kube-rbac-proxy ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 500m memory: 128Mi requests: cpu: 5m memory: 64Mi securityContext: allowPrivilegeEscalation: false terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true serviceAccount: ironic-operator-controller-manager serviceAccountName: ironic-operator-controller-manager terminationGracePeriodSeconds: 10 tolerations: - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 120 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 status: availableReplicas: 1 conditions: - lastTransitionTime: "2025-12-04T01:00:24Z" lastUpdateTime: "2025-12-04T01:00:24Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2025-12-04T00:59:55Z" lastUpdateTime: "2025-12-04T01:00:24Z" message: ReplicaSet "ironic-operator-controller-manager-7c9bfd6967" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1