@@ -134,35 +134,16 @@ EOF
134
134
}
135
135
136
136
function installRookCeph {
137
- kubectl \
138
- --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " \
139
- --context " ${PREVIEW_K3S_KUBE_CONTEXT} " \
140
- apply -f " $ROOT /.werft/vm/manifests/rook-ceph/crds.yaml" --server-side --force-conflicts
137
+ diff-apply " ${PREVIEW_K3S_KUBE_CONTEXT} " " $ROOT /.werft/vm/manifests/rook-ceph/crds.yaml"
141
138
142
139
kubectl \
143
140
--kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " \
144
141
--context " ${PREVIEW_K3S_KUBE_CONTEXT} " \
145
142
wait --for condition=established --timeout=120s crd/cephclusters.ceph.rook.io
146
143
147
- kubectl \
148
- --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " \
149
- --context " ${PREVIEW_K3S_KUBE_CONTEXT} " \
150
- apply -f " $ROOT /.werft/vm/manifests/rook-ceph/common.yaml" -f " $ROOT /.werft/vm/manifests/rook-ceph/operator.yaml"
151
-
152
- kubectl \
153
- --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " \
154
- --context " ${PREVIEW_K3S_KUBE_CONTEXT} " \
155
- apply -f " $ROOT /.werft/vm/manifests/rook-ceph/cluster-test.yaml"
156
-
157
- kubectl \
158
- --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " \
159
- --context " ${PREVIEW_K3S_KUBE_CONTEXT} " \
160
- apply -f " $ROOT /.werft/vm/manifests/rook-ceph/storageclass-test.yaml"
161
-
162
- kubectl \
163
- --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " \
164
- --context " ${PREVIEW_K3S_KUBE_CONTEXT} " \
165
- apply -f " $ROOT /.werft/vm/manifests/rook-ceph/snapshotclass.yaml"
144
+ for file in common operator cluster-test storageclass-test snapshotclass; do
145
+ diff-apply " ${PREVIEW_K3S_KUBE_CONTEXT} " " $ROOT /.werft/vm/manifests/rook-ceph/$file .yaml"
146
+ done
166
147
}
167
148
168
149
# Install Fluent-Bit sending logs to GCP
375
356
yq d -i admin-login-secret.yaml metadata.creationTimestamp
376
357
yq d -i admin-login-secret.yaml metadata.uid
377
358
yq d -i admin-login-secret.yaml metadata.resourceVersion
378
- kubectl --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " --context " ${ PREVIEW_K3S_KUBE_CONTEXT}" apply -f admin-login-secret.yaml
359
+ diff-apply " ${PREVIEW_K3S_KUBE_CONTEXT} " admin-login-secret.yaml
379
360
rm -f admin-login-secret.yaml
380
361
381
362
yq w -i " ${INSTALLER_CONFIG_PATH} " adminLoginSecret.kind " secret"
@@ -390,7 +371,7 @@ yq w -i stripe-api-keys.secret.yaml metadata.namespace "default"
390
371
yq d -i stripe-api-keys.secret.yaml metadata.creationTimestamp
391
372
yq d -i stripe-api-keys.secret.yaml metadata.uid
392
373
yq d -i stripe-api-keys.secret.yaml metadata.resourceVersion
393
- kubectl --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " --context " ${ PREVIEW_K3S_KUBE_CONTEXT}" apply -f stripe-api-keys.secret.yaml
374
+ diff-apply " ${PREVIEW_K3S_KUBE_CONTEXT} " stripe-api-keys.secret.yaml
394
375
rm -f stripe-api-keys.secret.yaml
395
376
396
377
#
@@ -400,8 +381,9 @@ kubectl --kubeconfig "${DEV_KUBE_PATH}" --context "${DEV_KUBE_CONTEXT}" --namesp
400
381
| yq w - metadata.namespace ${PREVIEW_NAMESPACE} \
401
382
| yq d - metadata.uid \
402
383
| yq d - metadata.resourceVersion \
403
- | yq d - metadata.creationTimestamp \
404
- | kubectl --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " --context " ${PREVIEW_K3S_KUBE_CONTEXT} " apply -f -
384
+ | yq d - metadata.creationTimestamp > host-key.yaml
385
+ diff-apply " ${PREVIEW_K3S_KUBE_CONTEXT} " host-key.yaml
386
+ rm -f host-key.yaml
405
387
406
388
yq w -i " ${INSTALLER_CONFIG_PATH} " sshGatewayHostKey.kind " secret"
407
389
yq w -i " ${INSTALLER_CONFIG_PATH} " sshGatewayHostKey.name " host-key"
@@ -515,7 +497,7 @@ yq w -i spicedb-secret.yaml metadata.namespace "default"
515
497
yq d -i spicedb-secret.yaml metadata.creationTimestamp
516
498
yq d -i spicedb-secret.yaml metadata.uid
517
499
yq d -i spicedb-secret.yaml metadata.resourceVersion
518
- kubectl --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " --context " ${ PREVIEW_K3S_KUBE_CONTEXT}" apply -f spicedb-secret.yaml
500
+ diff-apply " ${PREVIEW_K3S_KUBE_CONTEXT} " spicedb-secret.yaml
519
501
rm -f spicedb-secret.yaml
520
502
521
503
#
@@ -617,13 +599,26 @@ rm -f /tmp/public-api
617
599
log_info " Applying manifests (installing)"
618
600
619
601
kubectl --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " --context " ${PREVIEW_K3S_KUBE_CONTEXT} " delete -n " ${PREVIEW_NAMESPACE} " job migrations || true
620
- kubectl --kubeconfig " ${PREVIEW_K3S_KUBE_PATH} " --context " ${PREVIEW_K3S_KUBE_CONTEXT} " apply -f " ${INSTALLER_RENDER_PATH} "
602
+ # export the function so we can use it in xargs
603
+ export -f diff-apply
604
+ mkdir temp-installer || true
605
+ pushd temp-installer
606
+ # this will split the big yaml produced by the installer, so we can diff individual parts of it and run them in parallel
607
+ yq4 -s ' .kind + "_" + .metadata.name' " ../${INSTALLER_RENDER_PATH} "
608
+ rm .yml || true # this one is a leftover from the split
609
+ # shellcheck disable=SC2038
610
+ find . | xargs -n 1 -I {} -P 5 bash -c " diff-apply ${PREVIEW_K3S_KUBE_CONTEXT} {}"
611
+ log_info " Applied all"
612
+ popd
613
+ rm -rf temp-installer
621
614
rm -f " ${INSTALLER_RENDER_PATH} "
622
615
623
616
# =========================
624
- # Wait for pods to be ready
617
+ # Wait for objects to be ready
625
618
# =========================
626
- waitUntilAllPodsAreReady " ${PREVIEW_K3S_KUBE_PATH} " " ${PREVIEW_K3S_KUBE_CONTEXT} " " $PREVIEW_NAMESPACE "
619
+ for item in deployment.apps/blobserve deployment.apps/content-service deployment.apps/dashboard deployment.apps/ide-metrics deployment.apps/ide-proxy deployment.apps/ide-service deployment.apps/image-builder-mk3 deployment.apps/minio deployment.apps/node-labeler deployment.apps/payment-endpoint deployment.apps/proxy deployment.apps/public-api-server deployment.apps/redis deployment.apps/server deployment.apps/spicedb deployment.apps/usage deployment.apps/ws-manager deployment.apps/ws-manager-bridge deployment.apps/ws-proxy statefulset.apps/messagebus statefulset.apps/mysql statefulset.apps/openvsx-proxy daemonset.apps/agent-smith daemonset.apps/fluent-bit daemonset.apps/registry-facade daemonset.apps/ws-daemon; do
620
+ kubectl rollout status " ${item} "
621
+ done
627
622
628
623
# =====================
629
624
# Add agent smith token
0 commit comments