Peter Jiang
38f73a75c3
fix: update normalization for ignoreDifferences on server-side diff ( #747 )
...
* WIP fix: update normalization for ignoreDifferences on server-side diff
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* fix linter
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* refactor
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* skip pre-normalization for ssd
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* skip pre-normalization for ssd
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* docs
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* modify Normalize to skip ignoreDifferences conditionally
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* ignoreDifferences for SSD and test backwards compatible
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* rename flags for clarity
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* doc change
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
---------
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
2025-07-24 09:53:28 -04:00
Michael Crenshaw
cebed7e704
chore: wrap errors ( #732 )
...
* chore: wrap errors
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* report list result along with error
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* fixes
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
---------
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2025-06-06 10:49:09 -04:00
Peter Jiang
89c110b595
fix: Server-Side diff removed fields missing in diff ( #722 )
...
* fix: Server-Side diff removed fields missing in diff
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* add unit test to cover deleted field
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
---------
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
2025-05-20 14:24:09 -04:00
Michael Crenshaw
90b69e9ae5
chore(deps): bump golangci-lint ( #719 )
...
* chore(deps): bump golangci-lint
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* fix lint
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* fix tests
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
---------
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2025-05-14 17:14:57 -04:00
Peter Jiang
4fd18478f5
fix: Server-side diff shows incorrect diffs for list related changes ( #688 )
...
* fix: Server-side diff shows incorrect diffs for list related changes
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* Update docs for removeWebHookMutation
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* Update docs
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
* Update docs
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
---------
Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
2025-02-27 16:20:03 -05:00
Matthieu MOREL
04266647b1
chore: enable require-error from testifylint ( #681 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-07 15:01:48 -05:00
Matthieu MOREL
c323d36706
chore: enable dot-imports, duplicated-imports from revive ( #678 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-07 13:10:59 -05:00
Matthieu MOREL
f5aa9e4d10
chore: enable perfsprint linter ( #676 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-07 12:44:40 -05:00
Matthieu MOREL
367311bd6f
chore: enable thelper linter ( #675 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-07 12:43:51 -05:00
Matthieu MOREL
00472077d3
chore: enable goimports linter ( #669 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-07 11:06:31 -05:00
Matthieu MOREL
ccee58366a
chore: enable unused-parameter and var-declaration from revive ( #668 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-07 09:55:39 -05:00
Matthieu MOREL
7ac688a30f
chore: enable use-any from revive ( #667 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-06 18:20:29 -05:00
Matthieu MOREL
f948991e78
chore: enable gofumpt, gosimple and whitespace linters ( #666 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-06 17:07:19 -05:00
Matthieu MOREL
382663864e
chore: enable testifylint linter ( #657 )
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-06 10:27:22 -05:00
Siddhesh Ghadi
7e21b91e9d
Merge commit from fork
...
map[] in error output exposes secret data in last-applied-annotation
& patch error
Invalid secrets with stringData exposes the secret values in diff. Attempt a
normalization to prevent it.
Refactor stringData to data conversion to eliminate code duplication
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
2025-01-29 10:51:13 -05:00
Andrii Korotkov
8849c3f30c
fix: Server side diff now works correctly with fields removal ( #640 )
...
* fix: Server side diff now works correctly with some fields removal
Helps with https://github.com/argoproj/argo-cd/issues/20792
Removed and modified sets may only contain the fields that changed, not including key fields like "name". This can cause merge to fail, since it expects those fields to be present if they are present in the predicted live.
Fortunately, we can inspect the set and derive the key fields necessary. Then they can be added to the set and used during a merge.
Also, have a new test which fails before the fix, but passes now.
Failure of the new test before the fix
```
Error: Received unexpected error:
error removing non config mutations for resource Deployment/nginx-deployment: error reverting webhook removed fields in predicted live resource: .spec.template.spec.containers: element 0: associative list with keys has an element that omits key field "name" (and doesn't have default value)
Test: TestServerSideDiff/will_test_removing_some_field_with_undoing_changes_done_by_webhook
```
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Use new version of structured merge diff with a new option
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Add DCO
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Try to fix sonar exclusions config
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
---------
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
2024-12-11 15:28:47 -05:00
Siddhesh Ghadi
9ab0b2ecae
feat: Add ability to hide certain annotations on secret resources ( #577 )
...
* Add option to hide annotations on secrets
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
* Handle err
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
* Move hide logic to a generic func
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
* Remove test code
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
* Address review comments
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
* Handle lastAppliedConfig special case
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
* Fix if logic and remove comments
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
---------
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
2024-10-29 12:29:52 +02:00
Michael Crenshaw
72bcdda3f0
chore: avoid unnecessary json marshal ( #626 )
...
* chore: avoid unnecessary json marshal
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* more tests
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* refactor test to satisfy sonarcloud
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
---------
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2024-09-17 13:19:20 -04:00
sivchari
86a368824c
chore: Bump Kubernetes clients to 1.29.2 ( #566 )
...
* update k8s libs
Signed-off-by: sivchari <shibuuuu5@gmail.com>
* fix: golangci-lint
Signed-off-by: sivchari <shibuuuu5@gmail.com>
* fix nil map
Signed-off-by: sivchari <shibuuuu5@gmail.com>
* add deletion field
Signed-off-by: sivchari <shibuuuu5@gmail.com>
---------
Signed-off-by: sivchari <shibuuuu5@gmail.com>
2024-05-07 16:25:58 -04:00
Leonardo Luz Almeida
aba38192fb
feat: Implement Server-Side Diffs ( #522 )
...
* feat: Implement Server-Side Diffs
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* trigger build
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* chore: remove unused function
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* make HasAnnotationOption more generic
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* add server-side-diff printer option
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* remove managedFields during server-side-diff
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* add ignore mutation webhook logic
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix configSet
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Fix comparison
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* merge typedconfig in typedpredictedlive
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* handle webhook diff conflicts
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Fix webhook normalization logic
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* address review comments 1/2
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* address review comments 2/2
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix lint
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* remove kubectl getter from cluster-cache
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix query param verifier instantiation
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* Add server-side-diff unit tests
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
---------
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2023-12-18 14:45:13 -05:00
fsl
b58645a27c
fix: remove deprecated ioutil ( #528 )
...
Signed-off-by: fengshunli <1171313930@qq.com>
2023-06-07 12:20:24 -04:00
Leonardo Luz Almeida
98ccd3d43f
fix: calculate SSA diffs with smd.merge.Updater ( #467 )
...
* fix: refactor ssa diff logic
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix: calculate ssa diff with smd.merge.Updater
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* chore: Add golangci config file
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix: remove wrong param passed to golanci-ghaction
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* doc: Add doc to the wrapper file
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* doc: Add instructions about how to extract the openapiv2 document from
k8s
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* better wording
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* better code comments
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-10-04 09:23:20 -04:00
Leonardo Luz Almeida
3951079de1
fix: remove last-applied-configuration before diff in ssa ( #460 )
...
* fix: remove last-apply-configurations before diff in ssa
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix: add tests to validate expected behaviour
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-09-16 10:22:00 -04:00
Leonardo Luz Almeida
6cde7989d5
fix: structured-merge diff apply default values in live resource ( #435 )
...
* fix: structured-merge diff apply default values in live resource
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* address review comments
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-08-03 10:57:58 -04:00
Leonardo Luz Almeida
1c4ef33687
feat: Add server-side apply manager config ( #418 )
...
* feat: Add server-side apply manager config
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Force conflicts when SSA
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Implement strategic-merge patch in diff
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Implement structured merge diff
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Implement structured merge in diff
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Fix parseable type conversion
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Handle structured merge diff for create/delete operations
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* User NormalizeUnionsApply instead of Merge for structured-merge diff
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* NormalizeUnions
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* merge first than normalize union
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* calculate diff with fieldsets
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* extract managed fields
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* remove managed fields then merge
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Just remove fields if manager is found
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* remove config fieldset instead of using managed fields
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Structure merge diff with defaults
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* tests
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Normalize union at the end
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* test
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* test
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Remove fields after merging
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* test
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* test
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* apply defaults when building diff result
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix default func call
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Fix diff default
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix merged object
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* keep diff order
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* apply default with patch
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* handle ssa diffs with resource annotations
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* use managed fields to calculate diff
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* Implement unit tests
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* fix bad merge
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* add test to validate service with multiple ports
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* resolveFromStaticParser optimization
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
* try without reordering while patching default values
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-08-02 14:48:09 -04:00
Leonardo Luz Almeida
f6495020a3
fix: removeNamespaceAnnotation should not panic if annotation has unexpected value ( #361 )
...
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2021-12-22 11:16:05 -08:00
Leonardo Luz Almeida
c0b63afb74
fix: Address issue during diff when secret data is nil ( #345 )
...
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2021-11-02 12:00:06 -07:00
Mikhail Mazurskiy
31311943a5
refactor: use github.com/go-logr/logr for logging ( #162 )
2020-10-26 17:14:56 -07:00
Jonathan West
872c470033
fix: Detect unknown fields in invalid specs as OutOfSync ( #154 )
2020-10-14 11:34:19 -07:00
William Tam
a1dc4c598b
fix: sort endpoint IP addresses before diffing ( #160 )
2020-10-13 16:53:40 -07:00
Mikhail Mazurskiy
e024377862
refactor: cleanup printing and logging ( #124 )
...
- print using test logger
- print using fmt - println use is discouraged
2020-08-28 13:30:33 -07:00
Mikhail Mazurskiy
bf8e17f73f
Update and trim dependencies ( #123 )
...
* chore: bump kubernetes deps
* refactor: remove dependency on pkg/errors
* refactor: remove indirect dependency version
* refactor: remove dependency on github.com/google/shlex
as it was only used in tests
2020-08-21 18:49:00 -07:00
Alexander Matyushentsev
ee1db0902c
fix: add missing scheme install imports ( #89 )
2020-07-14 09:32:49 -07:00
Alexander Matyushentsev
eb210cf6d1
fix: diffing should not fail if known kubernetes resource has invalid fields ( #88 )
2020-07-13 10:21:25 -07:00
Alexander Matyushentsev
6fe0c0050b
fix: diff should perform server side like apply during resource diffing ( #82 )
2020-07-09 13:44:23 -07:00
Alexander Matyushentsev
c23d4d77d8
fix: don't remove defaulted fields and rely only on three way diff merge during diffing ( #68 )
...
* fix: don't remove defaulted fields and rely only on three way diff merge during diffing
2020-06-30 14:33:07 -07:00
Mikhail Mazurskiy
7d3da9f16e
Replace ghodss/yaml with sigs.k8s.io/yaml ( #62 )
...
Kubernetes community uses a permanent fork
https://github.com/kubernetes-sigs/yaml
2020-06-23 10:27:53 -07:00
Darshan Chaudhary
16575f1834
refactor: add methods in errors package to quit with exit codes ( #49 )
...
* add methods in errors package to quit with exit codes
Signed-off-by: darshanime <deathbullet@gmail.com>
* use CheckErrorWithCode to exit with appropriate error code
Signed-off-by: darshanime <deathbullet@gmail.com>
2020-06-09 17:34:14 +02:00
Alexander Matyushentsev
df17961bbd
docs: document 'top level' packages ( #44 )
...
* docs: document cache package
* docs: document diff package
* docs: document health package
* docs: document sync package
* docs: document engine package
* docs: document sync options
2020-06-01 17:54:33 +02:00
Alexander Matyushentsev
99bd42d9a3
fix: update packages structure ( #42 )
2020-05-28 17:18:31 -07:00