@@ -77,43 +77,40 @@ jobs:
77
77
echo ::group::list modules
78
78
ls -l ./spec/fixtures/modules || true; echo
79
79
echo ::endgroup::
80
- echo ::group::update every 'ssh:' tag in ./inventory.yaml file to add 'native-ssh: true' under install_test_cluster and indent correctly
81
- sed -i -e '/ssh:/a\ native-ssh: true' ./inventory.yaml || true; echo
82
- # Also add additional SSH options for container environments
83
- sed -i -e '/ssh:/a\ connect-timeout: 30' ./inventory.yaml || true; echo
84
- sed -i -e '/ssh:/a\ host-key-check: false' ./inventory.yaml || true; echo
85
- # Set root credentials if not already present
86
- sed -i -e '/ssh:/a\ user: root' ./inventory.yaml || true; echo
87
- sed -i -e '/ssh:/a\ password: root' ./inventory.yaml || true; echo
80
+ echo ::group::show original inventory
81
+ echo "=== Original inventory.yaml ==="
82
+ cat ./inventory.yaml || echo "No inventory.yaml found"
88
83
echo ::endgroup::
89
- echo ::group::fix inventory credentials
90
- # Backup original inventory
91
- cp ./inventory.yaml ./inventory.yaml.backup
84
+ echo ::group::create docker transport inventory
85
+ echo "=== Creating Docker transport inventory ==="
92
86
93
- # Remove any existing SSH user/password entries and add correct ones
94
- sed -i '/user:/d' ./inventory.yaml
95
- sed -i '/password:/d' ./inventory.yaml
96
- sed -i '/host-key-check:/d' ./inventory.yaml
97
- sed -i '/connect-timeout:/d' ./inventory.yaml
98
- sed -i '/native-ssh:/d' ./inventory.yaml
87
+ # Get container information
88
+ container_info=$(docker ps --format "{{.Names}}" | grep -v NAMES)
99
89
100
- # Add correct SSH configuration after each 'ssh:' line
101
- sed -i '/ssh:/a\ user: root' ./inventory.yaml
102
- sed -i '/ssh:/a\ password: root' ./inventory.yaml
103
- sed -i '/ssh:/a\ host-key-check: false' ./inventory.yaml
104
- sed -i '/ssh:/a\ connect-timeout: 30' ./inventory.yaml
105
- sed -i '/ssh:/a\ native-ssh: true' ./inventory.yaml
106
-
107
- echo "=== Updated inventory.yaml ==="
108
- cat ./inventory.yaml
109
- echo ::endgroup::
110
- echo ::group::list contents of ./inventory.yaml
111
- ls -l ./inventory.yaml || true; echo
112
- cat ./inventory.yaml || true; echo
113
- echo ::endgroup::
114
- echo ::group::info:request
115
- cat request.json || true; echo
116
- echo ::endgroup::
90
+ # Create new inventory with version 2 format and Docker transport
91
+ cat > ./inventory.yaml << 'EOF'
92
+ version: 2
93
+ groups:
94
+ - name: pe_nodes
95
+ targets:
96
+ EOF
97
+
98
+ # Add each container as a target
99
+ for container_name in $container_info; do
100
+ echo " - name: $container_name" >> ./inventory.yaml
101
+ echo " uri: $container_name" >> ./inventory.yaml
102
+ echo " config:" >> ./inventory.yaml
103
+ echo " transport: docker" >> ./inventory.yaml
104
+ echo " docker:" >> ./inventory.yaml
105
+ echo " container-name: $container_name" >> ./inventory.yaml
106
+ done
107
+
108
+ echo "=== New Docker transport inventory.yaml ==="
109
+ cat ./inventory.yaml
110
+ echo ::endgroup::
111
+ echo ::group::info:request
112
+ cat request.json || true; echo
113
+ echo ::endgroup::
117
114
- name : Debug container setup
118
115
run : |
119
116
echo ::group::debug_container_setup
@@ -186,18 +183,18 @@ jobs:
186
183
docker exec $container passwd -S root || true
187
184
done
188
185
echo ::endgroup::
189
- - name : Wait for SSH to be ready
186
+ - name : Wait for Docker connectivity to be ready
190
187
run : |
191
- echo ::group::wait_for_ssh
192
- # Wait for SSH to be available on all containers via Bolt
188
+ echo ::group::wait_for_docker
189
+ # Wait for Docker connectivity to be available on all containers via Bolt
193
190
for i in {1..12}; do
194
- echo "Attempt $i: Testing Bolt SSH connectivity..."
191
+ echo "Attempt $i: Testing Bolt Docker connectivity..."
195
192
196
- # Use inventory settings only (don't override with CLI args)
197
- if bundle exec bolt command run 'echo "Bolt SSH test successful"' \
193
+ # Test Docker transport connectivity
194
+ if bundle exec bolt command run 'echo "Bolt Docker test successful"' \
198
195
--inventoryfile ./inventory.yaml \
199
- --targets all ; then
200
- echo "All containers are accessible via Bolt SSH !"
196
+ --targets pe_nodes ; then
197
+ echo "All containers are accessible via Bolt Docker transport !"
201
198
break
202
199
fi
203
200
@@ -209,10 +206,10 @@ jobs:
209
206
docker ps
210
207
exit 1
211
208
fi
212
- echo "Waiting 10 seconds before retry..."
213
- sleep 10
209
+ echo "Waiting 5 seconds before retry..."
210
+ sleep 5
214
211
done
215
- echo ::endgroup::
212
+ echo ::endgroup::
216
213
- name : Check container SSH configuration
217
214
run : |
218
215
echo ::group::container_ssh_config
@@ -232,12 +229,18 @@ jobs:
232
229
- name : Install PE on test cluster
233
230
timeout-minutes : 120
234
231
run : |
232
+ echo "=== Starting PE installation with Docker transport ==="
233
+ echo "Using inventory file:"
234
+ cat ./inventory.yaml
235
+
235
236
bundle exec bolt plan run peadm_spec::install_test_cluster \
236
237
--inventoryfile ./inventory.yaml \
237
238
--modulepath spec/fixtures/modules \
238
239
architecture=${{ matrix.architecture }} \
239
240
version=${{ matrix.version }} \
240
- console_password=${{ secrets.CONSOLE_PASSWORD }}
241
+ console_password=${{ secrets.CONSOLE_PASSWORD }} \
242
+ --targets pe_nodes \
243
+ --verbose
241
244
- name : Tear down test cluster
242
245
if : ${{ always() }}
243
246
continue-on-error : true
0 commit comments