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  "$@"