Add eject virtual media phase

If the virtual media is not explicitly ejected, the ephemeral node can
reinstall as ephemeral node after converted as a worker or controller
during reboot.

Change-Id: I9f383a1d8ead6fea6f37ace9eade64e70fcc72e4
This commit is contained in:
James Gu 2021-10-25 15:12:00 +00:00
parent db16837902
commit 9abf8ef6ab
4 changed files with 32 additions and 0 deletions

View File

@ -34,3 +34,12 @@ replacements:
kind: BaremetalManager
name: PowerOffEphemeral
fieldrefs: ["spec.hostSelector.name%EPHEMERAL_NODE%"]
- source:
objref:
name: versions-remotedirect
fieldref: spec.remotedirect.node
target:
objref:
kind: BaremetalManager
name: EjectVirtualMediaEphemeral
fieldrefs: ["spec.hostSelector.name%EPHEMERAL_NODE%"]

View File

@ -238,6 +238,17 @@ spec:
name: EPHEMERAL_NODE
---
apiVersion: airshipit.org/v1alpha1
kind: BaremetalManager
metadata:
name: EjectVirtualMediaEphemeral
labels:
airshipit.org/deploy-k8s: "false"
spec:
operation: eject-virtual-media
hostSelector:
name: EPHEMERAL_NODE
---
apiVersion: airshipit.org/v1alpha1
kind: GenericContainer
metadata:
name: iso-cloud-init-data

View File

@ -268,6 +268,16 @@ config:
---
apiVersion: airshipit.org/v1alpha1
kind: Phase
metadata:
name: eject-virtual-media-ephemeral
config:
executorRef:
apiVersion: airshipit.org/v1alpha1
kind: BaremetalManager
name: EjectVirtualMediaEphemeral
---
apiVersion: airshipit.org/v1alpha1
kind: Phase
metadata:
name: kubectl-wait-node-ephemeral
clusterName: ephemeral-cluster

View File

@ -95,6 +95,8 @@ phases:
# To get ConfigMap for this phase, execute `airshipctl phase render --source config -k ConfigMap`
# and find ConfigMap with name kubectl-wait-cluster
- name: kubectl-wait-cluster-target
# Eject virtual media Ephemeral baremetal host to ensure it can reused.
- name: eject-virtual-media-ephemeral
# Power off Ephemeral baremetal host avoid DHCP conflict
- name: power-off-ephemeral
# Create target k8s cluster resources