@@ -21,6 +21,7 @@ set -o pipefail
2121DEFAULT_KIND_VERSION=v0.26.0
2222DEFAULT_CLUSTER_NAME=chart-testing
2323DEFAULT_KUBECTL_VERSION=v1.31.4
24+ DEFAULT_CLOUD_PROVIDER_KIND_VERSION=0.6.0
2425
2526show_help () {
2627cat << EOF
@@ -37,6 +38,7 @@ Usage: $(basename "$0") <options>
3738 -k, --kubectl-version The kubectl version to use (default: $DEFAULT_KUBECTL_VERSION )
3839 -o, --install-only Skips cluster creation, only install kind (default: false)
3940 --with-registry Enables registry config dir for the cluster (default: false)
41+ --cloud-provider Enables cloud provider for the cluster (default: false)
4042
4143EOF
4244}
@@ -53,6 +55,7 @@ main() {
5355 local install_only=false
5456 local with_registry=false
5557 local config_with_registry_path=" /etc/kind-registry/config.yaml"
58+ local cloud_provider=
5659
5760 parse_command_line " $@ "
5861
@@ -198,6 +201,14 @@ parse_command_line() {
198201 with_registry=true
199202 fi
200203 ;;
204+ --cloud-provider)
205+ if [[ -n " ${2:- } " ]]; then
206+ cloud_provider=" $2 "
207+ shift
208+ else
209+ cloud_provider=true
210+ fi
211+ ;;
201212 * )
202213 break
203214 ;;
249260 sudo chmod a+r " $config_with_registry_path "
250261}
251262
263+ install_cloud_provider (){
264+ echo " Setting up cloud-provider-kind..."
265+ curl -sSLo cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _linux_amd64.tar.gz https://github.com/kubernetes-sigs/cloud-provider-kind/releases/download/v${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} /cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _linux_amd64.tar.gz > /dev/null 2>&1
266+ curl -sSLo cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _checksums.txt https://github.com/kubernetes-sigs/cloud-provider-kind/releases/download/v${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} /cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _checksums.txt
267+
268+ grep " cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _linux_amd64.tar.gz" < " cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _checksums.txt" | sha256sum -c
269+
270+ mkdir -p cloud-provider-kind-tmp
271+ tar -xzf cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _linux_amd64.tar.gz -C cloud-provider-kind-tmp
272+ chmod +x cloud-provider-kind-tmp/cloud-provider-kind
273+ sudo mv cloud-provider-kind-tmp/cloud-provider-kind /usr/local/bin/
274+ rm -rf cloud-provider-kind-tmp cloud-provider-kind_${DEFAULT_CLOUD_PROVIDER_KIND_VERSION} _linux_amd64.tar.gz
275+
276+ echo " cloud-provider-kind set up successfully ✅"
277+
278+ cloud-provider-kind > /tmp/cloud-provider.log 2>&1 &
279+ echo " cloud-provider-kind started ✅"
280+ }
281+
252282create_kind_cluster () {
253283 echo ' Creating kind cluster...'
254284 local args=(create cluster " --name=${cluster_name} " " --wait=${wait} " )
@@ -278,6 +308,10 @@ create_kind_cluster() {
278308 fi
279309 fi
280310
311+ if [[ " ${cloud_provider} " == true ]]; then
312+ install_cloud_provider
313+ fi
314+
281315 " ${kind_dir} /kind" " ${args[@]} "
282316}
283317
0 commit comments