How To Manage Domains and Deploy Third-Party Apps
Tags: apps, domain, tutorial, productivity
Published: 2022-04-26 10:35:31


If you’re new to Argonaut or just getting started, you may have already configured an environment and poked around in the simplistic UI. Now that you’ve done that, you want to take it a step further and figure out how to start the configuration aspect for your organization.

In this blog post, you’ll learn about three common tasks that you’ll get started with almost right away in Argonaut.

## Configuring Domains

The first thing that many engineers do when they get an environment set up is configure a domain. The two most common places to do that are in:

- Cloudflare
- Route53

In this section, you’ll learn how to configure the domain via Route53.

💡 _If you want to check out a quick tutorial on how to do the same thing in Cloudflare, check out our docs [page](https://www.argonaut.dev/docs/guides/working-with-cloudflare)._

First, log into the Argonaut UI and go to your environment. Then, click on the load balancer.

![Argonaut Environment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xa2huco4du1qo4er4iu0.png "Argonaut Environment")

Luckily, Argonaut's intuitive UI and helpful tips guide you through the process of configuring the domain.

![CNAME](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qpfbtfcsmvz2nkluyc8c.png "CNAME")

As you can see from the screenshot above, Letsencrypt is taking care of the SSL and you need to configure a `CNAME` for the load balancer.

💡 _If you’re not familiar with `CNAME`, it’s essentially an alias to an A record, which is the primary DNS record._

### Setting Up A CNAME In AWS

Within AWS, go to the Route53 portal and click on a hosted zone. As an example, I own a domain that’s hosted in AWS called `simplyanengineer.com`.

Once in the hosted zone, click on the orange **Create record** button.

![Route53 Domains](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qtxvrqi5x9uij9cx8i8i.png "Route53 Domains")

When you’re on the record creating screen, you’ll want to change three values:

- Change the record type to a `CNAME`
- Put in the value of the load balancer from the Argonaut portal
- Put in a record name. As an example, I put in `argonautenvironment`

![New CNAME](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wevyryfwwvdk9j0zw84.png "New CNAME")

Once the values are filled in, click the orange **Create records** button.

## Deploying 3rd Party Apps And Plugins

When you think about how cumbersome deploying an app is in today’s world, it holds up a lot of engineers. Everything from where it’s going to be deployed from (CI/CD, for example) to how the app will be managed.

With Argonaut, that’s all taken care of for you. The thinking that’s needed behind setting up and deploying apps is handled. All you have to worry about is what you’re deploying and writing the code for the app.

Within Argonaut, click on the environment name.

![Dev1 Environment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1g2l9w7q48kape1rxhbt.png "Dev1 Environment")

Within the apps page, click on the purple **New App +** button.


![New Apps](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1udyht9psw10zffwvib9.png "New Apps")

When you click on the **New App +** button, you’ll have two options:

- From Git
- From Library


![App Deployment Options](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cffltwame6uz0cn0s840.png "App Deployment Options")

If you choose **From Library**, you have several options. One of the many amazing things about Argonaut is that it comes pre-configured with certain apps that are ready to be used out-of-the-box. Those apps include:

- Grafana
- Datadog
- Clickhouse
- ELK

You also have a custom app option, which is used to deploy a Helm chart.

💡 _If you’re not familiar with Helm charts, they’re a collection of Kubernetes manifests that make up an application stack._

### Deploying A Library App

For simplicity, let’s learn how to deploy a library app.

Within the **From Library** option, click on Datadog.

![Pre-Configred Apps](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xgkr4193b6qcv56hx6r.png "Pre-Configred Apps")

Notice how there’s a YAML configuration to install Datadog. Datadog gets installed within your Argonaut environment.

![Datadog Deployment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rgdvkooa8168buw24l9z.png "Datadog Deployment")

Click the purple **Install datadog** button.

![Datadog App Install](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fovp9m7h6kx5smisaj76.png "Datadog App Install")

Within just a few minutes, your APM and monitoring solution is up and running!


![Datadog App Installed](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1j69yfavcqcc01zd0w70.png "Datadog App Installed")

If you click on the newly created Datadog app, you’ll see the overview and configuration data for your Datadog instance.

## Deploying Apps

In the previous section, you learned about one way to deploy apps, which are the custom-built/3rd party apps via the Library.

If you chose **From Git** instead, you’ll deploy an app that’s within your GitHub or Gitlab repos. Not only do you choose the app that you want, but you can also set up resource limits, network services, Dockerfile paths, health checks, and much more. It’s like a containerization application paradise.

From the **Deploy an Application** screen, you’ll be able to choose what app you want to containerize, build, and deploy.

Choose the appropriate repo name for your app. As an example, I chose `python-webapp-sample` from my GitHub repository.


![App Configurations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3motg9aaod3juemlzn9.png "App Configurations")

Once chosen, click the purpose **Deploy** button.

You’ll have a few options that pop up:

- **Raise a Pull Request**: Going with the PR option, you’ll see a new PR open on your GitHub repo that contains GitHub Action workflow added to deploy your app. If you merge the PR, the GitHub Action workflow will start.
- **Generate Configurations**: Clicking on generate configurations will generate the GitHub Actions workflow for you instead of creating a PR and committing it to your repo. That way, you can take a look at it and copy/paste it in GitHub if you want to.
- **Commit to repo**: This option will create a new `.art` directory that contains the YAML configuration for your app being deployed via Argonaut. Please note that this option will commit the `.art` directory and YAML config directly to the `main/master` branch.

![App Configuration Options](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8eut8eehe54lg5hqi6gk.png "App Configuration Options")

## Wrapping Up

As you can see, using a product like Argonaut is quite straightforward. Managing Kubernetes clusters for key cloud services is a breeze, and you can have a centralized hub for anything application-specific. Whether you want to deploy applications, configure Kubernetes deployments, or work with popular cloud services, you can do it all right from one location - Argonaut.

Thanks to Guhan and Surya for helping with the draft.
The above content is written by [Michael Levan](https://www.michaellevan.net/).