Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[helm] Initial Helm chart #950

Merged
merged 13 commits into from
Jan 4, 2024
Merged

[helm] Initial Helm chart #950

merged 13 commits into from
Jan 4, 2024

Conversation

barroco
Copy link
Contributor

@barroco barroco commented Apr 26, 2023

Progressing on the objective #874, this PR adds the ability to deploy the DSS using helm to a Kubernetes cluster.
It was tested on AWS and Google deployment using the terraform scripts to deploy the infrastructure.
A future PR will update the terraform-commons-dss to automatically deploy the DSS using this helm chart.

Few remarks:

  1. Since this helm chart primary purpose is to be instrumented by terraform, documentation has been kept minimal. Users will be expected to get the instructions from there. (This may be reviewed based on user feedback)
  2. initContainers have been added to the workloads to better handle the starting sequence of pods:
    1. cockroachdb
    2. schema-manager
    3. dss-core-service
  3. Not all configuration flags have been added yet to the manifest compared to tanka. It will be added if necessary incrementally in upcoming PRs and based on the terraform configuration.

@barroco barroco changed the title [helm] Add ability to deploy the DSS using Helm [helm] Initial Helm chart Apr 26, 2023
@barroco
Copy link
Contributor Author

barroco commented Apr 26, 2023

Helm install (from commit 7da7b3e) successfully applied to aws and google deployments.

@barroco
Copy link
Contributor Author

barroco commented Oct 4, 2023

Closed according to the new tsc contributing guidelines.
This PR was waiting to reach feature parity with the current tanka deployment.
This PR will be re-opened once the documentation is ready and reflects the in-progress state.

@barroco barroco closed this Oct 4, 2023
@barroco barroco reopened this Nov 17, 2023
@barroco
Copy link
Contributor Author

barroco commented Nov 19, 2023

This first version of the helm chart is a partial migration of the tanka manifests. The following parts are missing:

  1. Prometheus / Alert Manager / Grafana and related dashboards. This will be the subject of a future PR.
  2. Istio: As agreed during the InterUSS weekly call on November 17, 2023 with @BenjaminPelletier, this will not be ported to helm since the initial idea was to create a multi-cluster mesh to connect the cochroach db nodes between participants. It was preferred to use the current certificates sharing approach offered by cockroach db instead, so Istio is not a requirement for the project anymore. However, we would like to support deployments on clusters which require istio by allowing to inject proper configuration flags. This will be the subject of another PR.

Copy link
Contributor

@marcadamsge marcadamsge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty advanced stuff 👍 I was surprised at first that your values.schema.json also includes values of the cockroachDB helm chart, but then I realized that you also use some of these values. I tried rendering that helm chart locally, I didn't try deploying it though, but it LGTM

deploy/infrastructure/README.md Show resolved Hide resolved
@barroco
Copy link
Contributor Author

barroco commented Jan 3, 2024

Tested successfully as part of a CI run: https://github.com/Orbitalize/dss/actions/runs/7398206495/job/20126882086#step:6:10354

CI code and updates to terraform required to deploy the helm chart will be the subject of another PR. #983

@barroco barroco marked this pull request as ready for review January 3, 2024 15:21
Copy link
Member

@BenjaminPelletier BenjaminPelletier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, though I am probably not the most ideal technical reviewer. I have some comments regarding the documentation, but your discretion whether they are addressed for this PR or in a separate PR.

@@ -1,11 +1,13 @@
# DSS Deployment

**Work in progress**

This folder contains the increments toward the new deployment approach as described in [#874](https://github.com/interuss/dss/issues/874).

The infrastructure folder contains the terraform modules to deploy the DSS to kubernetes clusters of various cloud providers:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still true? Isn't the infrastructure folder supposed to simply set up the Infrastructure to be ready to accept Services deployment? If that is the case, it seems like DSS deployment requires Infrastructure + Services and it would be more appropriate here to say something like "The infrastructure folder contains the terraform modules to prepare infrastructure on various cloud providers to accept deployment of Services below". If that's not the case, what is the difference between Infrastructure and Services, and why is Services needed at all if Infrastructure fully deploys the DSS? Perhaps the infrastructure folder actually contain Infrastructure + Services-via-not-Helm?

It seems like it would likely be valuable to answer in the form of transferring some of the documentation from #874 to this file and/or the Infrastructure and Services READMEs (especially the definitions of Infrastructure, Services, and Operations)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#984 brings the definitions from #874 to the repository and should address your comment.
I added a Getting Started section driving the reader to the correct location to deploy the DSS from scratch.

@@ -1,11 +1,13 @@
# DSS Deployment

**Work in progress**

This folder contains the increments toward the new deployment approach as described in [#874](https://github.com/interuss/dss/issues/874).

The infrastructure folder contains the terraform modules to deploy the DSS to kubernetes clusters of various cloud providers:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To facilitate navigation solely from the README content, it would probably be nice to enclose "infrastructure folder" and "service folder" in links to those respective folders. The links are immediately available when the README is displayed as a result of viewing the folder in GitHub (basically using it as an index.html), but they're not immediately available when viewing the README specifically.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#984 regorganizes the documentation and this file now encloses all modules.

@@ -0,0 +1,5 @@
# Services

This folder contains the tools to deploy a DSS to a Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this relate to Deployment of the DSS services included in the infrastructure section of deployment? When would a user use one versus the other, and how would they know to do that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file has been removed in #984 in favour of a consolidated description of all modules.

@barroco
Copy link
Contributor Author

barroco commented Jan 4, 2024

Thanks for the comments. I will merge the open PRs and consolidate the documentation in a new one based on your feedback as you suggested.

@barroco barroco merged commit 87da43c into interuss:master Jan 4, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants