> For the complete documentation index, see [llms.txt](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-10-01-2020/day-2/lab-kubernetes-extensions/operator-sdk-setup.md).

# Setup Tools

Please follow these steps to prepare for the Kubernetes Extensions lab:

1. [Install Operator SDK](/cloudpakforapplications-appmod/workshop-10-01-2020/day-2/lab-kubernetes-extensions/operator-sdk-setup.md#2-install-operator-sdk)
2. [Configure Kubectl](/cloudpakforapplications-appmod/workshop-10-01-2020/day-2/lab-kubernetes-extensions/operator-sdk-setup.md#3-configure-kubectl)

## 1. Install Operator SDK

The Cloud Shell comes with several tools/libraries. For the lab, we will use the `operator-sdk` cli, which depends on `Go` to be installed. To check if both tools are installed in your shell, runn the following commands.

```
go version
```

```
operator-sdk version
```

If you see a `command not found` error, you will need to install both. For detailed installation instructions go [here](https://sdk.operatorframework.io/docs/install-operator-sdk/).

The version of the operator SDK used in the lab is 0.18.2. If the version shown from the above command is not 0.18.2, we need to install it.

```
curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v0.18.2/operator-sdk-v0.18.2-x86_64-linux-gnu
```

```
chmod +x operator-sdk-v0.18.2-x86_64-linux-gnu
```

```
mkdir $HOME/operatorsdk0182
```

```
cp operator-sdk-v0.18.2-x86_64-linux-gnu $HOME/operatorsdk0182/operator-sdk
```

```
rm operator-sdk-v0.18.2-x86_64-linux-gnu
```

```bash
echo 'export PATH=$HOME/operatorsdk0182:$PATH' > .bash_profile
```

```bash
source .bash_profile
```

Check again,

```
operator-sdk version
```

## 2. Configure Kubectl

If you have not setup your kubectl to access your cluster, you can do so in the terminal environment

1. Login to IBM Cloud using `ibmcloud login`. If asked, choose `Advowork` as your target account.
2. Run the `ibmcloud ks clusters` command to verify the terminal and setup for access to the cluster

   ```
   ibmcloud ks clusters
   ```
3. Configure the `kubectl` cli available within the terminal for access to your cluster. If you previously stored your cluster name to an environment variable, use that (ie. `$CLUSTER_NAME`), otherwise copy and paste your cluster name from the previous commands output to the `$CLUSTER_NAME` portion below.

   ```
   ibmcloud ks cluster config --cluster $CLUSTER_NAME
   ```
4. Verify access to the Kubernetes API by getting the namespaces.

   ```
   kubectl get namespace
   ```
5. You should see output similar to the following, if so, then your're ready to continue.

```
NAME              STATUS   AGE
default           Active   125m
ibm-cert-store    Active   121m
ibm-system        Active   124m
kube-node-lease   Active   125m
kube-public       Active   125m
kube-system       Active   125m
```
