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

Add nova 3 cell DT #401

Conversation

jamepark4
Copy link
Contributor

@jamepark4 jamepark4 commented Sep 17, 2024

Standard deployments currently deploy cell0 and cell1. Create a DT that deploys cell0, cell1, and cell2.

Depends-On: openstack-k8s-operators/ci-framework#2423

Copy link

openshift-ci bot commented Sep 17, 2024

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@jamepark4 jamepark4 force-pushed the add_multicell_dt branch 9 times, most recently from 364ebe9 to 38d7c4b Compare September 24, 2024 18:34
@jamepark4 jamepark4 force-pushed the add_multicell_dt branch 6 times, most recently from 19005c6 to 0f33d8c Compare October 2, 2024 13:44
config.kubernetes.io/local-config: "true"

data:
ssh_keys:
Copy link
Contributor

Choose a reason for hiding this comment

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

I am not a fan of hacing ssh_keys set in two values files in this PR. The nodeset in the library will create the same secret dataplane-ansible-ssh-private-key-secret for both nodesets. If a user looks at this they may be led to believe they can use different keys for the (I assume pre-provisioned nodes?) when using this DT - but that will not work since applying the second nodeset will modify the same secret instead of creating a new one.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ack I can removed these.

Copy link
Contributor

Choose a reason for hiding this comment

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

I am not sure you can remove them, if you cannot - then this change should not be blocked by this comment from me.

I was trying to point out an issue with the library not supporting multiple nodesets in a good way. Essentilly you have two nodesets referencing lib/dataplane/nodeset/kustomization.yaml#L6-L8 - so you end up applying two separate files defining the same secret resource.

@hjensas hjensas mentioned this pull request Oct 8, 2024
@jamepark4 jamepark4 force-pushed the add_multicell_dt branch 5 times, most recently from 5bcd2c7 to 4e22901 Compare October 11, 2024 13:24
@jamepark4 jamepark4 marked this pull request as ready for review November 12, 2024 20:24
@jamepark4
Copy link
Contributor Author

recheck

@jamepark4
Copy link
Contributor Author

@abays CI errors have been addressed, do you mind looking this over and providing any input/reviews if you have the bandwidth?

@jamepark4 jamepark4 requested a review from gibizer December 2, 2024 14:29
@jamepark4 jamepark4 added ready-review Request is ready to be reviewed and removed do-not-merge/work-in-progress labels Dec 9, 2024
@jamepark4 jamepark4 force-pushed the add_multicell_dt branch 4 times, most recently from 2e36514 to 2005568 Compare December 9, 2024 19:41
Copy link
Contributor

@gibizer gibizer left a comment

Choose a reason for hiding this comment

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

I still have couple of questions / comments.

examples/dt/nova/nova-three-cells/README.md Outdated Show resolved Hide resolved
examples/dt/nova/nova-three-cells/README.md Outdated Show resolved Hide resolved
value: openstack-edpm-2
- op: replace
path: /spec/services/13
value: nova-cell-2
Copy link
Contributor

Choose a reason for hiding this comment

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

This patching feels strange to me. We take default NodeSet and duplicate it for cell2 and patch it to connect the computes in it to cell2. But we
i) don't define the computes of NodeSet/openstack-edpm-2 here,
ii) we have a complete NodeSet parameter definition with the specific compute in nodeset2/values.yaml

So basically we have two ways to pass values to NodeSet/openstack-edpm2:

  • here with the kustomize patch
  • via nodeset2/values.yaml that is applied by another kustomize patch I assume.

This make it hard to follow what parameter comes from where. I don't want to block on this but I feel this needs to be refactored if possible to provide parameters to the NodeSet from a single source to help maintaining the kustomization. Is it something that can be done in a follow up?

@abays how do you feel about this issue? Do you agree that this is a problem? If so do you think it can be refactored to a single source? Is it something new in the proposed DT or is it widespread across the DTs?

Copy link
Contributor

Choose a reason for hiding this comment

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

I feel this needs to be refactored if possible to provide parameters to the NodeSet from a single source to help maintaining the kustomization.

So what I think might happen when using this in CIFMW is the same problem that was encountered in this PR [1]. Since ultimately the lib dataplane nodeset is used [2] by both nodesets, they will collide with each other when CIFMW's kustomize_deploy role generates all of the YAMLs ahead time. But maybe you somehow found a way around the problem. I'll be curious to see the test results for this. Since this doesn't change any existing, underlying lib, va, or dt content, I'm good with merging it for now.

[1] #378
[2] https://github.com/jamepark4/architecture/blob/191d2bfabdc1355f5ddce7bf47a264fa46c12b45/dt/nova/nova-three-cells/edpm/nodeset/kustomization.yaml#L20

Copy link
Contributor Author

@jamepark4 jamepark4 Dec 16, 2024

Choose a reason for hiding this comment

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

Using CIFMW downstream I'm not seeing any collisions since the automation/vars uses two different values: edpm-nodeset-values and edpm-nodeset2-values. With nodeset2's name being updated by [1]. kustomize_deploy ends up generating two yaml definitions, nodeset.yaml and nodeset2.yaml. The different yamls are very similar but the Nodeset names allows them to be applied without any issues.

[1] https://github.com/openstack-k8s-operators/architecture/pull/401/files#diff-20af9459981c1a0588160942c3490649f5cf4fd222526cea08c3244208fb48ecR13

Copy link
Contributor

Choose a reason for hiding this comment

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

That's great news. @mnietoji maybe you can review how two nodesets were used here and apply the same design to fix your PR (if you haven't already figured it out on your own)?

@jamepark4 jamepark4 force-pushed the add_multicell_dt branch 2 times, most recently from cfc1af1 to 556a603 Compare December 10, 2024 18:11
@jamepark4 jamepark4 removed the ready-review Request is ready to be reviewed label Dec 10, 2024
Standard deployments currently deploy cell0 and cell1. Create a DT that deploys cell0, cell1, and cell2.
Copy link
Contributor

@gibizer gibizer left a comment

Choose a reason for hiding this comment

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

@openshift-ci openshift-ci bot added the lgtm label Dec 12, 2024
@bogdando
Copy link

lgtm

@fultonj
Copy link
Contributor

fultonj commented Dec 16, 2024

I have no objections to this PR if @abays wants to merge it.

Copy link
Contributor

@abays abays left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

Copy link

openshift-ci bot commented Dec 16, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: abays, gibizer, jamepark4

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Contributor

@softwarefactory-project-zuul softwarefactory-project-zuul bot merged commit b945fba into openstack-k8s-operators:main Dec 16, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants