mass update and migrate to networking.k8s.io/v1 api
This commit is contained in:
46
contrib/networking-api-fix.sh
Executable file
46
contrib/networking-api-fix.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
while getopts n:r:c: flag
|
||||
do
|
||||
case "${flag}" in
|
||||
n) namespace=${OPTARG};;
|
||||
r) release=${OPTARG};;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z ${release+x} ] || [ -z ${namespace+x} ]; then echo "namespace and release must be defined"; exit 0; fi
|
||||
|
||||
echo "Get release object"
|
||||
releaseObject=$(kubectl get secret -l owner=helm,status=deployed,name=$release --namespace $namespace | awk '{print $1}' | grep -v NAME)
|
||||
|
||||
echo "Export secret to $release.release.yaml"
|
||||
kubectl get secret $releaseObject -n $namespace -o yaml > $release.release.yaml
|
||||
|
||||
echo "Create backup"
|
||||
cp $release.release.yaml $release.release.bak
|
||||
|
||||
echo "Decode"
|
||||
cat $release.release.yaml | grep -oP '(?<=release: ).*' | base64 -d | base64 -d | gzip -d > $release.release.data.decoded
|
||||
|
||||
echo "Replace api"
|
||||
sed -i -e 's/extensions\/v1beta1/networking.k8s.io\/v1/' $release.release.data.decoded
|
||||
sed -i -e 's/networking.k8s.io\/v1beta1/networking.k8s.io\/v1/' $release.release.data.decoded
|
||||
|
||||
echo "Encode"
|
||||
cat $release.release.data.decoded | gzip | base64 | base64 > $release.release.data.encoded
|
||||
|
||||
echo "Remove newlines"
|
||||
tr -d "\n" < $release.release.data.encoded > $release.release.data.encoded.final
|
||||
releaseData=$(cat $release.release.data.encoded.final)
|
||||
|
||||
echo "Replace data.release"
|
||||
sed 's/^\(\s*release\s*:\s*\).*/\1'$releaseData'/' $release.release.yaml > $release.final.release.yaml
|
||||
|
||||
echo "Applying to kubernetes"
|
||||
kubectl apply -f $release.final.release.yaml -n $namespace
|
||||
|
||||
rm $release.release.yaml
|
||||
rm $release.release.data.decoded
|
||||
rm $release.release.data.encoded
|
||||
rm $release.release.data.encoded.final
|
||||
rm $release.final.release.yaml
|
Reference in New Issue
Block a user