19
19
set -o errexit -o nounset -o pipefail
20
20
21
21
OPENSTACK_CLOUD_YAML_FILE=${OPENSTACK_CLOUD_YAML_FILE:- " /tmp/clouds.yaml" }
22
- OPENSTACK_SSH_AUTHORIZED_KEY_PATH=${OPENSTACK_SSH_AUTHORIZED_KEY_PATH:- " /tmp/id_rsa.pub" }
23
- OPENSTACK_SSH_PRIVATE_KEY_PATH=${OPENSTACK_SSH_PRIVATE_KEY_PATH:- " /tmp/id_rsa" }
24
22
OPENSTACK_IMAGE_NAME=" ubuntu-1910-kube-v1.17.3"
25
23
OPENSTACK_DNS_NAMESERVERS=${OPENSTACK_DNS_NAMESERVERS:- " 192.168.200.1" }
26
24
OPENSTACK_NODE_MACHINE_FLAVOR=${OPENSTACK_NODE_MACHINE_FLAVOR:- " m1.small" }
27
25
OPENSTACK_CONTROL_PLANE_MACHINE_FLAVOR=${OPENSTACK_CONTROL_PLANE_MACHINE_FLAVOR:- " m1.medium" }
28
26
OPENSTACK_CLUSTER_TEMPLATE=${OPENSTACK_CLUSTER_TEMPLATE:- " ./templates/cluster-template-without-lb.yaml" }
29
27
CLUSTER_NAME=${CLUSTER_NAME:- " capi-quickstart" }
28
+ OPENSTACK_SSH_KEY_NAME=${OPENSTACK_SSH_KEY_NAME:- " ${CLUSTER_NAME} -key" }
30
29
KUBERNETES_VERSION=${KUBERNETES_VERSION:- " v1.18.6" }
31
30
TIMESTAMP=$( date +" %Y-%m-%dT%H:%M:%SZ" )
32
31
@@ -119,13 +118,14 @@ dump_capo_logs() {
119
118
120
119
openstack console log show " ${node} " > " ${dir} /console.log" || true
121
120
122
- PROXY_COMMAND=" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 -x -W %h:22 -i ${OPENSTACK_SSH_PRIVATE_KEY_PATH} capo@${jump_node} "
121
+ ssh_key_pem=" /tmp/${OPENSTACK_SSH_KEY_NAME} .pem"
122
+ PROXY_COMMAND=" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 -x -W %h:22 -i ${ssh_key_pem} ubuntu@${jump_node} "
123
123
node=$( openstack port show ${node} -f json -c fixed_ips | jq ' .fixed_ips[0].ip_address' -r)
124
124
125
125
ssh-to-node " ${node} " " ${jump_node} " " sudo chmod -R a+r /var/log" || true
126
- scp -r -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 -o ProxyCommand=" ${PROXY_COMMAND} " -i ${OPENSTACK_SSH_PRIVATE_KEY_PATH } \
127
- " capo @${node} :/var/log/cloud-init.log" " capo @${node} :/var/log/cloud-init-output.log" \
128
- " capo @${node} :/var/log/pods" " capo @${node} :/var/log/containers" \
126
+ scp -r -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=30 -o ProxyCommand=" ${PROXY_COMMAND} " -i ${ssh_key_pem } \
127
+ " ubuntu @${node} :/var/log/cloud-init.log" " ubuntu @${node} :/var/log/cloud-init-output.log" \
128
+ " ubuntu @${node} :/var/log/pods" " ubuntu @${node} :/var/log/containers" \
129
129
" ${dir} " || true
130
130
131
131
ssh-to-node " ${node} " " ${jump_node} " " sudo journalctl --output=short-precise -k" > " ${dir} /kern.log" || true
@@ -152,11 +152,21 @@ function ssh-to-node() {
152
152
local jump=" $2 "
153
153
local cmd=" $3 "
154
154
155
+ ssh_key_pem=" /tmp/${OPENSTACK_SSH_KEY_NAME} .pem"
155
156
ssh_params=" -o LogLevel=quiet -o ConnectTimeout=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
156
- scp $ssh_params -i " ${OPENSTACK_SSH_PRIVATE_KEY_PATH} " " ${OPENSTACK_SSH_PRIVATE_KEY_PATH} " " capo@${jump} :${OPENSTACK_SSH_PRIVATE_KEY_PATH} "
157
- ssh $ssh_params -i " ${OPENSTACK_SSH_PRIVATE_KEY_PATH} " \
158
- -o " ProxyCommand ssh $ssh_params -W %h:%p -i ${OPENSTACK_SSH_PRIVATE_KEY_PATH} capo@${jump} " \
159
- capo@" ${node} " " ${cmd} "
157
+ scp $ssh_params -i $ssh_key_pem $ssh_key_pem " ubuntu@${jump} :$ssh_key_pem "
158
+ ssh $ssh_params -i $ssh_key_pem \
159
+ -o " ProxyCommand ssh $ssh_params -W %h:%p -i $ssh_key_pem ubuntu@${jump} " \
160
+ ubuntu@" ${node} " " ${cmd} "
161
+ }
162
+
163
+ create_key_pair () {
164
+ echo " Create key pair"
165
+
166
+ ssh-keygen -t rsa -f " /tmp/${OPENSTACK_SSH_KEY_NAME} .pem" -N " "
167
+ chmod 0400 " /tmp/${OPENSTACK_SSH_KEY_NAME} .pem"
168
+
169
+ openstack keypair create --public-key " /tmp/${OPENSTACK_SSH_KEY_NAME} .pem.pub" ${OPENSTACK_SSH_KEY_NAME}
160
170
}
161
171
162
172
upload_image () {
@@ -248,20 +258,14 @@ create_cluster() {
248
258
# actually create the cluster
249
259
KIND_IS_UP=true
250
260
251
- if [[ ! -f ${OPENSTACK_SSH_AUTHORIZED_KEY_PATH} ]]
252
- then
253
- ssh-keygen -t rsa -f ${OPENSTACK_SSH_PRIVATE_KEY_PATH} -N " "
254
- chmod 0400 ${OPENSTACK_SSH_AUTHORIZED_KEY_PATH}
255
- fi
256
-
257
261
# exports the b64 env vars used below
258
262
source ${REPO_ROOT} /templates/env.rc ${OPENSTACK_CLOUD_YAML_FILE} ${CLUSTER_NAME}
259
263
260
264
OPENSTACK_CLOUD_CACERT_B64=${OPENSTACK_CLOUD_CACERT_B64} \
261
265
OPENSTACK_CLOUD_PROVIDER_CONF_B64=${OPENSTACK_CLOUD_PROVIDER_CONF_B64} \
262
266
OPENSTACK_CLOUD_YAML_B64=${OPENSTACK_CLOUD_YAML_B64} \
263
267
OPENSTACK_IMAGE_NAME=${OPENSTACK_IMAGE_NAME} \
264
- OPENSTACK_SSH_AUTHORIZED_KEY= " $( cat ${OPENSTACK_SSH_AUTHORIZED_KEY_PATH} ) " \
268
+ OPENSTACK_SSH_KEY_NAME= ${OPENSTACK_SSH_KEY_NAME} \
265
269
OPENSTACK_DNS_NAMESERVERS=${OPENSTACK_DNS_NAMESERVERS} \
266
270
OPENSTACK_CLUSTER_TEMPLATE=${OPENSTACK_CLUSTER_TEMPLATE} \
267
271
KUBERNETES_VERSION=${KUBERNETES_VERSION} \
@@ -397,6 +401,7 @@ main() {
397
401
fi
398
402
399
403
build
404
+ create_key_pair
400
405
create_cluster
401
406
402
407
if [[ -z " ${SKIP_RUN_TESTS:- } " ]]; then
0 commit comments