Democratizing GitOps

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 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/ directory. To create a new proposal, simply copy the spec template, 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.

We tried to answer frequently asked question in a separate FAQ document.

Governance

This project is licensed under the Apache 2 license.

The GitOps Engine follows the CNCF Code of Conduct.

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 #gitops channel on Kubernetes Slack (get an invite here).

Contributing to the effort

At this stage we are interested in feedback, use-cases and help on the GitOps Engine.

Comments
  • fix: race condition (#50)

    fix: race condition (#50)

    refs: https://github.com/argoproj/gitops-engine/issues/50

    If you import the code from https://github.com/argoproj/gitops-engine/pull/52, the race condition will be gone.

    # refs: https://github.com/argoproj/gitops-engine/pull/52
    $ git status
    On branch feature/fix-race-condition
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   pkg/sync/sync_context_test.go
            modified:   pkg/utils/kube/kubetest/mock.go
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    $ go test ./... --race
    ?       github.com/argoproj/gitops-engine       [no test files]
    ?       github.com/argoproj/gitops-engine/agent [no test files]
    ok      github.com/argoproj/gitops-engine/pkg/cache     (cached)
    ?       github.com/argoproj/gitops-engine/pkg/cache/mocks       [no test files]
    ok      github.com/argoproj/gitops-engine/pkg/diff      (cached)
    ?       github.com/argoproj/gitops-engine/pkg/engine    [no test files]
    ok      github.com/argoproj/gitops-engine/pkg/health    (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync      (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync/common       (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync/hook (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync/hook/helm    (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync/ignore       (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync/resource     (cached)
    ok      github.com/argoproj/gitops-engine/pkg/sync/syncwaves    (cached)
    ?       github.com/argoproj/gitops-engine/pkg/utils/errors      [no test files]
    ok      github.com/argoproj/gitops-engine/pkg/utils/exec        (cached)
    ?       github.com/argoproj/gitops-engine/pkg/utils/io  [no test files]
    ?       github.com/argoproj/gitops-engine/pkg/utils/json        [no test files]
    ok      github.com/argoproj/gitops-engine/pkg/utils/kube        (cached)
    ?       github.com/argoproj/gitops-engine/pkg/utils/kube/kubetest       [no test files]
    ?       github.com/argoproj/gitops-engine/pkg/utils/testing     [no test files]
    ?       github.com/argoproj/gitops-engine/pkg/utils/text        [no test files]
    ok      github.com/argoproj/gitops-engine/pkg/utils/tracing     (cached)
    

    Among many functions, using sync.Mutex to secure a lock was complex and difficult. I took the approach of using sync.Map. I don't think this is the best response, but I think it's good that race conditions are gone. If you have any comments, please feel free to do so!

  • feat: selective sync

    feat: selective sync

    Signed-off-by: kshamajain99 [email protected]

    issue: https://github.com/argoproj/argo-cd/issues/3877 argo-cd PR: https://github.com/argoproj/argo-cd/pull/5347

    This feature applies only out-of-sync resources when ApplyOutOfSync=true option is provided by user.

    Test performed:

    Scenario: For an application with 10 deployments and 1 svc, deleting svc and syncing entire application (performing same action)

    With ApplyOutOfSync=true enabled

    INFO[0040] sync/terminate complete              application=guestbook duration=507.61639ms syncId=00001-NPWVT
    

    Without ApplyOutOfSync=true enabled

    INFO[0114] sync/terminate complete              application=guestbook duration=1.983608856s syncId=00002-orWNj
    
  • Update to Kubernetes v1.19.2

    Update to Kubernetes v1.19.2

    This is not working:

    --- FAIL: TestDeploymentHealth (0.01s)
        health_test.go:30: 
                    Error Trace:    health_test.go:30
                                                            health_test.go:18
                                                            health_test.go:35
                    Error:          Received unexpected error:
                                    failed to convert *unstructured.Unstructured to *v1.Deployment: converting (v1beta1.Deployment) to (v1.Deployment): unknown conversion
                    Test:           TestDeploymentHealth
    --- FAIL: TestAPIService (0.01s)
        health_test.go:30: 
                    Error Trace:    health_test.go:30
                                                            health_test.go:18
                                                            health_test.go:102
                    Error:          Received unexpected error:
                                    failed to convert *unstructured.Unstructured to *v1.APIService: converting (v1beta1.APIService) to (v1.APIService): unknown conversion
                    Test:           TestAPIService
    FAIL
    

    The reason is reflection-based conversion has been deprecated and disabled in Kubernetes v1.19.0 (https://github.com/kubernetes/kubernetes/pull/90018). That means health checking code needs to be re-worked to explicitly handle different GVKs for Deployment and APIService. I think ideally all conversion should be removed in favor of explicit handling. This is more performant, demands less memory and does not depend on the conversion functions in the scheme (which should only be used by Kubernetes itself, not by anything else - that's why they are not in k8s.io/api/k8s.io/client-go).

    Also, it's a poor practice to mutate global variables in another package like that - if some other package does the same there will be a panic. https://github.com/argoproj/gitops-engine/blob/21b78bd366285511267e8f9cf7ec3c3a5fdbd3bc/pkg/health/health.go#L255-L258

  • fix: Increase discovery config burst rate

    fix: Increase discovery config burst rate

    This change increases the api call burst rate for the discovery client config.

    On clusters with lots of CRDs (which is way more common these days), the default discovery burst rate of 100 is not enough, leading to massive slowdowns during sync operations because the client side rate-limiter kicks in (indicated by lots of "Waited for X.XXs due to client-side throttling, not priority and fairness").

    During my tests with our OpenShift clusters (which have a lot of CRDs by default; our current setup has ~250), the creation of 100 ConfigMaps took 4:03 minutes (tested multiple times with different sync settings) without this change. After implementing this change, the time went down to 5 seconds.

    In its own "oc" Kubernetes client for OpenShift, Redhat uses a burst rate of 250 (see https://bugzilla.redhat.com/show_bug.cgi?id=1899575) but in our experience, even this is not enough. Hence the value of 350 in this PR.

  • chore(deps): bump github.com/spf13/cobra from 1.1.1 to 1.1.3

    chore(deps): bump github.com/spf13/cobra from 1.1.1 to 1.1.3

    Bumps github.com/spf13/cobra from 1.1.1 to 1.1.3.

    Release notes

    Sourced from github.com/spf13/cobra's releases.

    v1.1.3

    • Fix: release-branch.cobra1.1 only: Revert "Deprecate Go < 1.14" to maintain backward compatibility

    v1.1.2

    Notable Changes

    • Bump license year to 2021 in golden files (#1309) @​Bowbaq
    • Enhance PowerShell completion with custom comp (#1208) @​Luap99
    • Update gopkg.in/yaml.v2 to v2.4.0: The previous breaking change in yaml.v2 v2.3.0 has been reverted, see go-yaml/yaml#670
    • Documentation readability improvements (#1228 etc.) @​zaataylor etc.
    • Use golangci-lint: Repair warnings and errors resulting from linting (#1044) @​umarcor
    Changelog

    Sourced from github.com/spf13/cobra's changelog.

    v1.1.3

    • Fix: release-branch.cobra1.1 only: Revert "Deprecate Go < 1.14" to maintain backward compatibility

    v1.1.2

    Notable Changes

    • Bump license year to 2021 in golden files (#1309) @​Bowbaq
    • Enhance PowerShell completion with custom comp (#1208) @​Luap99
    • Update gopkg.in/yaml.v2 to v2.4.0: The previous breaking change in yaml.v2 v2.3.0 has been reverted, see go-yaml/yaml#670
    • Documentation readability improvements (#1228 etc.) @​zaataylor etc.
    • Use golangci-lint: Repair warnings and errors resulting from linting (#1044) @​umarcor
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump github.com/go-logr/logr from 0.3.0 to 0.4.0

    chore(deps): bump github.com/go-logr/logr from 0.3.0 to 0.4.0

    Bumps github.com/go-logr/logr from 0.3.0 to 0.4.0.

    Release notes

    Sourced from github.com/go-logr/logr's releases.

    v0.4.0

    • Adds logr.WithCallDepth()

    • Deprecate logr/testing.NullLogger in favor of logr.Discard()

    Commits
    • 8fc6c73 Merge pull request #36 from thockin/eol-null-logger
    • 9721152 Merge pull request #31 from thockin/with-call-depth
    • 52a0608 Add optional CallDepth support
    • 85b0f8d Effectively EOL testing.NullLogger
    • 3dceec2 Merge pull request #35 from thockin/test-context
    • 7efc461 Add tests for context funcs
    • a9c9b25 Merge pull request #34 from thockin/godoc-and-headers
    • 4eabc2e Move comments arount for cleaner godoc
    • 6a4674c Add missing header comments
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • refactor: reduce usage of k8s.io/kubernetes packages

    refactor: reduce usage of k8s.io/kubernetes packages

    Updates https://github.com/argoproj/gitops-engine/issues/56.

    The only usage left is in the diff: https://github.com/argoproj/gitops-engine/blob/0b4199b0013509f6a076ebb555842a5aabd338a6/pkg/diff/diff.go#L117

    It uses the legacy scheme (via https://github.com/argoproj/gitops-engine/blob/master/pkg/utils/kube/scheme/scheme.go) to perform defaulting, which depends on all the internal k/k schemas. It's fragile (see https://github.com/argoproj/gitops-engine/issues/56#issuecomment-641761767) and it does not work for custom resources too. I wonder if there is a better way? Maybe it's possible to use the apply api with dry-run flag (don't know if that's a thing)?

    Defaulting using the scheme was introduced in https://github.com/argoproj/gitops-engine/pull/154. /cc @jgwest

    Regardless of the above, I think this PR is mergeable with one last step remaining to fix #56.

  • fix: Data race between gitops-engine's pkg/cache/cluster.go and itself, on Argo CD startup (#4627)

    fix: Data race between gitops-engine's pkg/cache/cluster.go and itself, on Argo CD startup (#4627)

    The fix is straightforward, as far as these things go:

    • Introduce a new lock, clusterCacheSync.lock which is only used for accessing the syncStatus fields of the cluster cache.
    • Move fields into a clusterCacheSync struct which is managed by that lock
    • This new lock is much cheaper to acquire than the cluster lock, since it does not block on the same heavyweight operations which use the cluster lock (with the one pre-existing exception of EnsureSynced's resync operation)
    • Add lock acquisition to code that uses syncStatus
    • Add comment describing rules for acquiring syncStatus so that we don't deadlock.

    Parent issue: https://github.com/argoproj/argo-cd/issues/4627

  • Update namespace v2

    Update namespace v2

    Rename WithNamespaceCreation to WithNamespaceModifier, since this method is also used for modifying existing namespaces. This method takes a single argument for the actual updating, and unless this method gets invoked by its caller no updating will take place (fulfilling what the createNamespace argument used to do).

    Within autoCreateNamespace, everywhere where we previously added tasks we'll now need to check whether the namespace should be created (or modified), which is now delegated to the appendNsTask and appendFailedNsTask methods.

  • feat: Add support for HPA v2 (autoscaling/v2)

    feat: Add support for HPA v2 (autoscaling/v2)

    Currently health check for HorizontalPodAutoscaler is limited to v1, v2beta1 and v2beta2. This MR adds support for v2 which is the default HPA API version on Kubernetes 1.23+

    Without this MR, ArgoCD will fail to sync any applications that use HPA in Kubernetes 1.23+ clusters.

  • chore(deps): bump k8s.io/kubernetes from 1.21.0 to 1.21.3

    chore(deps): bump k8s.io/kubernetes from 1.21.0 to 1.21.3

    Bumps k8s.io/kubernetes from 1.21.0 to 1.21.3.

    Release notes

    Sourced from k8s.io/kubernetes's releases.

    Kubernetes v1.21.3

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Release Assets

    Kubernetes v1.21.2

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Release Assets

    Kubernetes v1.21.1

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Release Assets

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • feat: Expose validation webhook warnings in Argo CD UI

    feat: Expose validation webhook warnings in Argo CD UI

    A warning handler has been added to this PR to display webhook validation warnings in the Argo CD user interface. This PR is related to Issue posted before. Warnings in the ArgoCD UI will look like this:

    Screen Shot 2022-12-28 at 2 43 40 PM Screen Shot 2022-12-28 at 2 44 01 PM
  • chore(deps): bump actions/cache from 2.1.6 to 3.2.2

    chore(deps): bump actions/cache from 2.1.6 to 3.2.2

    Bumps actions/cache from 2.1.6 to 3.2.2.

    Release notes

    Sourced from actions/cache's releases.

    v3.2.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/cache/compare/v3.2.1...v3.2.2

    v3.2.1

    What's Changed

    Full Changelog: https://github.com/actions/cache/compare/v3.2.0...v3.2.1

    v3.2.0

    What's Changed

    New Contributors

    ... (truncated)

    Changelog

    Sourced from actions/cache's changelog.

    3.2.2

    • Reverted the changes made in 3.2.1 to use gnu tar and zstd by default on windows.
    Commits
    • 4723a57 Revert compression changes related to windows but keep version logging (#1049)
    • d1507cc Merge pull request #1042 from me-and/correct-readme-re-windows
    • 3337563 Merge branch 'main' into correct-readme-re-windows
    • 60c7666 save/README.md: Fix typo in example (#1040)
    • b053f2b Fix formatting error in restore/README.md (#1044)
    • 501277c README.md: remove outdated Windows cache tip link
    • c1a5de8 Upgrade codeql to v2 (#1023)
    • 9b0be58 Release compression related changes for windows (#1039)
    • c17f4bf GA for granular cache (#1035)
    • ac25611 docs: fix an invalid link in workarounds.md (#929)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump actions/setup-go from 3.2.1 to 3.5.0

    chore(deps): bump actions/setup-go from 3.2.1 to 3.5.0

    Bumps actions/setup-go from 3.2.1 to 3.5.0.

    Release notes

    Sourced from actions/setup-go's releases.

    Add support for stable and oldstable aliases

    In scope of this release we introduce aliases for the go-version input. The stable alias instals the latest stable version of Go. The oldstable alias installs previous latest minor release (the stable is 1.19.x -> the oldstable is 1.18.x).

    Stable

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3
        with:
          go-version: 'stable'
      - run: go run hello.go
    

    OldStable

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3
        with:
          go-version: 'oldstable'
      - run: go run hello.go
    

    Add support for go.work and pass the token input through on GHES

    In scope of this release we added support for go.work file to pass it in go-version-file input.

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3
        with:
          go-version-file: go.work
      - run: go run hello.go
    

    Besides, we added support to pass the token input through on GHES.

    Fix cache issues and update dependencies

    In scope of this release we fixed the issue with the correct generation of the cache key when the go-version-file input is set (actions/setup-go#267). Moreover, we fixed an issue when the cache folder was not found. Besides, we updated actions/core to 1.10.0 version (actions/setup-go#273).

    Support architecture input and fix Expand-Archive issue

    This release introduces support for architecture input for setup-go action #253. It also adds support for arm32 architecture for self-hosted runners. If architecture is not provided action will use default runner architecture. Example of usage:

    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-go@v3
    </tr></table> 
    

    ... (truncated)

    Commits
    • 6edd440 fix log for stable aliases (#303)
    • 38dbe75 Add stable and oldstable aliases (#300)
    • 30c39bf Merge pull request #301 from jongwooo/chore/use-cache-in-check-dist
    • 8377b69 Use cache in check-dist.yml
    • d0a58c1 Merge pull request #294 from JamesMGreene/patch-1
    • 3dcd9d6 Update to latest actions/publish-action
    • e983b65 Merge pull request #283 from koba1t/add_support_gowork_for_go-version-file
    • 27b43e1 Pass the token input through on GHES (#277)
    • 7678c83 add support gowork for go-version-file
    • c4a742c fix(): cache resolve version input (#267)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump k8s.io/kubernetes from 1.24.2 to 1.26.0

    chore(deps): bump k8s.io/kubernetes from 1.24.2 to 1.26.0

    Bumps k8s.io/kubernetes from 1.24.2 to 1.26.0.

    Release notes

    Sourced from k8s.io/kubernetes's releases.

    Kubernetes v1.26.0

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.26.0-rc.1

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.26.0-rc.0

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.26.0-beta.0

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.26.0-alpha.3

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.26.0-alpha.2

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.26.0-alpha.1

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.25.5

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Kubernetes v1.25.4

    ... (truncated)

    Commits
    • b46a3f8 Release commit for Kubernetes v1.26.0
    • 2b26e0b Merge remote-tracking branch 'origin/master' into release-1.26
    • f63f31b CHANGELOG: Update directory for v1.25.5 release
    • 6bb8d26 Merge remote-tracking branch 'origin/master' into release-1.26
    • 7cba7e6 Merge pull request #114353 from dims/add-kms-to-1.26-rules-for-multiple-compo...
    • 1da53d6 add kms as to 1.26 rules for multiple components
    • 9fdeab5 Merge remote-tracking branch 'origin/master' into release-1.26
    • 5b4a780 Merge pull request #114288 from xmudrii/pub-bot-1189
    • 1272b72 Merge remote-tracking branch 'origin/master' into release-1.26
    • 09d7286 Merge pull request #114284 from xmudrii/go-1194
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • fix: hook lifecycle management was flaky

    fix: hook lifecycle management was flaky

    Occasionally hooks such as a PreSyncHook which had hook-delete-policy: BeforeHookCreation could get into a situation where the hook was forever stuck in "Pending deletion". This is despite the fact that the actual resource (e.g. Job) had successfully been deleted. This was intermittent and would only get stuck once in a while.

    This change reworks the sync logic slightly such that we allow the Sync() logic to progress further down the method, into the portion of code that handles hook lifecycle. By doing so, we will attempt to manage a hook's lifecycle (deleted/created/etc...)

    This is still being tested fully.

    Signed-off-by: Jesse Suen [email protected]

Age based repository file encryption gitops tool
Age based repository file encryption gitops tool

agebox Easy and simple file repository encryption tool based on Age. Have you ever though "this should be simple" while you were using tools like Blac

Jan 2, 2023
ORBOS - GitOps everything
ORBOS - GitOps everything

ORBOS - GitOps everything ORBOS explained ORBITER BOOM Getting Started on Google Compute Engine In the following example we will create a kubernetes c

Dec 31, 2022
Bootstrap curated Kubernetes stacks. Logging, metrics, ingress and more - delivered with gitops.

Gimlet Stack Bootstrap curated Kubernetes stacks. Logging, metrics, ingress and more - delivered with gitops. You can install logging aggregators, met

Dec 1, 2021
The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.

Elastalert Operator for Kubernetes The Elastalert Operator is an implementation of a Kubernetes Operator. Getting started Firstly, learn How to use el

Jun 28, 2022
ArgoCD is widely used for enabling CD GitOps. ArgoCD internally builds manifest from source data in Git repository, and auto-sync it with target clusters.
ArgoCD is widely used for enabling CD GitOps. ArgoCD internally builds manifest from source data in Git repository, and auto-sync it with target clusters.

ArgoCD Interlace ArgoCD is widely used for enabling CD GitOps. ArgoCD internally builds manifest from source data in Git repository, and auto-sync it

Dec 14, 2022
Cluster bootstraps for GitOps
Cluster bootstraps for GitOps

Introduction Documentation Site Cluster bootstraps for Crossplane GitOps based on argocd, see main doc site for details PreRequisites K8 cluster eg ki

Mar 13, 2022
gokp aims to install a GitOps Native Kubernetes Platform

gokp gokp aims to install a GitOps Native Kubernetes Platform. This project is a Proof of Concept centered around getting a GitOps aware Kubernetes Pl

Nov 4, 2022
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases

The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.

Dec 14, 2022
Foundational systems for gitops-style AWS development workflows

aws-basics Foundational systems for gitops-style AWS development workflows. Prerequisites GitHub and AWS accounts Terraform Golang Bootstrapping Setup

Oct 28, 2021
Run infrastructure as code (IaC) software tools including CDK, Terraform and Cloud Formation via GitOps.

Argo CloudOps is Alpha on a good day, please only use as appropriate!!! What Is Argo CloudOps? Argo CloudOps is a service for running infrastructure a

Dec 27, 2022
Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.
Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.

Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.

Nov 16, 2021
list or create gitlab project level variables for gitops

intro gitlab ci requires some env variables, for diffent projects these env vars may be same. so we have this cmd tool -- gitlab-vars install simplely

Dec 1, 2021
Digitalocean-kubernetes-challenge - Deploy a GitOps CI/CD implementation
Digitalocean-kubernetes-challenge - Deploy a GitOps CI/CD implementation

DigitalOcean Kubernetes Challenge 2021 I chose to participate in the DigitalOcean Kubernetes Challenge in order to learn more about Kubernetes and to

Nov 9, 2022