ansible-role-k8s-storage/bin/update.sh
Adrien 2be4c03df1
All checks were successful
continuous-integration/drone/push Build is passing
Update from upstream
2020-10-10 13:11:17 +02:00

119 lines
7.3 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Run from files directory
#
wget https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
kubernetes-split-yaml local-path-storage.yaml > generated.log
mv files/local{,.old}
mv generated files/local
echo -e "---\nstorage_localpath_files_list:" > vars/local.yaml
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "\2"|' >> vars/local.yaml
sed 's|/opt/local-path-provisioner|/mnt/local|' -i files/local/local-path-config-ConfigMap.yaml
#mv local-path-storage.yaml local-path-storage_$(date +%Y%m%d).yaml
rm -fr files/local.old generated.log local-path-storage.yaml
wget https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml
kubernetes-split-yaml longhorn.yaml > generated.log
mv files/longhorn{,.old}
mv generated files/longhorn
echo -e "---\nstorage_longhorn_files_list:" > vars/longhorn.yaml
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "\2"|' >> vars/longhorn.yaml
sed '/numberOfReplicas/ s/3/2/' -i files/longhorn/longhorn-StorageClass.yaml
sed '/default-data-path/ s|:.*$|: "/var/lib/longhorn/"|' -i files/longhorn/longhorn-default-setting-ConfigMap.yaml
rm -fr files/longhorn.old generated.log longhorn.yaml
#git clone https://github.com/linode/linode-blockstorage-csi-driver.git
#mv linode{,.old}
#mv linode-blockstorage-csi-driver/pkg/linode-bs/deploy/kubernetes linode
#rm -fr linode-blockstorage-csi-driver linode.old
# https://raw.githubusercontent.com/linode/linode-blockstorage-csi-driver/master/pkg/linode-bs/deploy/releases/linode-blockstorage-csi-driver-v0.1.4.yaml
wget https://raw.githubusercontent.com/linode/linode-blockstorage-csi-driver/master/pkg/linode-bs/deploy/releases/linode-blockstorage-csi-driver.yaml
kubernetes-split-yaml linode-blockstorage-csi-driver.yaml > generated.log
mv files/linode{,.old}
mv generated files/linode
echo -e "---\nstorage_linode_files_list:" > vars/linode.yaml
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "linode/\2"|' >> vars/linode.yaml
sed -e /is-default-class/d -e /annotations/d -i files/linode/linode-block-storage-StorageClass.yaml
sed -e /is-default-class/d -e /annotations/d -i files/linode/linode-block-storage-retain-StorageClass.yaml
rm -fr files/linode.old generated.log linode-blockstorage-csi-driver.yaml
DO_CSI_VERSION=2.0.0
mv files/digitalocean{,.old}
mkdir files/digitalocean
echo -e "---\nstorage_linode_files_list:" > vars/digitalocean.yaml
for FICHIER in crds.yaml driver.yaml snapshot-controller.yaml; do
wget https://github.com/digitalocean/csi-digitalocean/raw/master/deploy/kubernetes/releases/csi-digitalocean-v${DO_CSI_VERSION}/$FICHIER
kubernetes-split-yaml $FICHIER >> generated.log
mv generated/* files/digitalocean/
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "digitalocean/\2"|' >> vars/digitalocean.yaml
rm -f $FICHIER generated.log
done
for i in do-block-storage-StorageClass.yaml do-block-storage-VolumeSnapshotClass.yaml; do
sed -e /is-default-class/d -e /annotations/d -i files/digitalocean/"$i"
done
rm -fr files/digitalocean.old
# https://github.com/kubernetes-incubator/external-storage/tree/master/nfs
NFS_FILE=vars/nfs.yml
echo -e "---\nstore_nfs_files:" > "${NFS_FILE}"
mv files/nfs{,.old}
mkdir files/nfs
for FICHIER in psp.yaml rbac.yaml deployment.yaml class.yaml; do
wget https://github.com/kubernetes-incubator/external-storage/raw/master/nfs/deploy/kubernetes/$FICHIER
kubernetes-split-yaml $FICHIER >> generated.log
mv generated/* files/nfs/
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "\2"|' >> "${NFS_FILE}"
rm -f $FICHIER generated.log
done
for i in nfs-provisioner-runner-ClusterRole.yaml run-nfs-provisioner-ClusterRoleBinding.yaml leader-locking-nfs-provisioner-Role.yaml leader-locking-nfs-provisioner-RoleBinding.yaml; do
sed "s/namespace:.*/namespace: nfs-provisioner/g" -i files/nfs/$i
done
sed 's|^\(apiVersion:\).*|\1 policy/v1beta1|' -i files/nfs/nfs-provisioner-PodSecurityPolicy.yaml
sed 's|\(.*-provisioner=\).*"|\1reslinger.net/nfs"|' -i files/nfs/nfs-provisioner-Deployment.yaml
sed 's/example-nfs-//' -i "${NFS_FILE}"
mv files/nfs/example-nfs-StorageClass.yaml files/nfs/StorageClass.yaml
sed 's|example-nfs|nfs|' -i files/nfs/StorageClass.yaml
sed 's|example.com/nfs|reslinger.net/nfs|' -i files/nfs/StorageClass.yaml
rm -fr files/nfs.old
#https://github.com/scaleway/scaleway-csi
#https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver
#https://github.com/hetznercloud/csi-driver
#https://github.com/packethost/csi-packet
#https://github.com/kubernetes-sigs/azuredisk-csi-driver
#https://github.com/kubernetes-sigs/azurefile-csi-driver
#https://github.com/TencentCloud/kubernetes-csi-tencentcloud
#https://github.com/flant/yandex-csi-driver
#https://github.com/ceph/ceph-csi
#https://github.com/jparklab/synology-csi
#https://github.com/woohhan/dropbox-csi
#https://github.com/chr-fritz/csi-sshfs
#https://github.com/ctrox/csi-s3 ?
#https://github.com/wavezhang/k8s-csi-lvm ?
#https://github.com/juicedata/juicefs-csi-driver ?
SECRETS_STORE_FILE=vars/secrets_store_files_list.yml
echo -e "---\nsecrets_store_files:" > "${SECRETS_STORE_FILE}"
git clone https://github.com/kubernetes-sigs/secrets-store-csi-driver.git
kubernetes-split-yaml secrets-store-csi-driver/deploy/rbac-secretproviderclass.yaml > generated.log
kubernetes-split-yaml secrets-store-csi-driver/deploy/csidriver.yaml >> generated.log
kubernetes-split-yaml secrets-store-csi-driver/deploy/secrets-store.csi.x-k8s.io_secretproviderclasses.yaml >> generated.log
kubernetes-split-yaml secrets-store-csi-driver/deploy/secrets-store-csi-driver.yaml >> generated.log
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sed 's|.*\(generated/\)\(.*\.yaml\)| - "secrets-store/\2"|' >> "${SECRETS_STORE_FILE}"
mv files/secrets-store{,.old}
mv generated files/secrets-store
sed "/^metadata:$/a \ namespace: csi-secrets-store" -i files/secrets-store/csi-secrets-store-DaemonSet.yaml
rm -fr files/secrets-store.old generated.log secrets-store-csi-driver
curl -s -o files/secrets-store/provider-vault-installer.yaml https://raw.githubusercontent.com/hashicorp/secrets-store-csi-driver-provider-vault/master/deployment/provider-vault-installer.yaml
sed "/^metadata:$/a \ namespace: csi-secrets-store" -i files/secrets-store/provider-vault-installer.yaml
echo ' - "secrets-store/provider-vault-installer.yaml"' >> "${SECRETS_STORE_FILE}"
#https://github.com/Azure/secrets-store-csi-driver-provider-azure
#https://github.com/hashicorp/secrets-store-csi-driver-provider-vault