get.porter.sh/porter@v1.3.0/tests/integration/testdata/bundles/exec-outputs/cluster.sh (about) 1 #!/usr/bin/env bash 2 3 set -euo pipefail 4 5 create-cluster() { 6 echo "Creating the cluster..." 7 # This pretends to create a kubernetes cluster 8 # by generating a dummy kubeconfig file 9 mkdir -p /home/nonroot/.kube 10 cat <<EOF >> /home/nonroot/.kube/config 11 apiVersion: v1 12 clusters: 13 - cluster: 14 certificate-authority-data: abc123== 15 server: https://127.0.0.1:8443 16 name: minikube 17 contexts: 18 - context: 19 cluster: minikube 20 user: minikube 21 name: minikube 22 current-context: minikube 23 kind: Config 24 preferences: {} 25 users: 26 - name: minikube 27 user: 28 client-certificate-data: abc123= 29 client-key-data: abc123== 30 EOF 31 } 32 33 ensure-config() { 34 if [ ! -f "/home/nonroot/.kube/config" ]; then 35 echo "kubeconfig not found" 36 exit 1 37 fi 38 } 39 40 ensure-users() { 41 if [ ! -f "/cnab/app/users.json" ]; then 42 echo "users.json not found" 43 exit 1 44 fi 45 } 46 47 generate-users() { 48 ensure-config 49 echo '{"users": ["sally"]}' > users.json 50 cat users.json 51 } 52 53 add-user() { 54 ensure-config 55 ensure-users 56 # Do this in two steps because jq doesn't have overwrite functionality 57 cat users.json | jq ".users += [\"$1\"]" > users.json.tmp 58 # Using cp instead of mv because if the bundle is executed with Kubernetes 59 # you can't move a file that was volume mounted in k8s. That only works with Docker. 60 cp users.json.tmp users.json 61 } 62 63 dump-users() { 64 ensure-config 65 ensure-users 66 cat users.json 67 } 68 69 uninstall() { 70 ensure-config 71 echo 'Uninstalling Cluster...' 72 } 73 74 # Call the requested function and pass the arguments as-is 75 "$@"