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

Report breaking changes in CRD schemas for Pull Requests #2863

Closed
muvaf opened this issue Jan 27, 2022 · 10 comments
Closed

Report breaking changes in CRD schemas for Pull Requests #2863

muvaf opened this issue Jan 27, 2022 · 10 comments
Assignees

Comments

@muvaf
Copy link
Member

muvaf commented Jan 27, 2022

What problem are you facing?

As Crossplane ecosystem expands, it's not unusual anymore to have 100s of CustomResourceDefinitions in a provider. A big part of this is thanks to code generation tooling we've been building. However, the changes we make with those tools may result in thousands of lines of changes and it's hard to tell whether there is a breaking change in given CustomResourceDefinition in those PRs. Today, we're checking manually to see if there is a breaking change and mark the PR as such so that the notice ends up in the release notes.

How could Crossplane help solve your problem?

We can have a GH Action that processes diff in package/crds folder and report breaking changes in the OpenAPI v3 Schemas of CRDs. It'd comment on the PR and automatically label it with breaking-change. This tool would be useful for the whole Kubernetes community that works to extend Kubernetes with CustomResourceDefinitions.

@muvaf muvaf added the enhancement New feature or request label Jan 27, 2022
@muvaf muvaf added good first issue Good for newcomers good mentorship issue and removed good first issue Good for newcomers labels Mar 11, 2022
@muvaf muvaf changed the title GH Action to scan report breaking changes in CRD schemas Tool to scan and report breaking changes in CRD schemas for Pull Requests Mar 11, 2022
@muvaf muvaf changed the title Tool to scan and report breaking changes in CRD schemas for Pull Requests Scan breaking changes in CRD schemas for Pull Requests May 6, 2022
@muvaf muvaf changed the title Scan breaking changes in CRD schemas for Pull Requests Report breaking changes in CRD schemas for Pull Requests May 6, 2022
@AvineshTripathi
Copy link

Hello, @muvaf I learned about this issue through the lfx mentorship programme and find it fascinating, though I'm having trouble understanding a few terminologies in the description (I'm new to this project, so...) Would you mind sharing some additional resources that can help me clarify my concepts on what providers are, what changes are considered as breaking changes, the tools, and the workflow?

@muvaf
Copy link
Member Author

muvaf commented May 11, 2022

Hi @AvineshTripathi !

Thank you for your interest. I can definitely give some pointers but please do not start any design/work for this issue before being accepted for the project through LFX Mentorship program. This issue is reserved for that program and we would like to give a fair chance to everyone applying 🙂

Some concept overviews:

@AvineshTripathi
Copy link

Hey @muvaf I have applied for the LFX mentorship and have submitted the cover letter and resume, I just wanted to confirm if you have recieved properly as in my task board I see 2 resume and 2 cover letter task.

Also thank you for the pointers, after taking an overview I am really excited to learn all these concepts and use it to build the tool

@muvaf
Copy link
Member Author

muvaf commented May 17, 2022

@AvineshTripathi I see two cover letters and two resumes submitted but they seem to be just duplicates. So, you're all fine 🙂 For queries related to the program specifically, like this one, you can contact the folks at LFX as they'd be more helpful knowledgeable about the program than me 🙂

@Ruhika1417
Copy link

Hello @muvaf! I'm interested in contributing to this Project. It matches my tech stack. I'm also, going through the resources you've suggested to Avinesh. I'll be submitting the prerequisite tasks on the LFX site by tomorrow. Thanks :)

@shreemaan-abhishek
Copy link

Hey @muvaf, I'm interested in working on this LFX project. I would love it if you could help me resolve a few doubts:

A big part of this is thanks to code generation tooling we've been building.

Are you talking about CRD generators that reflect changes made to golang code for YAML structs?

After reading the issue I think what we are aiming for is a GitHub bot that would act like a YAML parser and perhaps apply those manifests using automation with kubectl and report breaking changes? Is there a proposal doc/design doc written for this feature? Even relevant link discussions on Slack/Community meetings would help. Thanks.

@shreemaan-abhishek
Copy link

shreemaan-abhishek commented May 22, 2022

The "reporting breaking changes" part is very interesting, I'm trying to figure out on what basis can we conclude that a certain change in CRD would mean a breaking change. 😊 Very interesting project overall.

@github-actions
Copy link

github-actions bot commented Sep 4, 2022

Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale because it has had no activity in the last 90 days. It will be closed in 7 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

@github-actions github-actions bot added the stale label Sep 4, 2022
@muvaf
Copy link
Member Author

muvaf commented Sep 4, 2022

/fresh

crossplane/crossplane-tools#45 to check breaking changes has been merged but we'll need follow-up PRs to integrate it with providers.

@github-actions github-actions bot removed the stale label Sep 4, 2022
@github-actions
Copy link

github-actions bot commented Dec 4, 2022

Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale because it has had no activity in the last 90 days. It will be closed in 7 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

4 participants