-
Notifications
You must be signed in to change notification settings - Fork 50
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
[WIP] Multi-cell adoption #517
base: main
Are you sure you want to change the base?
Conversation
The recent revision gives an overview to the approach taken, PTAL. |
|
||
For that, you can also adjust as needed and use the following commands | ||
(instead of an example `rhos-release` commands, use a tool of your choice): | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we could stop just by listing requirements, however, I prefer to give developers a more insight into examples
@@ -26,6 +26,7 @@ here this time). | |||
---- | |||
PODIFIED_MARIADB_IP=$(oc get svc --selector "mariadb/name=openstack" -ojsonpath='{.items[0].spec.clusterIP}') | |||
PODIFIED_CELL1_MARIADB_IP=$(oc get svc --selector "mariadb/name=openstack-cell1" -ojsonpath='{.items[0].spec.clusterIP}') | |||
PODIFIED_CELL2_MARIADB_IP=$(oc get svc --selector "mariadb/name=openstack-cell1" -ojsonpath='{.items[0].spec.clusterIP}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll figure a better solution for that
# ... | ||
|
||
# Replace with all members data for each MariaDB Galera cluster in the overcloud and additional cell stacks | ||
declare -A SOURCE_GALERA_MEMBERS_DEFAULT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is a bit clumsy, but we don't really want to deal with nested dictionaries in bash, do we?
@@ -50,42 +73,52 @@ export PULL_OPENSTACK_CONFIGURATION_NOVADB_MAPPED_CELLS=$(oc run mariadb-client | |||
'select uuid,name,transport_url,database_connection,disabled from cell_mappings;') | |||
echo "$PULL_OPENSTACK_CONFIGURATION_NOVADB_MAPPED_CELLS" | |||
---- | |||
+ | |||
Repeat the steps for additional compute cells by substituting `SOURCE_MARIADB_IP` and `SOURCE_DB_ROOT_PASSWORD`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
those "Repeat..." are going to be iterated instead, likely
"select host from nova.services where services.binary='nova-compute';") | ||
echo "$PULL_OPENSTACK_CONFIGURATION_NOVA_COMPUTE_HOSTNAMES" | ||
---- | ||
|
||
. Get the list of mapped the {compute_service} cells: | ||
. Get the list of mapped the {compute_service} cells, from any overcloud or compute cell controller host: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SeanMooney from any of them, as I've noticed they all contain the same data
This change depends on a change that failed to merge. Change openstack-k8s-operators/install_yamls#826 is needed. |
+ | ||
---- | ||
export PULL_OPENSTACK_CONFIGURATION_NOVAMANAGE_CELL_MAPPINGS=$($CONTROLLER1_SSH sudo podman exec -it nova_api nova-manage cell_v2 list_cells) | ||
export PULL_OPENSTACK_CONFIGURATION_NOVAMANAGE_CELL_MAPPINGS=$($CONTROLLER1_SSH sudo podman exec -it nova_conductor nova-manage cell_v2 list_cells) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: there is no nova_api on cell controllers
tests/vars.sample.yaml
Outdated
# EDPM node IP | ||
edpm_node_ip: 192.168.122.100 #CUSTOMIZE_THIS | ||
# EDPM node IPs, for each cell on the destination cloud | ||
edpm_node_ip: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Based on feedback from @SeanMooney, we should not shift cells names as I proposed here. We want it instead like this:
Implementing either of these is quite challenging given the local requirement to maintain code in tests in the same form as it is documented (meaning shell commands). This sofisticated logic will bring in even more loops and arrays handling into already overcomplicated code proposed in this PR draft. |
As nova-operator allows a cell to be named "default" the simplest solution would be your second proposal. Just import the cells as is. This has the benefit also that it will work even if a given customer wrongly attached computes to the default cell. |
I tend now to implement the last choice: for a multi-cell ( default, cell1, etc. exist) - rename default cell to the highest cell number + 1. This keeps it consistent for single cell and multicell... /update: See the combined option which allows both renaming or importing as is |
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Keep renaming 'default' cell consistent for single and multi cells: * Default becomes cellX (or it can be imported as is, for a multi-cell case only) * cell1 becomes mapped to openstack-cell1 osdp node set * cell2 becomes mapped to openstack-cell2 osdp node set, etc. * cellX (X=3 here) becomes mapped to openstack-cell3. Alternatively, default cell retains its name for the openstack-default osdpns mapping Evaluate podified MariaDB passwords for cells from osp-secret to align the tests with documented commands. Remove no longer needed podified DB password variable. Make ansible and shell variables compute cells aware. Split edpm nodes into compute cells by 1:1 mapping it as dataplane nodesets. Separate vars and secrets YAML values for the source and edpm nodes to not confuse its different naming schemes for cells in OSP/TripleO and RHOSO. This also allows adoption of the source tripleo nodes into different EDPM nodes with another IPs but the same FQDNs (those must remain unchanged as a strict requirement). Remove edpm_computes vars no longer used after moving stopping control-plane tripleo services into edpm-ansible Remove cached fact for pulled OSP configuration as it can no longer be generated in a multi-cell setup, where related shell variables become bash arrays. Signed-off-by: Bohdan Dobrelia <bdobreli@redhat.com>
Merge Failed. This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset. |
Keep renaming 'default' cell consistent for single and multi cells:
Alternatively, default cell retains its name for the openstack-default osdpns mapping
Evaluate podified MariaDB passwords for cells from osp-secret
to align the tests with documented commands. Remove no longer
needed podified DB password variable.
Make ansible and shell variables compute cells aware.
Split edpm nodes into compute cells by 1:1 mapping it as
dataplane nodesets.
Separate vars and secrets YAML values for the source and edpm
nodes to not confuse its different naming schemes for cells
in OSP/TripleO and RHOSO. This also allows adoption of the source
tripleo nodes into different EDPM nodes with another IPs but the
same FQDNs (those must remain unchanged as a strict requirement).
Remove edpm_computes vars no longer used after moving stopping
control-plane tripleo services into edpm-ansible
Remove cached fact for pulled OSP configuration as it can no longer
be generated in a multi-cell setup, where related shell variables
become bash arrays.
Depends-On: openstack-k8s-operators/install_yamls#826
JIRA OSPRH-6548