# Docker Desktop

gopaddle Lite is now available as a Docker Desktop community extension, enabling Docker Desktop users to manage multiple cloud & onpremise Kubernetes environments from a single dashboard. Docker users can start building a complete DevSecOps automation using gopaddle.

### Pre-requisites <a href="#h_c6366beecf" id="h_c6366beecf"></a>

a) **Docker Desktop requirements:** Minimum 4vCPU, 8GB RAM and minimum 10GB free disk space

Under Docker Desktop Settings, make sure the minimum CPU and Memory resources are configured.

<figure><img src="https://downloads.intercomcdn.com/i/o/782105813/01cae9bde94d5810d021b50a/Screen+Shot+2023-07-10+at+2.58.56+PM.png" alt=""><figcaption></figcaption></figure>

b) **Docker Engine** - v20.10.24 or later

c) **Kubernetes Engine** - v1.25.4

d) Enable Kubernetes Engine

<figure><img src="https://downloads.intercomcdn.com/i/o/729328541/3fe063b66a7f38ed7571fc9b/Screen+Shot+2023-04-26+at+3.04.47+PM.png" alt=""><figcaption></figcaption></figure>

### Installation Steps <a href="#h_4be1033b5f" id="h_4be1033b5f"></a>

If you already have Docker Desktop installed, click on the [link](https://open.docker.com/extensions/marketplace?extensionId=gopaddle/gopaddle-extension\&tag=4.2.9) to download and install the extension.

If not, follow the below steps to install gopaddle extension.

1. Download and Install Docker Desktop - <https://www.docker.com/products/docker-desktop/>
2. Search for gopaddle in the Docker Extensions Marketplace

   <figure><img src="https://downloads.intercomcdn.com/i/o/729328635/bc05c7a1061ecc03cb641879/Screen+Shot+2023-04-26+at+3.01.52+PM.png" alt=""><figcaption></figcaption></figure>
3. Install the gopaddle extension.

   <figure><img src="https://downloads.intercomcdn.com/i/o/758895825/a55c1fe1b1c87aaed93a5055/Docker-Desktop-Extension.png" alt=""><figcaption></figcaption></figure>

### Getting started <a href="#h_2bb94a40b2" id="h_2bb94a40b2"></a>

1. Subscribe to gopaddle using your email ID. gopaddle then sends an email to the registered email ID with an initial password.

   <figure><img src="https://downloads.intercomcdn.com/i/o/758886594/8fa74ce10df0e3a28d4fe755/Screen+Shot+2023-06-07+at+6.09.17+PM.png" alt=""><figcaption></figcaption></figure>
2. Login to the gopaddle dashboard using the registered email ID and the initial password.
3. Enable the Kubernetes cluster under the Docker Desktop Settings.

   <figure><img src="https://downloads.intercomcdn.com/i/o/758890499/2f44fecf45bd4c0e53d9b1c9/Screen+Shot+2023-06-07+at+6.10.18+PM.png" alt=""><figcaption></figcaption></figure>
4. Wait until the Kubernetes cluster moves to ready state.

   [![](https://downloads.intercomcdn.com/i/o/758894008/376927673405d252f8ef7b10/Screen+Shot+2023-06-07+at+6.28.52+PM.png)](https://downloads.intercomcdn.com/i/o/758894008/376927673405d252f8ef7b10/Screen+Shot+2023-06-07+at+6.28.52+PM.png)
5. Once the Kubernetes status icon in the Docker Desktop moves to ready state, execute the below command in the local terminal to get the Kubernetes cluster configuration.

   ```sh
   kubectl config view --minify=true -o yaml --context=docker-desktop --flatten
   ```
6. Register the local cluster in the gopaddle dashboard

   <figure><img src="https://downloads.intercomcdn.com/i/o/758898947/cd6bac9d08314c08f30a0006/Screen+Shot+2023-06-07+at+6.42.57+PM.png" alt=""><figcaption></figcaption></figure>

gopaddle automatically triggers a discovery process, that discovers the resources in the *docker-desktop* Kubernetes cluster. Once the discovery process is complete, you can view the namespaces under the Applications tab and the Kubernetes specifications under the Design Studio.

### Uninstalling gopaddle extension <a href="#h_aee0e3edc9" id="h_aee0e3edc9"></a>

a) Cancel the subscription (if any). You can ignore this step, if you are on free version of gopaddle lite.

Under the Profile, choose Billing

[![](https://downloads.intercomcdn.com/i/o/729457230/addd130322465bbb46de4c4e/Screen+Shot+2023-04-26+at+7.28.39+PM.png)](https://downloads.intercomcdn.com/i/o/729457230/addd130322465bbb46de4c4e/Screen+Shot+2023-04-26+at+7.28.39+PM.png)

Copy the URL from the Manage gopaddle Subscriptions pop up. Open the URL in the browser. Login using the gopaddle registered email ID and manage your billing and subscription.

<figure><img src="https://downloads.intercomcdn.com/i/o/729458713/18ee491c9fc602f270011d2d/Screen+Shot+2023-04-26+at+7.33.51+PM.png" alt=""><figcaption></figcaption></figure>

b) Uninstall the gopaddle extension from docker desktop

<figure><img src="https://downloads.intercomcdn.com/i/o/729335164/b7ba7c3e1fd97724cba4c497/Screen+Shot+2023-04-26+at+3.14.24+PM.png" alt=""><figcaption></figcaption></figure>

c) Switch to docker-destop Kubernetes context

```sh
kubectl config use-context docker-desktop
```

e) Uninstall the gopaddle-servers namespaces

```sh
kubectl delete ns gopaddle-servers gp-lite-4-2
```

Note. If deleting the gopaddle-servers is stuck, then edit the namespace and remove the finalizers

```sh
kubectl get namespace gopaddle-servers -o json \ | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \ | kubectl replace --raw /api/v1/namespaces/gopaddle-servers/finalize -f -
```

g) Delete the gopaddle clusterroles

```sh
kubectl delete clusterrole gopaddle gopaddle:nginx-ingress-clusterrole gopaddle:prometheus-tool-kube-state-metrics gopaddle:prometheus-tool-server 
```

\
h) Delete the gopaddle clusterrolebindings

```sh
kubectl delete clusterrolebinding gopaddle gopaddle:event-exporter-rb gopaddle:prometheus-tool-kube-state-metrics gopaddle:prometheus-tool-server
```

i) Delete the default backend

```sh
kubectl delete deploy/default-http-backend 
kubectl delete service/default-http-backend
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.gopaddle.io/overview/installing-community-edition/docker-desktop.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
