You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit adds the --force flag to the alpha update command.
It also adds documentation for the flag.
The --force flag makes it possible to run the alpha update command in CI workflows.
Copy file name to clipboardExpand all lines: docs/book/src/reference/commands/alpha_update.md
+54-3Lines changed: 54 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -61,6 +61,12 @@ kubebuilder alpha update \
61
61
--from-branch=main
62
62
```
63
63
64
+
Force update even with merge conflicts:
65
+
66
+
```sh
67
+
kubebuilder alpha update --force
68
+
```
69
+
64
70
<asideclass="note warning">
65
71
<h1>You might need to upgrade your project first</h1>
66
72
@@ -81,17 +87,62 @@ Once updated, you can use `kubebuilder alpha update` for future upgrades.
81
87
|`--from-version`|**Required for projects initialized with versions earlier than v4.6.0.** Kubebuilder version your project was created with. If unset, uses the `PROJECT` file. |
82
88
|`--to-version`| Version to upgrade to. Defaults to the latest version. |
83
89
|`--from-branch`| Git branch that contains your current project code. Defaults to `main`. |
90
+
|`--force`| Force the update even if conflicts occur. Conflicted files will include conflict markers, and a commit will be created automatically. Ideal for automation (e.g., cronjobs, CI). |
84
91
|`-h, --help`| Show help for this command. |
85
-
86
92
<asideclass="note warning">
87
-
<h1>Projects generated with </h1>
88
-
89
93
Projects generated with **Kubebuilder v4.6.0** or later include the `cliVersion` field in the `PROJECT` file.
90
94
This field is used by `kubebuilder alpha update` to determine the correct CLI
91
95
version for upgrading your project.
96
+
</aside>
97
+
98
+
## Merge Conflicts with `--force`
99
+
100
+
When you use the `--force` flag with `kubebuilder alpha update`, Git will complete the merge even if there are conflicts. The resulting commit will include conflict markers like:
101
+
```
102
+
<<<<<<< HEAD
103
+
Your changes
104
+
=======
105
+
Incoming changes
106
+
>>>>>>> branch-name
107
+
```
108
+
These conflicts will be committed in the
109
+
`tmp-kb-update-merge` branch.
92
110
111
+
<asideclass="note warning">
112
+
You must manually resolve these conflicts before merging into your main branch.
113
+
114
+
### Required Steps If Conflicts Are Present
115
+
116
+
If the merge introduces conflicts, follow these steps before committing any final changes:
117
+
1. Resolve Conflicts;
118
+
2. Open the conflicted files and manually edit them to resolve all merge markers;
119
+
3. Run Required Make Targets;
120
+
4. After resolving, run the following command to regenerate, format, vet, and lint the code:
121
+
```
122
+
make manifests generate fmt vet lint-fix
123
+
```
124
+
125
+
### Optional (but Recommended)
126
+
127
+
1. Run the full validation suite to ensure your project remains consistent and working:
128
+
```
129
+
make all
130
+
```
131
+
2. Create Pull Request
132
+
After validation, commit your changes and push a pull request from `tmp-kb-update-merge` to your target branch.
93
133
</aside>
94
134
135
+
## When to Use `--force`
136
+
Use `--force` only in scenarios like:
137
+
- Automated environments (e.g., CI pipelines or cron jobs)
138
+
- When you need to create a PR even if conflicts are present
139
+
- When a human will resolve the conflicts later
140
+
`kubebuilder alpha update --force`
141
+
142
+
This ensures the update proceeds without manual blocking but shifts responsibility for conflict resolution to a follow-up manual step.
143
+
144
+
This approach is typically used in automation workflows where conflict markers are later addressed by a human, or where preserving the conflicting changes is acceptable for follow-up processing.
145
+
95
146
## Requirements
96
147
97
148
- A valid [PROJECT][project-config] file at the root of your project
0 commit comments