@@ -27,7 +27,7 @@ echo "::group::Build Python 3.12"
27
27
FTP="https://www.python.org/ftp/python"
28
28
# determine the latest patch version
29
29
ver=$(curl -s $FTP/ | sed -En 's/^.+href="(' ${VER/./\\ .}'\. .+)\/ ".+$/\1 /p' | sort -Vr | head -1)
30
- curl -sL $FTP/$ver/Python-$ver.tgz | tar -xz
30
+ curl -fsL $FTP/$ver/Python-$ver.tgz | tar -xz
31
31
cd Python*
32
32
# https://docs.python.org/3/using/configure.html
33
33
./configure -q \
@@ -82,7 +82,7 @@ echo "::group::Build GNU parallel"
82
82
83
83
cd /tmp
84
84
FTP="https://ftp.gnu.org/gnu/parallel"
85
- curl -sL $FTP/parallel-latest.tar.bz2 | tar -xj
85
+ curl -fsL $FTP/parallel-latest.tar.bz2 | tar -xj
86
86
cd parallel*
87
87
./configure --prefix=/usr/local -q
88
88
make -sj$(nproc)
@@ -252,7 +252,7 @@ echo "::group::Install Linux utilities"
252
252
REL="https://github.com/casey/just/releases/latest"
253
253
VER=$(curl -Is $REL | sed -En 's/^location:.+\/ tag\/ (.+)\r $/\1 /p' )
254
254
URL="$REL/download/just-$VER-$(uname -m)-unknown-linux-musl.tar.gz"
255
- curl -sSL $URL | tar -xz --no-same-owner just* completions/*.bash
255
+ curl -fsSL $URL | tar -xz --no-same-owner just* completions/*.bash
256
256
mv just /usr/local/bin
257
257
mv */*.bash /usr/local/etc/bash_completion.d
258
258
mv just.1 /usr/local/share/man/man1
@@ -262,7 +262,7 @@ echo "::group::Install Linux utilities"
262
262
install_bin() {
263
263
cd /usr/local/bin
264
264
local bin=$1 src=$2
265
- curl -sSLo $bin $src
265
+ curl -fsSLo $bin $src
266
266
chmod +x $bin
267
267
$bin --version
268
268
}
@@ -284,7 +284,7 @@ echo "::group::Install Linux utilities"
284
284
local pkg url
285
285
for pkg in "$@" ; do
286
286
url="$EPEL/9/Everything/$(uname -m)/Packages/${pkg::1}/"
287
- url+=$(curl -Ls $url | sed -En 's/^.+href="(' ${pkg}'-[0-9.]+[^"]+).+$/\1 /p' )
287
+ url+=$(curl -sL $url | sed -En 's/^.+href="(' ${pkg}'-[0-9.]+[^"]+).+$/\1 /p' )
288
288
rpm -i $url
289
289
done
290
290
}
@@ -303,7 +303,7 @@ echo "::group::Install Python tools"
303
303
( set -uxo pipefail
304
304
305
305
# install Poetry: https://python-poetry.org/docs/#installing-with-the-official-installer
306
- curl -sSL https://install.python-poetry.org | \
306
+ curl -fsSL https://install.python-poetry.org | \
307
307
POETRY_HOME="/usr/local/poetry" python3 -
308
308
# /usr/local/poetry/bin is already in $PATH via Dockerfile ENV command
309
309
poetry -V
@@ -341,7 +341,7 @@ set -e
341
341
echo "::group::Install Node.js 22"
342
342
( set -uxo pipefail
343
343
344
- curl -sSL https://rpm.nodesource.com/setup_22.x | bash -
344
+ curl -fsSL https://rpm.nodesource.com/setup_22.x | bash -
345
345
dnf install -y nodejs
346
346
dnf clean all
347
347
rm -rf /var/log/* /var/cache/dnf
@@ -367,7 +367,7 @@ echo "::group::Install AWS tools"
367
367
368
368
# install AWS CLI v2: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
369
369
cd /tmp
370
- curl -sSLo awscliv2.zip https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip
370
+ curl -fsSLo awscliv2.zip https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip
371
371
unzip -q awscliv2.zip
372
372
./aws/install
373
373
rm -rf aws awscliv2.zip
@@ -385,7 +385,7 @@ echo "::group::Install AWS tools"
385
385
rm -rf /var/log/* /var/cache/dnf
386
386
REL="https://s3.amazonaws.com/mountpoint-s3-release/latest"
387
387
ARCH=$(uname -m | sed 's/aarch64/arm64/' ) # must be x86_64 or arm64
388
- curl -sSL $REL/$ARCH/mount-s3.tar.gz | \
388
+ curl -fsSL $REL/$ARCH/mount-s3.tar.gz | \
389
389
tar -xz -C /usr/local/bin --no-same-owner --strip 2 ./bin
390
390
mount-s3 --version
391
391
)
@@ -404,15 +404,15 @@ echo "::group::Install OCI image tools"
404
404
# install Dive: https://github.com/wagoodman/dive#installation
405
405
REL="https://github.com/wagoodman/dive/releases/latest"
406
406
VER=$(curl -Is $REL | sed -En 's/^location:.+\/ tag\/ v(.+)\r $/\1 /p' )
407
- curl -sSL $REL/download/dive_${VER}_linux_${ARCH}.tar.gz | \
407
+ curl -fsSL $REL/download/dive_${VER}_linux_${ARCH}.tar.gz | \
408
408
tar -xz -C /usr/local/bin --no-same-owner dive
409
409
dive --version
410
410
(
411
411
# install MinToolkit: https://github.com/mintoolkit/mint#installation
412
412
REL="https://github.com/mintoolkit/mint/releases/latest"
413
413
# name must be *linux.* or *linux_arm64.*
414
414
ARCH=${ARCH/%amd*/} ARCH=${ARCH/arm/_arm}
415
- curl -sSL $REL/download/dist_linux${ARCH}.tar.gz | \
415
+ curl -fsSL $REL/download/dist_linux${ARCH}.tar.gz | \
416
416
tar -xz -C /usr/local/bin --no-same-owner --strip 1 dist_linux${ARCH}/mint*
417
417
mint --version
418
418
)
@@ -433,13 +433,13 @@ echo "::group::Install Kubernetes tools"
433
433
cd /usr/local/bin
434
434
REL="https://dl.k8s.io/release"
435
435
VER=$(curl -sL $REL/stable.txt)
436
- curl -sSLO $REL/$VER/bin/linux/$ARCH/kubectl
436
+ curl -fsSLO $REL/$VER/bin/linux/$ARCH/kubectl
437
437
chmod +x kubectl
438
438
kubectl version --client
439
439
440
440
# install Kubeconform: https://github.com/yannh/kubeconform#installation
441
441
REL="https://github.com/yannh/kubeconform/releases/latest"
442
- curl -sSL $REL/download/kubeconform-linux-${ARCH}.tar.gz | \
442
+ curl -fsSL $REL/download/kubeconform-linux-${ARCH}.tar.gz | \
443
443
tar -xz -C /usr/local/bin --no-same-owner kubeconform
444
444
ln -s /usr/local/bin/kubeconform /usr/local/bin/kubectl-conform
445
445
kubectl conform -v
@@ -448,27 +448,31 @@ echo "::group::Install Kubernetes tools"
448
448
cd /tmp
449
449
REL="https://github.com/kubernetes-sigs/krew/releases/latest"
450
450
KREW=krew-linux_${ARCH}
451
- curl -sSL $REL/download/$KREW.tar.gz | tar -xz ./$KREW
451
+ curl -fsSL $REL/download/$KREW.tar.gz | tar -xz ./$KREW
452
452
./$KREW install krew
453
453
rm -f ./$KREW
454
454
# /root/.krew/bin is already in $PATH via Dockerfile ENV command
455
455
kubectl krew version
456
456
457
+ # install kubectl-grep: https://github.com/guessi/kubectl-grep#installation
458
+ kubectl krew install grep
459
+ kubectl grep version --short
460
+
457
461
# install kube-score: https://github.com/zegl/kube-score#installation
458
462
kubectl krew install score
459
463
if [ $ARCH == arm64 ]; then
460
464
echo "Installing the proper $ARCH binary for kube-score"
461
465
REL="https://github.com/zegl/kube-score/releases/latest"
462
466
VER=$(curl -Is $REL | sed -En 's/^location:.+\/ tag\/ v(.+)\r $/\1 /p' )
463
- curl -sSL $REL/download/kube-score_${VER}_linux_${ARCH}.tar.gz | \
467
+ curl -fsSL $REL/download/kube-score_${VER}_linux_${ARCH}.tar.gz | \
464
468
tar -C /root/.krew/store/score/* -xz
465
469
fi
466
470
kubectl score version
467
471
468
472
# install Helm: https://helm.sh/docs/intro/install/
469
473
REL="https://github.com/helm/helm/releases/latest"
470
474
VER=$(curl -Is $REL | sed -En 's/^location:.+\/ tag\/ (.+)\r $/\1 /p' )
471
- curl -sSL https://get.helm.sh/helm-$VER-linux-${ARCH}.tar.gz | \
475
+ curl -fsSL https://get.helm.sh/helm-$VER-linux-${ARCH}.tar.gz | \
472
476
tar -xz -C /usr/local/bin --no-same-owner --strip 1 linux-${ARCH}/helm
473
477
helm version
474
478
@@ -483,7 +487,7 @@ echo "::group::Install Kubernetes tools"
483
487
REL="$REPO/releases/latest"
484
488
# name must be *linux.tgz or *linux-arm.tgz
485
489
ARCH=${ARCH/%amd*/} ARCH=${ARCH/%arm*/-arm}
486
- curl -sSL $REL/download/helm-ssm-linux${ARCH}.tgz | tar -xz
490
+ curl -fsSL $REL/download/helm-ssm-linux${ARCH}.tgz | tar -xz
487
491
VER=$(curl -Is $REL | sed -En 's/^location:.+\/ tag\/ (.+)\r $/\1 /p' )
488
492
sed -i "s/\" dev\" /\" $VER\" /" plugin.yaml
489
493
helm ssm --help
@@ -494,16 +498,23 @@ echo "::group::Install Kubernetes tools"
494
498
# install Helmfile: https://github.com/helmfile/helmfile#installation
495
499
REL="https://github.com/helmfile/helmfile/releases/latest"
496
500
VER=$(curl -Is $REL | sed -En 's/^location:.+\/ tag\/ v(.+)\r $/\1 /p' )
497
- curl -sSL $REL/download/helmfile_${VER}_linux_${ARCH}.tar.gz | \
501
+ curl -fsSL $REL/download/helmfile_${VER}_linux_${ARCH}.tar.gz | \
498
502
tar -xz -C /usr/local/bin --no-same-owner helmfile
499
503
helmfile --version
500
504
501
505
# install Argo CD: https://argo-cd.readthedocs.io/en/stable/cli_installation/
502
506
cd /usr/local/bin
503
507
REL="https://github.com/argoproj/argo-cd/releases/latest"
504
- curl -sSLo argocd $REL/download/argocd-linux-${ARCH}
508
+ curl -fsSLo argocd $REL/download/argocd-linux-${ARCH}
505
509
chmod +x argocd
506
510
argocd version --client --short
511
+
512
+ # install Argo Rollouts: https://argoproj.github.io/argo-rollouts/installation/
513
+ cd /usr/local/bin
514
+ REL="https://github.com/argoproj/argo-rollouts/releases/latest"
515
+ curl -fsSLo kubectl-argo-rollouts $REL/download/kubectl-argo-rollouts-linux-${ARCH}
516
+ chmod +x kubectl-argo-rollouts
517
+ kubectl argo rollouts version --short
507
518
)
508
519
echo "::endgroup::"
509
520
EOT
0 commit comments