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

chore: update node plugin image name and its refs #131

Merged
merged 12 commits into from
Aug 15, 2024

Conversation

mugdha-adhav
Copy link
Collaborator

@mugdha-adhav mugdha-adhav commented Jan 22, 2024

Related to #105.

Updating the node plugin image name from csi-plugin to container-image-csi-driver.

This change also updates the storageClass and CSIDriver name to container-image.warm-metal.tech from csi-image.warm-metal.tech.

@mugdha-adhav mugdha-adhav requested a review from a team as a code owner January 22, 2024 15:33
@mugdha-adhav mugdha-adhav self-assigned this Jan 22, 2024
Copy link
Contributor

@mbtamuli mbtamuli left a comment

Choose a reason for hiding this comment

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

There seems to be some inconsistencies.

cmd/install/main.go Outdated Show resolved Hide resolved
test/sanity/manifest.yaml Outdated Show resolved Hide resolved
test/sanity/manifest.yaml Outdated Show resolved Hide resolved
@@ -248,7 +248,7 @@ func (s snapshotMounter) ListSnapshots(ctx context.Context) (ss []backend.Snapsh
}

const (
labelPrefix = "csi-image.warm-metal.tech"
labelPrefix = "container-image.warm-metal.tech"
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
labelPrefix = "container-image.warm-metal.tech"
labelPrefix = "container-image-csi-driver.warm-metal.tech"

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I intentionally kept it container-image to be consistent with CSIDriver name.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, by inconsistency, I meant the whole CSIDriver name itself, anywhere.

Copy link
Contributor

Choose a reason for hiding this comment

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

Works if you want to keep the CSIDriver name container-image.warm-metal.tech

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Based on the CSI developer docs, the CSI driver name is suggested to be of the format mycsidriver.example.com, in our case the driver name could be container-image and csi-driver is a suffix we keep to determine the type of resource/image.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

For now going ahead with container-image.csi.k8s.io, check this comment for reference.

@mbtamuli
Copy link
Contributor

@mugdha-adhav only the backwards compatibility build is stuck. That's because we're depending on a tag.

Here are the steps that I backtracked and found the issues

@mugdha-adhav
Copy link
Collaborator Author

The backwards compatibility test is stuck, I think the reason is because we are trying to install the older version v0.4.2 of CSI driver, and in that version the CSI driver is named csi-image, and the test workloads are trying to reference it.

@mugdha-adhav
Copy link
Collaborator Author

I think there's no way to work around the backwards compatibility test. We could do one of the following -

  1. Don't change the name of CSI driver.
  2. Accept this is a breaking change and update the RELEASE notes accordingly.

In the follow up PR we also want to update the helm chart name, which would need re-deployment of the chart.

@mbtamuli
Copy link
Contributor

mbtamuli commented Jan 22, 2024

I think we should let go of the backwards compatibility test in its current form.

@mugdha-adhav
Copy link
Collaborator Author

I think there's no way to work around the backwards compatibility test. We could do one of the following -

  1. Don't change the name of CSI driver.
  2. Accept this is a breaking change and update the RELEASE notes accordingly.

In the follow up PR we also want to update the helm chart name, which would need re-deployment of the chart.

On a second thought, if we change the CSI driver name, then all the workloads using this driver would need to change their manifests. That would cause significant inconvenience to all our users, especially if it's being used in production.

@kitt1987 @vadasambar @MaxFedotov any suggestions on whether we should change the CSI driver and helm chart name?

@mugdha-adhav mugdha-adhav added the awaiting-inputs Further information is requested label Jan 22, 2024
@kfox1111
Copy link

Maybe ensure the chart can be installed twice? Once with the old name configured, and once with the new name configured. This allows users to slowly migrate workloads rather then have one big flag day.

@mbtamuli
Copy link
Contributor

Users could continue using the plugin using the existing name.

Once you release the new driver with the new name, and people install the new chart, they'd see a new Driver, which then could be used in PVs, PVCs, or storageClasses.

@mugdha-adhav
Copy link
Collaborator Author

Maybe ensure the chart can be installed twice? Once with the old name configured, and once with the new name configured. This allows users to slowly migrate workloads rather then have one big flag day.

Yeah, that makes sense. And as for testing dual installation of the driver, I can make a few changes in our backwards compatibility test to verify that.

@mbtamuli
Copy link
Contributor

And as for testing dual installation of the driver, I can make a few changes in our backwards compatibility test to verify that.

I think you can manually verify once that the driver with different names can be installed side by side.

The drivers being installed side by side isn't a continual process and would be one time effort.

@mugdha-adhav
Copy link
Collaborator Author

I have been thinking about what's a good name for our CSI driver, I think we should go ahead with container-image.csi.k8s.io. That's how CSI drivers maintained under sig storage are named, and eventually we would also like to pitch our driver under k8s sigs.

@mugdha-adhav
Copy link
Collaborator Author

And as for testing dual installation of the driver, I can make a few changes in our backwards compatibility test to verify that.

I think you can manually verify once that the driver with different names can be installed side by side.

The drivers being installed side by side isn't a continual process and would be one time effort.

The current backwards-compatibility tests are failing anyways, we would need to make some changes/fixes to be able to keep them running. I will finish up the fix and request your review once I have my suggested solution working.

@mbtamuli
Copy link
Contributor

mbtamuli commented Jan 23, 2024

The current backwards-compatibility tests are failing anyways, we would need to make some changes/fixes to be able to keep them running.

They are failing for a particular reason and that is the name change and they can be fixed in a simple manner:

  • create a branch from the v0.4.2 tag.
  • update the driver name.
  • create a tag v0.4.2-patch.1 or something like that.
  • Use that in this PR to fix the tests.

If the requirement is to fix them well, I think it would be prudent to create a new issue. Otherwise the scope gets blown out of proportion.


I would suggest updating the parent issue to reflect the scope of work.

  • Add new tests to accommodate the scenario where two side-by-side installations of the driver are running.
  • Update the CSI driver name to be reflective of future state.

@mugdha-adhav
Copy link
Collaborator Author

Tested the changes by deploying older and newer version of the CSI driver simultaneously. Both the drivers were functional and able to handle the older and newer workloads.

Like @mbtamuli mentioned in this comment, if we want to support this test, then we should create a separate issue for it. Hence I am reverting back the changes I made for dual deployment of drivers and disabling backwards-compatibility test.

@mbtamuli
Copy link
Contributor

mbtamuli commented Feb 3, 2024

@mugdha-adhav Do you plan to block this PR until you receive inputs, indefinitely? Or are you going to go ahead after some date?

@mugdha-adhav mugdha-adhav force-pushed the chore/fix-plugin-image branch from 9c96027 to 91b1a91 Compare August 15, 2024 07:52
@mugdha-adhav mugdha-adhav merged commit 4c1e524 into warm-metal:main Aug 15, 2024
7 checks passed
@mugdha-adhav mugdha-adhav deleted the chore/fix-plugin-image branch August 15, 2024 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting-inputs Further information is requested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants