@@ -56,6 +56,15 @@ tasks:
56
56
vars :
57
57
TIMEOUT : " {{.TIMEOUT}}"
58
58
59
+ list-cluster :
60
+ desc : List the cluster
61
+ silent : false
62
+ cmds :
63
+ - |
64
+ CLUSTER_ID=$(replicated cluster ls --output json | jq -r '.[] | select(.name == "{{.CLUSTER_NAME}}") | .id')
65
+ EXPIRES=$(replicated cluster ls --output json | jq -r '.[] | select(.name == "{{.CLUSTER_NAME}}") | .expires_at')
66
+ echo "{{.CLUSTER_NAME}} Cluster ID: ($CLUSTER_ID) Expires: ($EXPIRES)"
67
+
59
68
test :
60
69
desc : Run a basic test suite
61
70
silent : false
@@ -65,6 +74,25 @@ tasks:
65
74
- sleep 5
66
75
- echo "Tests completed!"
67
76
77
+
78
+ verify-kubeconfig :
79
+ desc : Verify kubeconfig
80
+ silent : false
81
+ run : once
82
+ cmds :
83
+ - |
84
+ if [ -f {{.KUBECONFIG_FILE}} ]; then
85
+ echo "Getting Cluster ID From Replicated Cluster list"
86
+ CLUSTER_ID=$(replicated cluster ls --output json | jq -r '.[] | select(.name == "{{.CLUSTER_NAME}}") | .id')
87
+ echo "Getting Cluster ID From Kubeconfig"
88
+ CLUSTER_ID_KUBECONFIG=$(grep "current-context:" {{.KUBECONFIG_FILE}} | cut -d'-' -f3)
89
+ if [ "$CLUSTER_ID" != "$CLUSTER_ID_KUBECONFIG" ]; then
90
+ echo "{{.CLUSTER_NAME}} Cluster ID between Replicated ($CLUSTER_ID) and Kubeconfig ($CLUSTER_ID_KUBECONFIG) mismatch"
91
+ echo "Removing old kubeconfig file"
92
+ rm -f {{.KUBECONFIG_FILE}}
93
+ fi
94
+ fi
95
+
68
96
setup-kubeconfig :
69
97
desc : Get kubeconfig and prepare cluster for application deployment
70
98
silent : false
@@ -84,7 +112,8 @@ tasks:
84
112
true
85
113
fi
86
114
deps :
87
- - cluster-create
115
+ - create-cluster
116
+ - verify-kubeconfig
88
117
89
118
dependencies-update :
90
119
desc : Update Helm dependencies for all charts
@@ -240,21 +269,23 @@ tasks:
240
269
done
241
270
242
271
- echo "Release files prepared in ./release/ directory"
243
-
272
+ deps :
273
+ - update-version
274
+
275
+
244
276
release-create :
245
277
desc : Create and promote a release using the Replicated CLI
246
278
silent : false
247
279
vars :
248
280
CHANNEL : ' {{.CHANNEL | default "Unstable"}}'
249
281
RELEASE_NOTES : ' {{.RELEASE_NOTES | default "Release created via task release-create"}}'
250
282
cmds :
251
- - echo "Creating and promoting release for {{. APP_NAME}} to channel {{. CHANNEL}} ..."
283
+ - echo "Creating and promoting release for $ APP_NAME to channel $ CHANNEL..."
252
284
- |
253
285
# Create and promote the release in one step
254
286
echo "Creating release from files in ./release directory..."
255
- replicated release create --app {{.APP_NAME}} --yaml-dir ./release --release-notes "{{.RELEASE_NOTES}}" --promote {{.CHANNEL}}
256
-
257
- echo "Release created and promoted to channel {{.CHANNEL}}"
287
+ replicated release create --app $APP_NAME --yaml-dir ./release --release-notes "$RELEASE_NOTES" --promote $CHANNEL --version $VERSION
288
+ echo "Release version $VERSION created and promoted to channel $CHANNEL"
258
289
deps :
259
290
- release-prepare
260
291
0 commit comments