Commit cf0bdcb
committed
Add ORC API linter to enforce API design philosophy
Add a custom golangci-lint plugin that flags OpenStack ID references in
spec structs, enforcing ORC's API design philosophy that spec fields
should only reference ORC Kubernetes objects, not OpenStack resources
directly by UUID.
The noopenstackidref linter flags fields like 'ProjectID *string' in
spec/filter structs and suggests using '*KubernetesNameRef' with a 'Ref'
suffix instead (e.g., 'ProjectRef *KubernetesNameRef').
Status structs are exempt, as they are expected to report OpenStack UUIDs.
See: https://k-orc.cloud/development/architecture/#api-design-philosophy1 parent 0ff2b62 commit cf0bdcb
30 files changed
Lines changed: 511 additions & 25 deletions
File tree
- api/v1alpha1
- cmd/resource-generator/data
- tools/orc-api-linter
- pkg/analysis/noopenstackidref
- testdata/src/a
- website/docs/development
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
318 | | - | |
319 | 318 | | |
320 | 319 | | |
321 | 320 | | |
| |||
346 | 345 | | |
347 | 346 | | |
348 | 347 | | |
349 | | - | |
350 | | - | |
| 348 | + | |
| 349 | + | |
351 | 350 | | |
352 | 351 | | |
353 | 352 | | |
| |||
357 | 356 | | |
358 | 357 | | |
359 | 358 | | |
| 359 | + | |
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments