-
Notifications
You must be signed in to change notification settings - Fork 6
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
feat: Helm for DB config, MariaDB configurable storage #531
base: main
Are you sure you want to change the base?
Conversation
8732afb
to
12d4cd5
Compare
6df0326
to
daee5f5
Compare
This creates helm templates for grants, databases and users based on the current setup.
- add chart linting with helm-lint and chart-testing - remove duplicate YAML linter: we are already doing yamllint as part of the pre-commit run. The helm-charts are excluded anyways because they would produce incorrect results until they are rendered.
We cannot use the traditional HTTP repository hosted on the Github Pages, because the understack repo usees github actions to publish the website through mkdocs. The hard requirement for the `actions/deploy-pages` action is that the artifcat that is upload is created inside the same workflow. Currently the artifact is produced by other mkdocs workflow so using traditional Helm Chart Releaser would overwrite the page. We do not want that. The potential workaround would be to: - have the mkdocs push to a temporary branch - have the mkdocs workflow stop pushing to Github Pages - have the helm-chart-releaser not publish `index.yaml` to the `gh-pages`, but to the temporary branch instead - additional workflow would need to be setup to react on pushes to the temporary branch. That workflow would need to merge outputs of mkdocs and index.yaml from helm chart releaser, then upload and publish to GH pages. This workaround was never implemented or tested, because going down the route of publishing the Helm chart to OCI index sounds easier as the OCI method does not need the index.yaml.
In our current setup, the Kubernetes resource is called 'nova-api', but the database name is 'nova_api'.
daee5f5
to
6c86ed8
Compare
So I don't understand why the Database, User and Grant objects are being moved. Cause certain pieces will be deployed in global, regional, and fabric levels. With this setup you're bringing everything to one scope which works for AIO but not in a large scale. I thought we would put the pieces in |
Few reasons:
We would still deploy those releases on global, regional and fabric levels - just with different values. All with auditable history, versioning and other benefits of using charts. Happy to discuss this further if it's not premature optimization.
Ok, now I don't understand why this was said in the JIRA about "configuration of storageclass for MariaDB" which did not mention openstack anywhere... Now, ignoring that for a minute - let's look into the contents of this folder - we can certainly work towards moving it, but in it's current form it may not be the best idea to just throw it into a chart. It's looking like dumping ground for random pieces - it has:
This README is not accurate, as you cannot deploy OpenStack without having |
I was thinking the creation of the DB instance / management of it as well as the RabbitMQ instance. There are however some shared pieces that can exist. Like the DB instance and the RabbitMQ instance that other components will depend upon. What we really need to start doing is breaking stuff up along the boundaries laid out on https://rackerlabs.github.io/understack/deploy-guide/ So 100% a lot of that contents needs to get broken up. What I was suggesting to you prior to PTO was that we needed to make that piece a helm chart and then have a helm chart for each OpenStack piece that had the OpenStack Helm chart as a dependency. We could use a library chart to prevent duplication. Creating the DB for a service seemed to pair with the actual service itself in my mind but if you want to centralize it I won't protest. I don't think we need to be releasing a helm chart. That's only useful if something external is going to be installing it. This is an internal helm chart and by doing releases it'll make testing things a lot harder. You'll have to release the chart and then change the repo to consume the new release. Just use the chart straight from git at the tag/commit that you're using the rest of the repo. |
Thanks. That sounds like a bigger restructuring that will impact more than just a database related features. At first thought sticking RabbitMQ on top of that feels like it's random addition that currently has just 4 lines of code and zero customization. If we draw the line at "shared" bits specifically for openstack deployment then we probably need to include the memcached and ES too.
That approach makes more sense to me and it was kinda what I was trying to achieve here by creating another virtual "component" that sets up everything related to the database. If you'd rather have the instance setup as part of the "shared" chart, but Before I make any changes here I would like to make sure that we are on the same page so let's chat about this in person when you have a minute. |
Caution
Do note merge without reading the section below!
Description
This PR changes how the MariaDB component for OpenStack is configured.
By moving to a dedicated Helm chart, we allow better customisation of options delivered to the mariadb-operator.
The main reason behind this change was to have the ability to change the
storageClass
used to back the database PVCs, as we previously relied on a default storage class being configured correctly.Please review, but DO NOT MERGE because ArgoCD's autosync may wipe the database and other resources if the changes are not applied in correct order.
I am planning to integrate this change as outlined in the plan below (please provide feedback on it too if you have any):
Depends on https://github.com/RSS-Engineering/undercloud-deploy/pull/239
Closes PUC-521
Migration Plan to switchover clusters to UnderstackDB
HEAD
migration-X
)that only disablesautosync
foroperators
andopenstack
components.migration-X
branchopenstack
andoperators
appsets through CLI or UI, refresh as necessarymigration-X
branchbravo-uc-iad3-understackdb
app, review the changes. This should mostly be annotation and name changes like these:bravo-uc-iad3-understackdb
if you are happy with those changes.User
,Database
,Grant
resources have moved away from their relevant apps.charlie/staging
cluster.main
branch.HEAD/HEAD
or their equivalent refs again.