> For the complete documentation index, see [llms.txt](https://docs.ellipsis-drive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ellipsis-drive.com/installation/system-architecture-and-configuration/kubernetes-deployment/getting-started.md).

# Getting started

Before you begin, you must prepare a machine according to the [Prerequisites](/installation/system-architecture-and-configuration/kubernetes-deployment/prerequisites.md).&#x20;

{% hint style="info" %}
We recommend using a fresh Docker container for your work with Ellipsis Drive Kubernetes
{% endhint %}

Below is a step by step guide to deploy a standard Ellipsis Drive Cluster on the cloud provider of your choice:

1. Installing the EDK CLI
2. Preparing the config
3. Creating the cluster
4. Linking URL endpoints
5. Verifying that everything works

#### 1. Installing the EDK CLI

Download the desired release of the EDK CLI from the [GitHub page](https://github.com/ellipsis-drive/edk-cli). Inside the folder of the release, you can use the packages.json to install the node nodules needed by the script.

You can also use the script below to install the latest version of EDK CLI in one go.

```
tag=$(curl -s https://api.github.com/repos/ellipsis-drive/edk-cli/releases/latest | grep -m1 '"tag_name"' | cut -d '"' -f4)
wget https://github.com/ellipsis-drive/edk-cli/archive/refs/tags/$tag.zip
unzip $tag.zip
npm install --prefix=./edk-cli-${tag:1}/
```

The *edk* file inside the directory is the main entry point of the EDK CLI. You can create terminal shortcuts for this file so you can run it globally. For simplicity, the rest of this documentation assumes that the active directory of your current terminal session is inside the unzipped folder by running the following command directly after the previous ones:

```
cd edk-cli-${tag:1}
```

#### 2. Preparing the config

Inside the unzipped folder, you will find a config.jsonc. This file will be used during the creation of your cluster to customize it. **It is important that you fill in all the fields of this file before proceeding with the other steps.** See the [config.jsonc](/installation/system-architecture-and-configuration/kubernetes-deployment/config.jsonc.md) page for detailed information about each field.

You can use the *configure* command of the EDK CLI to randomly generate and fill in the password and secret fields.&#x20;

```
./edk configure
```

You are free to further edit the fields of the config.jsonc after running this command, including the generated passwords and secrets.

You can use the *configure validate* command to see whether your configuration&#x20;

```
./edk configure validate
```

#### 3. Creating the cluster

When you are ready with the configuration, run the *create* command of the EDK CLI.

```
./edk create
```

This will start the cluster creation process. This process can take up to 30 minutes. After the script terminates, it may take another few minutes before the cluster finishes the last setup tasks and stabilizes the nodes and pods.

#### 4. Linking URL endpoints

The cluster will have created ingress endpoints for the UI and the API. It will also have created certificates for the URLs you have filled in the config for both of them.&#x20;

Go to AWS Certificate Manager and follow the instructions there to verify the certificates.&#x20;

After verifying the certificates, run the command below:

```
kubectl get ingress
```

This should give you two entries. One is called *api-ingress* and the other one called *penguin-ingress*.

Create DNS records according to the following table:

<table><thead><tr><th width="124.449951171875">Type</th><th width="308.95001220703125">Host</th><th>Value</th></tr></thead><tbody><tr><td>CNAME</td><td>(apiUrl in config.jsonc)</td><td>(address of api-ingress)</td></tr><tr><td>CNAME</td><td>(frontendUrl in config.jsonc)</td><td>(address of penguin-ingress)</td></tr></tbody></table>

#### 5. Verifying that everything works

You can try visiting the frontEnd URL you have filled in config.jsonc to see whether the UI is in working order.

You can visit the apiUrl and adding /v3 behind the URL to see if the API gives a simple welcome message.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.ellipsis-drive.com/installation/system-architecture-and-configuration/kubernetes-deployment/getting-started.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
