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

EVEREST-1511 | Everest Helm chart #383

Merged
merged 69 commits into from
Oct 29, 2024
Merged

EVEREST-1511 | Everest Helm chart #383

merged 69 commits into from
Oct 29, 2024

Conversation

mayankshah1607
Copy link
Member

@mayankshah1607 mayankshah1607 commented Sep 25, 2024

Adds a new Helm chart for Everest.

TODO:

  • Chart release automation. For now it has been skipped from releases since we need a different release strategy than what is provided in this repo.
  • Chart has been excluded from tests, since it cannot be installed on any random namespace. Will be fixed as a part of the previous point.
  • Add docs for ArgoCD / Flux integration.

Since the chart is not yet published, you can test it locally:

  1. Provision Everest system components:
helm dependency update charts/everest
helm dependency update charts/everest/charts/everest-db-namespace
helm install everest-core ./charts/everest --namespace everest-system --create-namespace
  1. Provision a DB namespace:
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: Namespace
metadata:
  name: everest
  labels:
    app.kubernetes.io/managed-by: everest
EOF
helm install everest-db ./charts/everest/charts/everest-db-namespace --namespace everest
  1. Uninstallation
helm uninstall everest-db -n everest
kubectl delete namespace everest
helm uninstall everest-core -n everest-system
kubectl delete namespace everest-system

Important points to know:

  • Due to several technical limitations, this chart doesn't work correctly with GitOps tools like ArgoCD or Flux. There are workarounds which will be added as separate docs later.
  • Do not try to install anything other than dev-latest (0.0.0) otherwise it will not work either.

Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
@it-percona-cla
Copy link

it-percona-cla commented Sep 25, 2024

CLA assistant check
All committers have signed the CLA.

mayankshah1607 and others added 25 commits September 26, 2024 13:12
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
.github/CODEOWNERS Outdated Show resolved Hide resolved
@@ -48,7 +49,7 @@ jobs:
if [ -n "$OPERATOR_INSTALL" ]; then
for operator in $OPERATOR_INSTALL; do helm install --namespace default $operator charts/$operator/.; done
fi
ct install --config .github/ct.yaml
ct install --config .github/ct.yaml --excluded-charts=everest
Copy link
Member Author

Choose a reason for hiding this comment

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

Had to exclude it for now because this tool tries to deploy in a random namespace, but the chart fails if it is anything other than everest-system

At the same time, I could not figure out how to set a namespace only for specific charts.

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe there can be a separate workflow for everest, since we'll need one anyway for running a manual release

Comment on lines +2 to +6
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: v1.packages.operators.coreos.com
Copy link
Member Author

Choose a reason for hiding this comment

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

This chart changes the way OLM is deployed. Earlier we applied a CSV for the packageserver component, but this lead to many issues. For example, when running helm uninstall ... the OLM operator always got deleted first, and the CSV finalizer was stuck. As a result, the entire everest-olm namespace got stuck.

By deploying the components manually (using native objects such Deployment, APIService, etc.) helm handles deletion correctly..

mayankshah1607 and others added 16 commits October 11, 2024 11:36
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
Signed-off-by: Mayank Shah <[email protected]>
.github/CODEOWNERS Outdated Show resolved Hide resolved
Co-authored-by: Diogo Recharte <[email protected]>
Copy link
Collaborator

@recharte recharte left a comment

Choose a reason for hiding this comment

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

I didn't go through the 11.9k lines of yaml in detail as it's pretty much impossible but I did run quite a few tests and only found one issue about the everest-olm and everest-system showing up with DBEngines, this appears to be related with percona/everest-operator#534 so I'm approving this PR.

@mayankshah1607 mayankshah1607 merged commit dcfa25c into main Oct 29, 2024
2 checks passed
@mayankshah1607 mayankshah1607 deleted the EVEREST-1511 branch October 29, 2024 06:16
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