99 - cron : ' 0 3 * * *'
1010 workflow_dispatch :
1111 # Allow manual triggering for testing
12+ inputs :
13+ send-slack-notification :
14+ description : ' Send Slack notification on completion'
15+ required : false
16+ type : boolean
17+ default : false
1218
1319# Prevent concurrent nightly runs
1420concurrency :
4147
4248 - name : Setup cluster-specific working directory
4349 run : |
44- CLUSTER_WORKING_DIR="${BASE_WORKING_DIR}/clusters/${ENCLAVE_CLUSTER_NAME}"
45- echo "Creating cluster-specific working directory: $CLUSTER_WORKING_DIR"
46- mkdir -p "$CLUSTER_WORKING_DIR"
47- echo "WORKING_DIR=$CLUSTER_WORKING_DIR" >> $GITHUB_ENV
48- echo "Cluster working directory: $CLUSTER_WORKING_DIR"
50+ make setup-working-dir
51+ echo "WORKING_DIR=$(cat /tmp/working_dir)" >> $GITHUB_ENV
4952
5053 - name : Workflow information
5154 run : |
@@ -64,40 +67,113 @@ jobs:
6467 - name : Allocate unique subnet for cluster
6568 uses : ./.github/actions/allocate-subnet
6669
67- - name : Clean infrastructure
68- id : clean
70+ - name : Create infrastructure
71+ env :
72+ WORKING_DIR : ${{ env.WORKING_DIR }}
6973 run : |
70- echo "## Cleanup " >> $GITHUB_STEP_SUMMARY
74+ echo "## Creating Infrastructure " >> $GITHUB_STEP_SUMMARY
7175 echo "" >> $GITHUB_STEP_SUMMARY
72- echo "Cleaning up any leftover infrastructure..." >> $GITHUB_STEP_SUMMARY
76+ echo "Creating VMs, networks, and BMC emulation..." >> $GITHUB_STEP_SUMMARY
77+ echo "Using subnet: ${ENCLAVE_SUBNET_ID:-not-set}" >> $GITHUB_STEP_SUMMARY
78+ echo "BMC Network: ${ENCLAVE_BMC_NETWORK:-not-set}" >> $GITHUB_STEP_SUMMARY
79+ echo "Cluster Network: ${ENCLAVE_CLUSTER_NETWORK:-not-set}" >> $GITHUB_STEP_SUMMARY
80+ echo "Working Directory: ${WORKING_DIR:-not-set}" >> $GITHUB_STEP_SUMMARY
7381
74- make clean
82+ make environment
83+ echo "✅ Infrastructure created" >> $GITHUB_STEP_SUMMARY
84+
85+ - name : Provision Landing Zone
86+ run : |
87+ echo "## Provisioning Landing Zone" >> $GITHUB_STEP_SUMMARY
88+ echo "" >> $GITHUB_STEP_SUMMARY
89+ echo "Installing CentOS Stream and configuring Landing Zone VM..." >> $GITHUB_STEP_SUMMARY
90+ make provision-landing-zone
91+ echo "✅ Landing Zone provisioned" >> $GITHUB_STEP_SUMMARY
92+
93+ - name : Install Enclave Lab
94+ run : |
95+ echo "## Installing Enclave Lab" >> $GITHUB_STEP_SUMMARY
96+ echo "" >> $GITHUB_STEP_SUMMARY
97+ echo "Installing dev-scripts and required packages on Landing Zone..." >> $GITHUB_STEP_SUMMARY
98+ make install-enclave
99+ echo "✅ Enclave Lab installed" >> $GITHUB_STEP_SUMMARY
100+
101+ - name : Phase 1 - Prepare binaries and content
102+ id : deploy_prepare
103+ run : |
104+ echo "## Phase 1: Prepare" >> $GITHUB_STEP_SUMMARY
105+ echo "" >> $GITHUB_STEP_SUMMARY
106+ echo "Downloading OpenShift binaries and content..." >> $GITHUB_STEP_SUMMARY
75107
76- echo "✅ Cleanup complete" >> $GITHUB_STEP_SUMMARY
108+ make deploy-cluster-prepare
77109
78- - name : Setup infrastructure
79- uses : ./.github/actions/setup-infrastructure
110+ echo "✅ Phase 1 complete" >> $GITHUB_STEP_SUMMARY
80111
81- - name : Deploy OpenShift cluster
82- id : deploy_cluster
112+ - name : Phase 2 - Mirror registry setup
113+ id : deploy_mirror
83114 run : |
84- echo "## Deploying OpenShift Cluster (Disconnected Mode) " >> $GITHUB_STEP_SUMMARY
115+ echo "## Phase 2: Mirror Registry " >> $GITHUB_STEP_SUMMARY
85116 echo "" >> $GITHUB_STEP_SUMMARY
86- echo "Starting full air-gapped deployment with mirror registry..." >> $GITHUB_STEP_SUMMARY
87- echo "Expected duration: ~120 minutes" >> $GITHUB_STEP_SUMMARY
117+ echo "Setting up local mirror registry (disconnected mode)..." >> $GITHUB_STEP_SUMMARY
118+
119+ make deploy-cluster-mirror
120+
121+ echo "✅ Phase 2 complete" >> $GITHUB_STEP_SUMMARY
122+
123+ - name : Phase 3 - Deploy OpenShift cluster
124+ id : deploy_install
125+ run : |
126+ echo "## Phase 3: Deploy Cluster" >> $GITHUB_STEP_SUMMARY
88127 echo "" >> $GITHUB_STEP_SUMMARY
89- echo "Phases:" >> $GITHUB_STEP_SUMMARY
90- echo "1. Prepare - Download binaries (~5 min)" >> $GITHUB_STEP_SUMMARY
91- echo "2. Mirror - Set up Quay and mirror images (~20 min, ~130GB)" >> $GITHUB_STEP_SUMMARY
92- echo "3. Deploy - Install OpenShift cluster (~50 min)" >> $GITHUB_STEP_SUMMARY
93- echo "4. Post-install - Configure cluster (~5 min)" >> $GITHUB_STEP_SUMMARY
94- echo "5. Operators - Install operators (~20 min)" >> $GITHUB_STEP_SUMMARY
95- echo "6. Day-2 - Advanced features (~10 min)" >> $GITHUB_STEP_SUMMARY
96- echo "7. Discovery - Hardware discovery setup (~10 min)" >> $GITHUB_STEP_SUMMARY
128+ echo "Deploying OpenShift cluster (mode: disconnected)..." >> $GITHUB_STEP_SUMMARY
97129
98- make deploy-cluster
130+ make deploy-cluster-install
131+
132+ echo "✅ Phase 3 complete - Cluster deployed" >> $GITHUB_STEP_SUMMARY
133+
134+ - name : Phase 4 - Post-install configuration
135+ id : deploy_post_install
136+ run : |
137+ echo "## Phase 4: Post-Install Configuration" >> $GITHUB_STEP_SUMMARY
138+ echo "" >> $GITHUB_STEP_SUMMARY
139+ echo "Configuring cluster (secrets, certificates, API health)..." >> $GITHUB_STEP_SUMMARY
99140
100- echo "✅ Cluster deployment complete" >> $GITHUB_STEP_SUMMARY
141+ make deploy-cluster-post-install
142+
143+ echo "✅ Phase 4 complete" >> $GITHUB_STEP_SUMMARY
144+
145+ - name : Phase 5 - Install operators
146+ id : deploy_operators
147+ run : |
148+ echo "## Phase 5: Operators" >> $GITHUB_STEP_SUMMARY
149+ echo "" >> $GITHUB_STEP_SUMMARY
150+ echo "Installing and configuring operators..." >> $GITHUB_STEP_SUMMARY
151+
152+ make deploy-cluster-operators
153+
154+ echo "✅ Phase 5 complete" >> $GITHUB_STEP_SUMMARY
155+
156+ - name : Phase 6 - Day-2 operations
157+ id : deploy_day2
158+ run : |
159+ echo "## Phase 6: Day-2 Operations" >> $GITHUB_STEP_SUMMARY
160+ echo "" >> $GITHUB_STEP_SUMMARY
161+ echo "Configuring advanced features and policies..." >> $GITHUB_STEP_SUMMARY
162+
163+ make deploy-cluster-day2
164+
165+ echo "✅ Phase 6 complete" >> $GITHUB_STEP_SUMMARY
166+
167+ - name : Phase 7 - Configure hardware discovery
168+ id : deploy_discovery
169+ run : |
170+ echo "## Phase 7: Hardware Discovery" >> $GITHUB_STEP_SUMMARY
171+ echo "" >> $GITHUB_STEP_SUMMARY
172+ echo "Configuring hardware discovery infrastructure..." >> $GITHUB_STEP_SUMMARY
173+
174+ make deploy-cluster-discovery
175+
176+ echo "✅ Phase 7 complete - Full deployment complete" >> $GITHUB_STEP_SUMMARY
101177
102178 - name : Verify cluster deployment
103179 if : success()
@@ -153,7 +229,7 @@ jobs:
153229 echo "- **Status**: ${{ job.status }}" >> $GITHUB_STEP_SUMMARY
154230
155231 - name : Notify Slack
156- if : always()
232+ if : always() && (github.event_name == 'schedule' || inputs.send-slack-notification == true)
157233 uses : ./.github/actions/notify-slack
158234 with :
159235 status : ${{ job.status }}
0 commit comments