-
Notifications
You must be signed in to change notification settings - Fork 1.6k
📖 WIP - Proposal: Automating Operator Maintenance: Driving Better Results with Less Overhead #4302
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
base: master
Are you sure you want to change the base?
📖 WIP - Proposal: Automating Operator Maintenance: Driving Better Results with Less Overhead #4302
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: camilamacedo86 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 |
I would like to help in this one 😄 I am trying to use a similar approach in one of the projects I work on https://github.com/migtools/oadp-non-admin/blob/master/docs/CONTRIBUTING.md#upgrade-kubebuilder-version But on other project, the upgrade process does not have any guidelines, and we are very outdated on current features. This would facilitate the project being up to date with lastest kubebuilder releases |
Regards: #4302 (comment) That would be great. We also need to ensure that we have a test in place to ensure this solution |
de211ef
to
7e41838
Compare
designs/update_action.md
Outdated
|-----------------|---------------|-------------|-------| | ||
| @camilamacedo86 | 2024-11-07 | Implementable | - | | ||
|
||
# Proposal: Automating maintenance via tooling and actions |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
7e41838
to
6f4014d
Compare
Hi @camilamacedo86, I'm aware this is still a WIP, and I don't know if I'm jumping the gun here, but I'm very interested in the KubeBuilder project for GSoC 2025 and wondering if there will be an official announcement for the proposals, like the ones in #3283 and #3309 . |
Hi @vitorfloriano, That sounds great! Yes, we have added it to GSoC here: link. However, we need to wait and see if the project gets accepted first. You can check the timeline here: GSoC Timeline. Once it’s officially accepted, we can start promoting it, and interested students will be able to apply. Let me know if you have any questions! Feel free to ping in the slack |
@camilamacedo86 Thanks for the quick response! Yes, I thought it might be a little early to ask about the proposal, but I wanted to get a head start by looking at past proposals and resources. I'm currently diving into the skilling-up links from the FAQ in #3283 and doing my research on Git merge strategies. I'll let you know if I have any questions. Fingers crossed for GSoC! |
Hi everyone my name is Chethan and I'm working on a GSoC proposal to automate operator maintenance in Kubebuilder using GitHub Actions , 3-way merge and AI-driven conflict resolution. Thanks in advance! |
Hey @camilamacedo86 very well written and thorough proposal, went through it multiple times. I'm looking forward to contributing to this as a part of GSOC. |
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.
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
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.
Pull Request Overview
This PR proposes a design for automating updated Kubebuilder scaffolds via a GitHub Action that performs a three-way merge and creates a pull request summarizing the update.
- Introduces an automated workflow to update the scaffold when a new Kubebuilder version is released.
- Provides detailed steps including version reading, scaffold generation, merging, and pull request creation.
- Includes Git configuration recommendations to improve the merge process.
4e9f8f5
to
32b2d2f
Compare
Co-authored-by: Vitor Floriano <vitorfloriano@users.noreply.github.com>
32b2d2f
to
8f41e07
Compare
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.
Pull Request Overview
This PR adds a comprehensive design proposal for automating Kubebuilder project updates via a GitHub Action and local CLI tool.
- Defines a workflow to detect new Kubebuilder releases, regenerate scaffolds, perform three-way merges, and open PRs.
- Provides GitHub Actions and local CLI usage examples, open questions, risks, and non-goals.
- Details implementation steps, configuration options, and proof-of-concept links.
designs/update_action.md
Outdated
> conflict resolution through Git’s merge command. For these reasons, it seems more appropriate to use branches to ensure | ||
> flexibility and maintainability in the merging process. | ||
|
||
> Furthermore, branches allows a better resolution strategy, |
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.
Grammar: change "branches allows" to "branches allow" to match plural subject.
Copilot uses AI. Check for mistakes.
> flexibility and maintainability in the merging process. | ||
|
||
> Furthermore, branches allows a better resolution strategy, | ||
> since allows us use kubebuilder alpha generate to-rescaffold the projects |
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.
Grammar: insert "to" after "us" — "allows us to use".
Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
Pull Request Overview
This PR introduces a comprehensive design document for automating Kubebuilder scaffold updates via a GitHub Action and local CLI tool, streamlining project maintenance with three-way merges.
- Adds a proposal outlining problem statement, solution architecture, workflows, and implementation details.
- Provides example GitHub Actions and local CLI usage scenarios.
- Defines open questions, risks, and mitigation strategies for the update process.
Comments suppressed due to low confidence (1)
designs/update_action.md:4
- The creation date for the second author is missing; please provide a date or remove the column if intentional.
| @vitorfloriano | | Implementable | - |
|
||
- **Enable Git Features:** | ||
- Use `git config --global rerere.enabled true` to reuse previous conflict resolutions. | ||
- Configure custom merge drivers for specific file types (e.g., `git config --global merge.<driver>.name "Custom Merge Driver"`). |
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.
The snippet uses HTML entities for <driver>
; consider using raw angle brackets (merge.<driver>.name
) for clarity in code blocks.
Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
Pull Request Overview
This PR adds a design document proposing an automated GitHub Action for updating Kubebuilder projects with minimal manual intervention.
- Introduces a detailed proposal for automating the update process, including a three-way merge to preserve custom code.
- Provides example workflows and configuration options for handling conflicts and Git settings.
Comments suppressed due to low confidence (2)
designs/update_action.md:252
- [nitpick] The branch name 'merge' is quite generic; consider using a more descriptive name such as 'update-scaffold' to improve clarity.
git checkout merge
designs/update_action.md:225
- There is an inconsistency with the version field naming: the documentation refers to 'clientVersion' while the script extracts 'cliVersion'. Please standardize the version field naming.
CURRENT_VERSION=$(grep "cliVersion" PROJECT | awk '{print $2}' | tr -d '"')
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
/test pull-kubebuilder-e2e-k8s-1-33-0 |
Proposal: Automated Kubebuilder Project Update Action
This proposal aims to create a GitHub Action similar to Dependabot for Kubebuilder,
automating the process of regenerating scaffolds and preserving custom code when new
versions of Kubebuilder are released. This solution ensures that projects stay
updated with best practices, bug fixes, and features, ultimately improving
maintainability and adoption by reducing the complexity of manual updates.