Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
341 commits
Select commit Hold shift + click to select a range
eb210cf
fix: diffing should not fail if known kubernetes resource has invalid…
Jul 13, 2020
ee1db09
fix: add missing scheme install imports (#89)
Jul 14, 2020
c5bf3a2
fix: sync hooks should be deleted after sync phase/wave completion (#92)
Jul 15, 2020
db76222
chore(deps): bump github.com/spf13/cobra from 0.0.5 to 0.0.7 (#78)
dependabot[bot] Jul 15, 2020
817d0e4
chore(deps): bump actions/setup-go from v1 to v2.1.0 (#73)
dependabot[bot] Jul 15, 2020
d12976c
chore(deps): bump codecov/codecov-action from v1 to v1.0.10 (#72)
dependabot[bot] Jul 15, 2020
933f7cb
chore(deps): bump actions/cache from v1 to v2 (#71)
dependabot[bot] Jul 15, 2020
42e1b44
fix: use streaming YAML decoder from Kubernetes (#85)
ash2k Jul 15, 2020
ee5c440
chore(deps): bump github.com/stretchr/testify from 1.4.0 to 1.6.1 (#77)
dependabot[bot] Jul 16, 2020
59a09cd
fix: improve manifest parsing (#97)
ash2k Jul 20, 2020
3c54508
feat: create namespace (#94)
mayzhang2000 Jul 20, 2020
b576959
fix: data race on ctxCompleted (#86)
ash2k Jul 21, 2020
cc0fb55
refactor: improve func signature (#103)
ash2k Jul 22, 2020
3e62005
Handlers cleanups (#101)
ash2k Jul 27, 2020
dcb86f7
fix: Namespace auto-creation (#105)
mayzhang2000 Jul 27, 2020
618250f
chore(deps): bump codecov/codecov-action from v1.0.10 to v1.0.12 (#106)
dependabot[bot] Jul 27, 2020
607629e
chore(deps): bump actions/setup-go from v2.1.0 to v2.1.1 (#104)
dependabot[bot] Jul 27, 2020
11d47a6
feat: support configuring cluster cache re-sync timeout (#107)
Jul 27, 2020
605958d
feat: improve memory consumption limiting (#100)
ash2k Jul 30, 2020
f420bb9
fix: panic for data type conversion to *unstructured.Unstructured. (#…
mayzhang2000 Aug 3, 2020
afc2e64
refactor: remove dependency on github.com/argoproj/pkg package (#111)
Aug 3, 2020
92a3433
feat: detect PVC StatefulSet ownership (#112)
Aug 4, 2020
90979fe
feat: use Kubernetes v1.18.6 libraries (#102)
ash2k Aug 5, 2020
bf8e17f
Update and trim dependencies (#123)
ash2k Aug 22, 2020
0eede80
fix: volumeClaimTemplates are out of sync incorrectly (#127)
Aug 24, 2020
26efb17
docs: Update notes on Argo+Flux collaboration (#126)
Aug 25, 2020
2cf3a72
fix: exclude creationTimestamp from diffing (#128)
Aug 26, 2020
2545f6c
fix: data race fixes and cleanups (#122)
ash2k Aug 27, 2020
51a45c0
chore(deps): bump github.com/evanphx/json-patch (#125)
dependabot[bot] Aug 28, 2020
8617aa1
fix: leverage RetryWatcher to watch cluster events and introduce peri…
Aug 28, 2020
7026950
chore(deps): bump actions/setup-go from v2.1.1 to v2.1.2 (#114)
dependabot[bot] Aug 28, 2020
e024377
refactor: cleanup printing and logging (#124)
ash2k Aug 28, 2020
8472746
refactor: ensure list semaphore is released after response is fully p…
Aug 29, 2020
4d6f298
chore(deps): bump codecov/codecov-action from v1.0.12 to v1.0.13 (#120)
dependabot[bot] Aug 29, 2020
c9bb009
fix: health status is set to healthy for statefulset with updateStrat…
mayzhang2000 Sep 1, 2020
21b78bd
fix: health status for daemonset with onDelete updateStrategy (#137)
mayzhang2000 Sep 3, 2020
c04f859
fix: correctly infer ownership references from PVC to StatefulSet (#138)
Sep 4, 2020
8d05efd
refactor: Return error from context (#140)
ash2k Sep 18, 2020
7171d62
fix: Support transition from a git managed namespace to auto-create n…
mayzhang2000 Sep 22, 2020
828dc75
fix: check resource namespaces are managed (#143)
jopit Sep 25, 2020
d25b8fd
fix: avoid memory and events spike after forcesfully refreshing api c…
Sep 25, 2020
3a3f6a3
fix: Child apps should not affect parent app's health by default (#153)
keithchong Oct 3, 2020
54bbebf
fix: Hook Deletion Policies HookSucceeded should be run after whole H…
mayzhang2000 Oct 9, 2020
ef7702f
refactor: cleanups (#142)
ash2k Oct 13, 2020
cc707cc
chore: Update to Kubernetes v1.19.2 (#139)
ash2k Oct 13, 2020
646ff03
chore(deps): bump actions/setup-go from v2.1.2 to v2.1.3 (#152)
dependabot[bot] Oct 13, 2020
8d99997
fix: Set TLSServerName in NewKubeConfig (#156)
ailurarctos Oct 13, 2020
a1dc4c5
fix: sort endpoint IP addresses before diffing (#160)
wtam2018 Oct 13, 2020
872c470
fix: Detect unknown fields in invalid specs as OutOfSync (#154)
jgwest Oct 14, 2020
4eb3ca3
feat: Namespace/CRD creation should happen before PreSync phase (#159)
Oct 14, 2020
3131194
refactor: use github.com/go-logr/logr for logging (#162)
ash2k Oct 27, 2020
e344629
refactor: allow PatchResource to accept subresource (#175)
jessesuen Oct 27, 2020
eb76c93
chore(deps): bump github.com/go-logr/logr from 0.2.0 to 0.2.1 (#173)
dependabot[bot] Oct 27, 2020
cfdefa4
feat: introduce SyncWaveHook callbacks invoked after applying each sy…
jessesuen Oct 30, 2020
9a6cf9d
docs: add myself as reviewer (#179)
ash2k Nov 5, 2020
760fcb6
fix: Current time is not set in startedAt in NewSyncContext (#180)
yutachaos Nov 6, 2020
069a5e6
fix: WithInitialState should require start time to support generateNa…
jessesuen Nov 13, 2020
0bc2f8c
fix: panic: interface conversion: interface {} is string (#189)
mayzhang2000 Nov 23, 2020
53cbe5f
fix: HPA health check is making incorrect assumption on annotations (…
mayzhang2000 Dec 14, 2020
2098827
chore(deps): bump codecov/codecov-action from v1.0.13 to v1.1.0 (#194)
dependabot[bot] Dec 18, 2020
dac8377
chore(deps): bump codecov/codecov-action from v1.1.0 to v1.1.1 (#199)
dependabot[bot] Dec 22, 2020
32c6afc
refactor: Kubernetes v1.20.1 (#195)
ash2k Jan 6, 2021
ee1772e
chore(deps): bump codecov/codecov-action from v1.1.1 to v1.2.0 (#200)
dependabot[bot] Jan 6, 2021
82f0935
feat: prune last (#203)
mayzhang2000 Jan 6, 2021
bb076f0
chore(deps): bump codecov/codecov-action from v1.2.0 to v1.2.1 (#202)
dependabot[bot] Jan 6, 2021
0b4199b
feat: add FindResources method that allows to find any resource in ca…
Jan 8, 2021
814d79d
fix: Data race between gitops-engine's pkg/cache/cluster.go and itsel…
jgwest Jan 12, 2021
c5b7114
selective sync (#213)
kshamajain99 Jan 29, 2021
354817a
fix: sync should apply Namespaces and CRDs before resources that depe…
Feb 18, 2021
aae8ded
feat: added cascade option to DeleteResource - argo-cd #5368 (#220)
ishitasequeira Feb 22, 2021
89cb483
feat: support resource prune propagation policy (#235)
Mar 12, 2021
380f7be
fix: Dry run stuck on pre sync hook (#236)
mayzhang2000 Mar 12, 2021
9282458
chore: Use v0.20.4 kube dependencies (#238)
sbose78 Mar 15, 2021
5d680d6
fix: Add additional healthy states for HPA (#234)
mikebryant Mar 15, 2021
38db8bb
Update OWNERS (#237)
edlee2121 Mar 15, 2021
478f8cb
fix: file extension comparisons are case sensitive (#243)
mayzhang2000 Mar 17, 2021
a9f11fa
fix: sync option applyOutOfSync (#245)
kshamajain99 Mar 17, 2021
89ddd0d
feat: support 'Replace=true' sync option (#246)
Mar 18, 2021
c1332ab
docs: remove out-of-date sections (#248)
sbose78 Mar 23, 2021
46073c1
fix: applyOutOfSyncOnly should work with sync waves as well (#251)
kshamajain99 Mar 25, 2021
3c778a5
fix: register new CRD to apigroups (#247)
kshamajain99 Mar 25, 2021
1ce2acc
feat: support replace strategy for CRD (#252)
Mar 25, 2021
2a9c144
fix: applyoutofsync with dry-run (#253)
kshamajain99 Apr 5, 2021
8e19104
chore: switch CI to golangci/golangci-lint-action@v2 (#259)
Apr 20, 2021
11e3221
refactor: reduce usage of k8s.io/kubernetes packages (#258)
ash2k Apr 20, 2021
9e41499
chore(deps): bump codecov/codecov-action from v1.2.1 to v1.4.1 (#260)
dependabot[bot] Apr 20, 2021
b3254f8
fix: missing resource version in tests (#256)
ash2k Apr 20, 2021
09186f3
chore(deps): bump github.com/stretchr/testify from 1.6.1 to 1.7.0 (#208)
dependabot[bot] Apr 20, 2021
ba03b48
chore(deps): bump actions/cache from v2 to v2.1.4 (#216)
dependabot[bot] Apr 20, 2021
0f8652d
chore(deps): bump github.com/golang/mock from 1.4.4 to 1.5.0 (#241)
dependabot[bot] Apr 20, 2021
73f3e7f
chore(deps): bump k8s.io/klog/v2 from 2.4.0 to 2.8.0 (#239)
dependabot[bot] Apr 20, 2021
46d1496
refactor: Kubernetes 1.21 libraries (#266)
ash2k Apr 21, 2021
3f38eee
fix: deadlock in listener (#271)
ash2k May 3, 2021
5159744
chore(deps): bump actions/cache from 2.1.4 to 2.1.5 (#275)
dependabot[bot] May 26, 2021
f0c9d7e
chore(deps): bump codecov/codecov-action from 1.4.1 to 1.5.0 (#274)
dependabot[bot] May 27, 2021
411c8d0
refactor: cache cmdutil.Factory to improve syncronization performance…
May 27, 2021
6911e59
chore(deps): bump actions/cache from 2.1.5 to 2.1.6 (#282)
dependabot[bot] May 28, 2021
ddc92c9
feat: expose APIGroups in GetClusterInfo (#283)
Jun 8, 2021
6884d33
refactor: add an API that returns built-in health assessement functio…
Jun 10, 2021
5da9c7e
refactor: stop caching OpenAPISchema since it is cached by cmdutil.Fa…
Jun 15, 2021
579ea1d
refactor: using open api schema in cluster live state cache (#289)
Jun 17, 2021
b067bd7
refactor: regenerate cluster cache mock (#291)
Jun 17, 2021
7495c63
fix: workflows without status.phase should be considered Progressing …
jessesuen Jun 23, 2021
2c97a96
fix: 'ResourceOperations.CreateResource' should use 'kubectl' package…
Jun 30, 2021
a4c77d5
feat: support managing cluster resources in a namespaced mode (#297)
Jul 9, 2021
57ea690
refactor: update resources install order according to helm implementa…
Aug 3, 2021
33f542d
fix: SyncOption Replace=True is broken (#321)
Sep 1, 2021
23f41cb
fix: Add ScalingDisabled healthy state to HPA (#323)
maruina Sep 28, 2021
e8d9803
fix: stop relying on imported types for ingress health check (#335)
jessesuen Oct 20, 2021
bc9ce57
feat: better error message for sync operations (#336)
pasha-codefresh Oct 21, 2021
762cb1b
feat: expose all kubernetes resources in cluster info (#337)
Oct 22, 2021
27374da
refactor: ugprade k8s client to v0.22.2 (#338)
Oct 22, 2021
c8139b3
chore(deps): bump actions/setup-go from 2.1.3 to 2.1.4 (#319)
dependabot[bot] Nov 2, 2021
2565df3
fix: Add ScaleDownLimit as health state for HPA (#343)
harikrongali Nov 2, 2021
c0b63af
fix: Address issue during diff when secret data is nil (#345)
leoluz Nov 2, 2021
c7bab2e
feat: add support split yaml that return actual yamls (#346)
pasha-codefresh Nov 3, 2021
ae94ad9
feat: configurable watch resync timeout. ability to disable cluster r…
jessesuen Nov 23, 2021
f649502
fix: removeNamespaceAnnotation should not panic if annotation has une…
leoluz Dec 22, 2021
b560016
chore(deps): bump k8s.io/kubernetes from 1.22.2 to 1.23.1 (#365)
tommyknows Jan 19, 2022
5bbbdfb
chore(deps): bump github.com/go-logr/logr from 1.2.0 to 1.2.2 (#368)
dependabot[bot] Jan 24, 2022
36e7746
fix: health check for HPA doesn't catch all good states (#369)
Jan 24, 2022
b0c5e00
fix: add default protocol to subset of ports if it is empty (#347)
ahalay Jan 26, 2022
8aefb18
feat: expose cluster sync retry timeout (#373)
yeya24 Feb 8, 2022
e360551
feat: Support for retries when building up cluster cache (#374)
jannfis Feb 8, 2022
c517b47
fix: ensureCRDReady check did not work for v1 CRDs (#378)
terrytangyuan Feb 15, 2022
553ae80
chore: Bump Go to 1.17 (#379)
terrytangyuan Feb 16, 2022
61c0cc7
fix: Add missing IngressClass in kind order when syncing tasks (#380)
terrytangyuan Feb 16, 2022
531c0db
chore: Remove support for deprecated extensions APIs (#381)
terrytangyuan Mar 11, 2022
723667d
feat: support exiting early from IterateHierarchy method (#388)
alexmt Mar 16, 2022
73bcea9
fix: Set QPS and burst rate for resource ops client (#395)
jannfis Mar 28, 2022
a586397
chore: Fix go version during ci lint (#401)
leoluz Apr 11, 2022
d8b1a12
feat: add basic support for server-side apply (#363)
sathieu Apr 11, 2022
55bb494
chore: Spelling (#215)
jsoref Apr 12, 2022
b855894
chore: test resource conversion (#403)
crenshaw-dev Apr 14, 2022
4f069a2
chore(deps): bump actions/setup-go from 2.1.4 to 3.2.0 (#412)
dependabot[bot] May 30, 2022
7493226
feat: Add support for HPA v2 (autoscaling/v2) (#411)
EppO May 30, 2022
f9456de
feat: add GvkParser in cluster cache (#404)
leoluz May 30, 2022
ed31317
fix: Only consider resources which supports appropriate verb for any …
jannfis Jul 6, 2022
67ddccd
chore: upgrade k8s cliet to v0.24.2 (#427)
alexmt Jul 12, 2022
da66819
fix: Change wrong log level in cluster.go openAPISchema, gvkParser (#…
dllegru Aug 2, 2022
1c4ef33
feat: Add server-side apply manager config (#418)
leoluz Aug 2, 2022
6cde798
fix: structured-merge diff apply default values in live resource (#435)
leoluz Aug 3, 2022
d8c17c2
spelling: less than (#434)
jsoref Aug 4, 2022
2d49581
chore(deps): bump codecov/codecov-action from 1.5.0 to 3.1.0 (#405)
dependabot[bot] Aug 4, 2022
ab8fdc7
chore(deps): bump sigs.k8s.io/yaml from 1.2.0 to 1.3.0 (#339)
dependabot[bot] Aug 4, 2022
112657a
chore(docs): typo fixing in agent README file (#351)
LinuxSuRen Aug 4, 2022
da6623b
chore(deps): bump golangci/golangci-lint-action from 2 to 3.2.0 (#409)
dependabot[bot] Aug 4, 2022
e5e3a1c
chore(deps): bump github.com/spf13/cobra from 1.2.1 to 1.5.0 (#420)
dependabot[bot] Aug 4, 2022
51a33e6
chore(deps): bump k8s.io/klog/v2 from 2.30.0 to 2.70.1 (#426)
dependabot[bot] Aug 4, 2022
e03364f
chore(deps): bump actions/setup-go from 3.2.0 to 3.2.1 (#428)
dependabot[bot] Aug 4, 2022
2bc3fef
fix: Fix argument order in resource filter (#436)
jannfis Aug 4, 2022
a56a803
feat: Ability to create custom labels for namespaces created with syn…
pasha-codefresh Aug 18, 2022
9970fab
Cherry-Pick Retry commit in master (#452)
leoluz Aug 19, 2022
ce2fb70
Revert "feat: Ability to create custom labels for namespaces created …
pasha-codefresh Aug 23, 2022
c036d3f
fix: sort fields to correctly calculate diff in server-side apply (#456)
leoluz Aug 29, 2022
517c1ff
chore: fix typo in log message (#445)
yujunz Sep 1, 2022
3951079
fix: remove last-applied-configuration before diff in ssa (#460)
leoluz Sep 16, 2022
98ccd3d
fix: calculate SSA diffs with smd.merge.Updater (#467)
leoluz Oct 4, 2022
9664cf8
feat: add profile feature for agent, and fix logr's panic (#444)
alswl Oct 6, 2022
b371e3b
Update namespace v2 (#465)
blakepettersson Nov 3, 2022
e284fd7
fix: managed namespaces should not mutate the live state (#479)
leoluz Nov 8, 2022
917f5a0
fix: add suspended condition (#484)
ashutosh16 Dec 8, 2022
ed70eac
feat: add sync delete option (#507)
gdsoumya Feb 14, 2023
b4dd8b8
fix: avoid acquiring lock on mutex and semaphore at the same time to …
alexmt May 12, 2023
ad9a694
fix: do not replace namespaces (#524)
blakepettersson May 26, 2023
e56739c
feat: add CreateResource to kubectl (#12174 and #4116) (#516)
reggie-k May 27, 2023
c0ffe84
manage clusters via proxy (#466)
ls0f May 31, 2023
b58645a
fix: remove deprecated ioutil (#528)
fengshunli Jun 7, 2023
425d65e
fix: update golangci-lint ci (#529)
fengshunli Jun 7, 2023
ed7c77a
feat: Apply out of sync option only (#533)
pasha-codefresh Aug 9, 2023
187312f
feat: auto respect rbac for discovery/sync (#532)
gdsoumya Aug 11, 2023
b0fffe4
fix: resolve deadlock (#539)
gdsoumya Sep 6, 2023
a00ce82
chore: log cluster sync error (#541)
crenshaw-dev Sep 29, 2023
9a03edb
fix: remove lock acquisition in ClusterCache.GetAPIResources() (#543)
jessesuen Oct 12, 2023
f15cf61
chore(deps): upgrade k8s version and client-go (#530)
fengshunli Oct 13, 2023
4a5648e
fix(server): use server side dry run in case if it is server side app…
pasha-codefresh Oct 31, 2023
c0c2dd1
feat: retry with client side dry run if server one was failed (#548)
pasha-codefresh Nov 2, 2023
aba3819
feat: Implement Server-Side Diffs (#522)
leoluz Dec 18, 2023
c1e2359
fix: address kubectl auth reconcile during server-side diff (#562)
leoluz Jan 22, 2024
7921242
fix(server): Dry run always in client mode just for yaml manifest val…
anandf Jan 22, 2024
5fd9f44
feat: Prune resources in reverse of sync wave order (#538)
svghadi Jan 24, 2024
3de3136
chore: more logging for CRD updates (#554)
crenshaw-dev Apr 8, 2024
1ade3a1
fix: fix temporary files written to '/dev/shm' not cleaned up (#568) …
jgwest Apr 11, 2024
fbecbb8
feat: sync-options annotation with Force=true (#414) (#560)
kkk777-7 Apr 16, 2024
86a3688
chore: Bump Kubernetes clients to 1.29.2 (#566)
sivchari May 7, 2024
0aecd43
fix: handle nil ParseableType from GVKParser (#574)
leoluz May 9, 2024
8a3ce6d
Update condition to select right pvc as child for statefulset (#550)
hanzala1234 May 14, 2024
a9fd001
fix: replace k8s.io/endpointslice version (#582)
alexmt Jun 10, 2024
1f371a0
fix: replace k8s.io/endpointslice to v0.29.2 (#583)
alexmt Jun 10, 2024
83ce6ca
chore(deps): bump k8s libs from 0.29.2 to 0.29.6 (#586)
crenshaw-dev Jun 15, 2024
0be58f2
fix: printing gvkparser error message (#585)
pgier Jun 25, 2024
4386ff4
chore: remove duplicate scheme import (#580)
pgier Jun 25, 2024
f38075d
fix: deduplicate OpenAPI definitions for GVKParser (#587)
crenshaw-dev Jun 28, 2024
fa0e8d6
chore: update static scheme (#588)
crenshaw-dev Jun 28, 2024
a22b346
fix: deduplicate OpenAPI definitions for GVKParser (#587) (#590)
crenshaw-dev Jul 1, 2024
a0c23b4
fix: deadlock on start missing watches (#604)
agaudreault Jul 12, 2024
adb68bc
fix(clusterCache): don't miss finding live obj if obj is cluster-scop…
ncdc Jul 14, 2024
7d150d0
chore: more docstrings (#606)
crenshaw-dev Jul 18, 2024
6b2984e
feat: More optimal IterateHierarchyV2 and iterateChildrenV2 [#600] (#…
andrii-korotkov-verkada Jul 18, 2024
099cba6
chore: bump kubernetes version to 0.30.x (#579)
sivchari Aug 23, 2024
95e0025
chore: bump k8s libraries to 1.31 (#619)
crenshaw-dev Aug 23, 2024
bd7681a
Added support for impersonation in the kubectl (#534)
anandf Sep 5, 2024
3d9aab3
chore: speed up resolveResourceReferences (#625)
crenshaw-dev Sep 16, 2024
df9b446
chore: avoid unnecessary json unmarshal (#627)
crenshaw-dev Sep 16, 2024
72bcdda
chore: avoid unnecessary json marshal (#626)
crenshaw-dev Sep 17, 2024
09e5225
feat: application resource deletion protection (#630)
alexmt Oct 23, 2024
9ab0b2e
feat: Add ability to hide certain annotations on secret resources (#577)
svghadi Oct 29, 2024
847cfc9
fix: Ability to disable Server Side Apply on individual resource leve…
pasha-codefresh Nov 7, 2024
88c35a9
chore(deps): Upgrade structured-merge-diff from v4.4.1 to v4.4.3 (#637)
andrii-korotkov-verkada Nov 18, 2024
0371401
chore(deps): upgrade go version in dockerfile (#638)
jmeridth Nov 26, 2024
8849c3f
fix: Server side diff now works correctly with fields removal (#640)
andrii-korotkov-verkada Dec 11, 2024
d948e6b
fix: github actions versions and warnings (#639)
jmeridth Dec 12, 2024
73452f8
fix: run go mod tidy in ci workflow (#652)
jmeridth Dec 12, 2024
363a715
chore: add CODEOWNERS (#641)
jmeridth Dec 12, 2024
8d65e80
chore: update README get involved links (#647)
jmeridth Dec 12, 2024
54992bf
fix: avoid resources lock contention utilizing channel (#629)
mpelekh Dec 16, 2024
d78929e
fix(cluster): reduce lock contention on cluster initialization (#660)
crenshaw-dev Jan 24, 2025
7e21b91
Merge commit from fork
svghadi Jan 29, 2025
3826638
chore: enable testifylint linter (#657)
mmorel-35 Feb 6, 2025
f948991
chore: enable gofumpt, gosimple and whitespace linters (#666)
mmorel-35 Feb 6, 2025
7ac688a
chore: enable use-any from revive (#667)
mmorel-35 Feb 6, 2025
edb9faa
chore: bump golangci-lint to v1.63.4 and list argo-cd linters (#670)
mmorel-35 Feb 7, 2025
ccee583
chore: enable unused-parameter and var-declaration from revive (#668)
mmorel-35 Feb 7, 2025
a093a76
chore: remove actions/cache duplicated behavior with actions/setup-go…
mmorel-35 Feb 7, 2025
bfdad63
chore: enable misspell linter (#672)
mmorel-35 Feb 7, 2025
0047207
chore: enable goimports linter (#669)
mmorel-35 Feb 7, 2025
30f4acc
chore(deps): bump golang.org/x/net from 0.26.0 to 0.33.0 (#671)
dependabot[bot] Feb 7, 2025
3ef5ab1
fix: New kube applier for server side diff dry run with refactoring (…
andrii-korotkov-verkada Feb 7, 2025
b111e50
chore: enable errorlint (#673)
mmorel-35 Feb 7, 2025
70bee6a
chore: enable early-return, indent-error-flow and unnecessary-stmt fr…
mmorel-35 Feb 7, 2025
367311b
chore: enable thelper linter (#675)
mmorel-35 Feb 7, 2025
f5aa9e4
chore: enable perfsprint linter (#676)
mmorel-35 Feb 7, 2025
782fb85
chore: enable unparam linter (#677)
mmorel-35 Feb 7, 2025
c323d36
chore: enable dot-imports, duplicated-imports from revive (#678)
mmorel-35 Feb 7, 2025
ad846ac
chore: enable increment-decrement and redundant-import-alias from rev…
mmorel-35 Feb 7, 2025
cc13a7d
chore: enable gocritic (#680)
mmorel-35 Feb 7, 2025
0426664
chore: enable require-error from testifylint (#681)
mmorel-35 Feb 7, 2025
11a5e25
chore(deps): bump github.com/evanphx/json-patch to v5.9.11 (#682)
mmorel-35 Feb 7, 2025
65db274
fix: stuck hook issue when a Job resource has a ttlSecondsAfterFinish…
dejanzele Feb 7, 2025
4fd1847
fix: Server-side diff shows incorrect diffs for list related changes …
pjiang-dev Feb 27, 2025
a16fb84
bump k8s v1.32 (#665)
sivchari Mar 2, 2025
e4cacd3
chore(ci): run tests on cherry-pick PRs (#694)
crenshaw-dev Mar 4, 2025
acb47d5
chore(deps): Update some package versions (#690)
andrii-korotkov-verkada Mar 5, 2025
1265e83
chore(deps): Update some dependencies - another run (#22228) (#696)
andrii-korotkov-verkada Mar 10, 2025
762f9b7
fix: Fix checking dryRun when using Server Side Apply (#699)
pjiang-dev Mar 13, 2025
e86b7b3
chore: prepare gitops-engine repo to be migrated to argocd
leoluz Mar 13, 2025
c0b2658
add migrate.sh script
leoluz Mar 13, 2025
fadd477
Merge remote-tracking branch 'ge-leo/migrate' into import-gitops-engine
leoluz Mar 13, 2025
01e0636
Configure gitops-engine as Go Workspace
leoluz Mar 13, 2025
a1f0ed7
update go.mod
leoluz Mar 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions gitops-engine/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM golang:1.22 AS builder

WORKDIR /src

COPY go.mod /src/go.mod
COPY go.sum /src/go.sum

RUN go mod download

# Perform the build
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o /dist/gitops ./agent


FROM alpine/git:v2.45.2
COPY --from=builder /dist/gitops /usr/local/bin/gitops
202 changes: 202 additions & 0 deletions gitops-engine/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2017-2018 The Argo Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
32 changes: 32 additions & 0 deletions gitops-engine/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# docker image publishing options
DOCKER_PUSH?=false
IMAGE_NAMESPACE?=
IMAGE_TAG?=latest
ifdef IMAGE_NAMESPACE
IMAGE_PREFIX=${IMAGE_NAMESPACE}/
endif

.PHONY: generate
generate: agent-manifests

.PHONY: test
test:
go test -race ./... -coverprofile=coverage.out

.PHONY: lint
lint:
golangci-lint run

.PHONY: agent-image
agent-image:
docker build -t $(IMAGE_PREFIX)gitops-agent . -f Dockerfile
@if [ "$(DOCKER_PUSH)" = "true" ] ; then docker push $(IMAGE_PREFIX)gitops-agent:$(IMAGE_TAG) ; fi

.PHONY: agent-manifests
agent-manifests:
kustomize build ./agent/manifests/cluster-install > ./agent/manifests/install.yaml
kustomize build ./agent/manifests/namespace-install > ./agent/manifests/install-namespaced.yaml

.PHONY: generate-mocks
generate-mocks:
go generate -x -v "github.com/argoproj/gitops-engine/pkg/utils/tracing/tracer_testing"
14 changes: 14 additions & 0 deletions gitops-engine/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
owners:
- alexmt
- jessesuen

approvers:
- alexec
- alexmt
- jannfis
- jessesuen
- mayzhang2000

reviewers:
- ash2k
- dthomson25
41 changes: 41 additions & 0 deletions gitops-engine/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# GitOps Engine

Various GitOps operators address different use-cases and provide different user experiences but all have similar set of core features. The team behind
[Argo CD](https://github.com/argoproj/argo-cd) has implemented a reusable library that implements core GitOps features:

- Kubernetes resource cache ✅
- Resources reconciliation ✅
- Sync Planning ✅
- Access to Git repositories
- Manifest Generation

## Proposals, specifications and ideas

Do you want to propose one more feature and want to enhance the existing one?
Proposals and ideas are in markdown docs in the [`specs/`](specs/) directory.
To create a new proposal, simply copy the spec [`template`](specs/template.md),
name the file corresponding to the title of your proposal, and place it in the
`specs/` directory.

A good starting point to understand the structure is the [GitOps Engine Design spec](specs/design.md).

We tried to answer frequently asked question in a [separate FAQ document](docs/faq.md).

## Governance

This project is licensed under the [Apache 2 license](LICENSE).

The GitOps Engine follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).

## Get involved

If you are as excited about GitOps and one common engine for it as much as we are, please get in touch. If you want to write code that's great, if you want to share feedback, ideas and use-cases, that's great too.

Find us on the [#argo-cd-contributors][argo-cd-contributors-slack] on CNCF Slack (get an [invite here][cncf-slack]).

[argo-cd-contributors-slack]: https://cloud-native.slack.com/archives/C020XM04CUW
[cncf-slack]: https://slack.cncf.io/

### Contributing to the effort

At this stage we are interested in feedback, use-cases and help on the GitOps Engine.
76 changes: 76 additions & 0 deletions gitops-engine/agent/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# GitOps Agent

The GitOps Agent leverages the GitOps Engine and provides access to many engine features via a simple CLI interface.
The agent provides the same set of core features as Argo CD including basic reconciliation, syncing as well as sync hooks and sync waves.

The main difference is that the agent is syncing one Git repository into the same cluster where it is installed.

## Quick Start

By default, the agent is configured to use manifests from [guestbook](https://github.com/argoproj/argocd-example-apps/tree/master/guestbook)
directory in https://github.com/argoproj/argocd-example-apps repository.

The agent supports two modes:

* namespaced mode - agent manages the same namespace where it is installed
* full cluster mode - agent manages the whole cluster

### Namespaced Mode

Install the agent with the default settings using the command below. Done!

```bash
kubectl apply -f https://raw.githubusercontent.com/argoproj/gitops-engine/master/agent/manifests/install-namespaced.yaml
kubectl rollout status deploy/gitops-agent
```

The agent logs:

```bash
kubectl logs -f deploy/gitops-agent gitops-agent
```

Find the guestbook deployment in the current K8S namespace:

```bash
kubectl get deployment
```

### Cluster Mode

The cluster mode grants full cluster access to the GitOps Agent. Use the following command to install an agent into the
`gitops-agent` namespace and use it to manage resources in any cluster namespace.

> Note. In cluster mode agents gets **full** cluster access.
> See [gitops-agent-cluster-role.yaml](./manifests/cluster-install/gitops-agent-cluster-role.yaml) definition for more information.

```bash
kubectl create ns gitops-agent
kubectl apply -f https://raw.githubusercontent.com/argoproj/gitops-engine/master/agent/manifests/install.yaml -n gitops-agent
```

### Customize Git Repository

The agent runs [git-sync](https://github.com/kubernetes/git-sync) as a sidecar container to access the repository.
Update the container env [variables](https://github.com/kubernetes/git-sync#parameters) to change the repository.

### Demo Recording

[![asciicast](https://asciinema.org/a/FWbvVAiSsiI87wQx2TJbRMlxN.svg)](https://asciinema.org/a/FWbvVAiSsiI87wQx2TJbRMlxN)


### Profiling

Using env variables to enable profiling mode, the agent can be started with the following envs:

```bash
export GITOPS_ENGINE_PROFILE=web
# optional, default pprofile address is 127.0.0.1:6060
export GITOPS_ENGINE_PROFILE_HOST=127.0.0.1
export GITOPS_ENGINE_PROFILE_PORT=6060
```

And then you can open profile in the browser(or using [pprof](https://github.com/google/pprof) cmd to generate diagrams):

- http://127.0.0.1:6060/debug/pprof/goroutine?debug=2
- http://127.0.0.1:6060/debug/pprof/mutex?debug=2
Loading