Commit Graph

1213 Commits

Author SHA1 Message Date
Anna Song
71eb865cea Localize configMapGenerator, secretGenerator fields (#4894)
* Localize configMapGenerator, secretGenerator fields

* Improve readability

* Expose kv parseFileSource

* Add localizeGenerator to Localizer

* Improve and test ParseFileSource error messages
2022-12-02 15:31:53 -08:00
Yannis Zarkadas
a502717460 Make ordering configurable (#4019)
* api: Add new types for customizeable resource ordering

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>

* plugins: Implement SortOrderTransformer plugin

Implement the SortOrderTransformer plugin. This plugin allows the user
to customize the order that kustomize will output resources in.

The API for the plugin is the following:

sortOptions:
  order: legacy | fifo
  legacySortOptions:
    orderFirst:
    - {GVK}
    orderLast:
    - {GVK}

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>

* plugins: Add boilerplate and generate code for new SortOrderTransformer

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>

* build: Add option to denote if the reorder flag was set by the user

We want to take different actions if the reorder flag was set by the
user or filled by the default value. Thus, we propagate this information
from build to the krusty options.

Signed-off-by: Yannis Zarkadas <yanniszark@gmail.com>

* api/krusty: Ensure sort ordering works with CLI flag and kustomization

Sort order can be defined in two places:
- (new) kustomization file
- (old) CLI flag
We want the kustomization file to take precedence over the CLI flag.

Eventually, we may want to move away from having a CLI flag altogether:
https://github.com/kubernetes-sigs/kustomize/issues/3947

Case 1: Sort order set in kustomization file AND in CLI flag.
Print a warning and let the kustomization file take precedence.

Case 2: Sort order set in CLI flag only or not at all.
Follow the CLI flag (defaults to legacy) and reorder at the end.

Case 3: Sort order set in kustomization file only.
Simply build the kustomization.

Signed-off-by: Yannis Zarkadas <yanniszark@gmail.com>

* krusty: Add e2e test for SortOrderTransformer

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>

* plugins: Purge LegacyOrderTransformer

Signed-off-by: Yannis Zarkadas <yanniszark@gmail.com>

* Update go.work.sum

Signed-off-by: Yannis Zarkadas <yanniszark@gmail.com>

* review: Make review changes

Signed-off-by: Yannis Zarkadas <yanniszark@gmail.com>

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
Signed-off-by: Yannis Zarkadas <yanniszark@gmail.com>
2022-12-02 13:59:53 -08:00
Kishore Jagannath
1e2e7bbc0b Refactor 7 return values in parseGitUrl to RepoSpec(issue 4866, Task1) (#4900)
* initial commit to refactor 7 return values in parseGitUrl to RepoSpec

* fix review comments
2022-12-02 10:01:53 -08:00
Anna Song
e34d5b5608 Localize components (#4867) 2022-12-02 09:33:53 -08:00
Kubernetes Prow Robot
0f4f978956 Merge pull request #4895 from KnVerey/remove-local-last
Remove local-only resources at the last minute
2022-12-01 13:20:00 -08:00
Kubernetes Prow Robot
3c8db55f53 Merge pull request #4901 from annasong20/clean-localizer
Clean `localizer`
2022-12-01 11:21:54 -08:00
Anna Song
b8611cf0a9 Refactor localizer code
* encapsulate kusttarget params
* change dst to string
* ConfirmDir
2022-12-01 09:53:46 -08:00
Kubernetes Prow Robot
baf777c56e Merge pull request #4893 from KnVerey/pluginator-linter-bug
Fix pluginator incompatibility with nolint lines
2022-11-30 08:32:55 -08:00
Katrina Verey
a612cd2b7e Fix pluginator incompatibility with nolint lines 2022-11-30 11:22:10 -05:00
Katrina Verey
fb0f567b63 Remove local-only resources at the last minute
This allows name references to them to be correctly resolved
2022-11-29 19:05:16 -05:00
Kubernetes Prow Robot
f53d018302 Merge pull request #4885 from annasong20/contain-ldr-path
Contain `RepoSpec` path in repo
2022-11-29 14:35:08 -08:00
Kubernetes Prow Robot
d9d9785791 Merge pull request #4890 from brianpursley/kustomize-4628
merge2: preserve explicitly set null values
2022-11-29 12:35:08 -08:00
Anna Song
832b552076 Load built-in plugins for kustomize localize (#4869)
* Load and filter built-in plugins

* Improve readability

* Process plugins as resources instead of bytes

* Throw error for validators

* Differentiate generators, transformers processing

* Enable validators

* add wrapper error
* improve documentation
2022-11-28 13:23:42 -08:00
Anna Song
0eff094faf Calculate localized path for remote file (#4878)
* Calculate localized path for remote file

* Add documentation
2022-11-28 09:36:06 -08:00
Brian Pursley
1b7db20504 merge2: preserve explicitly set null values
Fixed bug where an explicitly set null value in yaml was
cleared, even when the patch did not operate on that field.
2022-11-26 16:33:14 -05:00
Anna Song
07063a2652 Prevent repoSpec path from exiting repo 2022-11-23 14:29:22 -08:00
Katrina Verey
91a2c2b1a4 Update to Go 1.19 2022-11-17 12:57:17 -05:00
Anna Song
314b8fbefa Implement localizeFile() skeleton for patches (#4865)
* Implement localizeFile()

* Fix lint

* Address code review feedback

* Remove unnecessary String(), Error() with string formatters
* Remove processing of un-implemented methods
* Improve readability

* Remove unimplemented addLocalizeDir, hitsLocalizeDir

* Improve documentation

* Remove deprecated patchesJson6902 logic
2022-11-16 10:24:48 -08:00
Anna Song
f79e16b352 Improve localizer readability (#4860)
* Replace '%s' with %q

* Change ambiguous cli-"Arg" suffix in func arg names

* Remove repetitive "loc" in names

* Apply readability changes to localizer

* Fix comment
2022-11-16 08:42:49 -08:00
Kubernetes Prow Robot
b20e611413 Merge pull request #4723 from koba1t/emit_a_warning_when_deprecated_fields_are_used
Emit a warning on build when deprecated fields are used
2022-11-16 08:32:50 -08:00
Kubernetes Prow Robot
e638e408b0 Merge pull request #4802 from oscr/the-the
grammar: replace all occurrences of "the the" with "the"
2022-11-16 08:22:48 -08:00
Anna Song
84bd402cc0 Fix RepoSpec query extraction (#4863)
* Clean query processing

* Improve readability

* Remove redundant code
* Add comment

* Return path literal when not parsable

* Handle url.Parse() error in future
2022-11-14 09:38:41 -08:00
Anna Song
50e731a1d9 Implement localizer skeleton for kustomize localize (#4859)
* Add localizer outline

* Add localizer unit tests

* include previous change

* Add proper NewLocalizer, Localize unit tests

mock processKust

* Address code review feedback

* Make processKustFn public

* Remove mock testing
2022-11-10 09:24:54 -08:00
Anna Song
beb2825f82 Improve readability of ifc.Loader's Repo() method (#4857)
* Improve ldr Repo() method readability

* Change Repo() implementations and calls

* Improve readability of conditions in ldr.New()

* Fix details
2022-11-08 14:48:14 -08:00
Anna Song
6d9b54004e Address TODO in PR #4652 (#4856)
* Address TODO in PR #4652

* Improve readability
2022-11-08 13:51:01 -08:00
yugo kobayashi
3e6ede9645 fix_failed_lint_on_master 2022-11-04 07:12:46 +00:00
sun min
f9d553689e update dependencies of libs using go workspace mode 2022-11-02 13:44:23 +08:00
Natasha Sarkar
997e6fcc63 fix TestRemoteLoad_LocalProtocol (#4844)
* remote load test fix

* fix spacing
2022-10-31 10:58:44 -07:00
Ahmed AbouZaid
3e447da6ef proposal v2.1 2022-10-22 03:16:41 +02:00
Ahmed AbouZaid
ea21b37d67 proposal v2 2022-10-22 03:16:41 +02:00
Ahmed AbouZaid
d29febecb7 Fix krm exec function working dir 2022-10-22 03:16:41 +02:00
Ahmed AbouZaid
1b1e6ccab0 Test transformers krm exec function 2022-10-22 03:16:41 +02:00
Kubernetes Prow Robot
7ee6dd551d Merge pull request #4733 from koba1t/feat/add_edit-fix_for_patchesStrategicMerge_to_patches
add `edit fix` for patchesStrategicMerge to patches
2022-10-21 14:57:57 -07:00
Kubernetes Prow Robot
bf7a0f9004 Merge pull request #4805 from aibarbetta/fix-4717
[address #4717] Re-do create template/metadata when using includeTemplates if not present
2022-10-11 09:23:02 -07:00
Kubernetes Prow Robot
0a16b6cf40 Merge pull request #4808 from larsks/feature/no-hooks
Add support for helm --no-hooks flag
2022-10-10 11:51:22 -07:00
Agustina Barbetta
7b84613ad1 Use fewer labels to ease reading 2022-10-08 20:38:44 -03:00
Agustina Barbetta
d14dfb604c Use WrapPrefixf 2022-10-08 20:37:24 -03:00
Agustina Barbetta
acba8fff62 Update api/krusty/inlinelabels_test.go
Co-authored-by: Katrina Verey <kn.verey@gmail.com>
2022-10-08 20:18:57 -03:00
Lars Kellogg-Stedman
38da7ca15c Add support for helm --no-hooks flag
This commit adds the `skipHooks` option to the helm chart support in order
to  expose the --no-hooks flag introduced to Helm in [1].

Using Kustomize to inflate a Helm chart would in some situations result in
different results than using `helm install`. This is because `helm
template`, by default, will render chart tests in the `templates/test`
directory, which can lead to undesired resources in the output.

See [2] for additional discussion.

[1]: https://github.com/helm/helm/pull/6444
[2]: https://github.com/helm/helm/issues/6443

Signed-off-by: Lars Kellogg-Stedman <lars@oddbit.com>
2022-10-07 17:14:06 -04:00
Kubernetes Prow Robot
9ef7ba9c95 Merge pull request #4663 from johnmanjiro13/handle-error-of-remove-annotation
fix: handle error of remove annotations
2022-10-07 08:19:53 -07:00
johnmanjiro13
4e7f4bce7b feat: Wrap error 2022-10-07 18:14:59 +09:00
Ed Overton
d37fabf876 convert PrevIds to use apiVersion instead meta
Since PrevIds uses only the apiVersion information from the metadata,
change the retrieval from the full meta to just the apiVersion.
2022-09-27 14:03:59 -04:00
Agustina Barbetta
eb1529b516 use %w to format errors 2022-09-25 09:19:31 -03:00
Agustina Barbetta
c750c0089d use fmt instead of errors 2022-09-25 09:07:47 -03:00
Agustina Barbetta
2b9ef61f88 error wraps for linter 2022-09-23 18:30:00 -03:00
Agustina Barbetta
344b257c1f add tests for other kinds 2022-09-23 15:54:25 -03:00
Agustina Barbetta
e2196d9bd1 separate template specific field specs and use in includeTemplates 2022-09-23 15:11:59 -03:00
yugo kobayashi
401cf9579c update golangci-lint v1.49.0 2022-09-22 13:24:40 +00:00
Agustina Barbetta
4dcc040ec1 create template/metadata in includeTemplates if not present 2022-09-20 13:33:07 -03:00
Agustina Barbetta
662ccf1915 add test for resources with no template 2022-09-20 13:29:38 -03:00