# How to Test Manually

- `$ minikube start`
- In the Vault folder, `$ make dev XC_ARCH=amd64 XC_OS=linux XC_OSARCH=linux/amd64`
- Create a file called `vault-test.yaml` with the following contents:

```
apiVersion: v1
kind: Pod
metadata:
  name: vault
spec:
  containers:
    - name: nginx
      image: nginx
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv VAULT_K8S_POD_NAME VAULT_K8S_NAMESPACE;
          sleep 10;
        done;
      env:
        - name: VAULT_K8S_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: VAULT_K8S_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
  restartPolicy: Never
```

- Create the pod: `$ kubectl apply -f vault-test.yaml`
- View the full initial state of the pod: `$ kubectl get pod vault -o=yaml > initialstate.txt`
- Drop the Vault binary into the pod: `$ kubectl cp bin/vault /vault:/`
- Drop to the shell within the pod: `$ kubectl exec -it vault -- /bin/bash`
- Install a text editor: `$ apt-get update`, `$ apt-get install nano`
- Write a test Vault config to `vault.config` like:

```
storage "inmem" {}
service_registration "kubernetes" {}
disable_mlock = true
ui = true
api_addr = "http://127.0.0.1:8200"
log_level = "debug"
```

- Run Vault: `$ ./vault server -config=vault.config -dev -dev-root-token-id=root`
- If 403's are received, you may need to grant RBAC, example here: https://github.com/fabric8io/fabric8/issues/6840#issuecomment-307560275
- In a separate window outside the pod, view the resulting state of the pod: `$ kubectl get pod vault -o=yaml > currentstate.txt`
- View the differences: `$ diff initialstate.txt currentstate.txt`
