Argo-CD Autopilot

Argo Logo

Codefresh build status codecov Documentation Status slack

Introduction

New users to GitOps and Argo CD are not often sure how they should structure their repos, add applications, promote apps across environments, and manage the Argo CD installation itself using GitOps.

Argo CD Autopilot saves operators time by:

  • Installing and managing the Argo CD application using GitOps.
  • Providing a clear structure for how applications are to be added and updated, all from git.
  • Creating a simple pattern for making updates to applications and promoting those changes across environments.
  • Enabling better disaster recovery by being able to bootstrap new clusters with all the applications previously installed.
  • Handles secrets for Argo CD to prevent them from spilling into plaintext git. (Soon to come)

The Argo-CD Autopilot is a tool which offers an opinionated way of installing Argo-CD and managing GitOps repositories.

Installation

Using brew:

# install
brew install argocd-autopilot

# check the installation
argocd-autopilot version

Linux and WSL (using curl):

# get the latest version or change to a specific version
VERSION=$(curl --silent "https://api.github.com/repos/argoproj-labs/argocd-autopilot/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')

# download and extract the binary
curl -L --output - https://github.com/argoproj-labs/argocd-autopilot/releases/download/$VERSION/argocd-autopilot-linux-amd64.tar.gz | tar zx

# move the binary to your $PATH
mv ./argocd-autopilot-* /usr/local/bin/argocd-autopilot

# check the installation
argocd-autopilot version

Mac (using curl):

# get the latest version or change to a specific version
VERSION=$(curl --silent "https://api.github.com/repos/argoproj-labs/argocd-autopilot/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')

# download and extract the binary
curl -L --output - https://github.com/argoproj-labs/argocd-autopilot/releases/download/$VERSION/argocd-autopilot-darwin-amd64.tar.gz | tar zx

# move the binary to your $PATH
mv ./argocd-autopilot-* /usr/local/bin/argocd-autopilot

# check the installation
argocd-autopilot version

Docker

When using the Docker image, you have to provide the .kube and .gitconfig directories as mounts to the running container:

docker run \
  -v ~/.kube:/home/autopilot/.kube \
  -v ~/.gitconfig:/home/autopilot/.gitconfig \
  -it quay.io/argoprojlabs/argocd-autopilot <cmd> <flags>

Getting Started

# All of the commands need your git token with the --git-token flag,
# or the GIT_TOKEN env variable:

    export GIT_TOKEN=<YOUR_TOKEN>

# The commands will also need your repo clone URL with the --repo flag,
# or the GIT_REPO env variable:

    export GIT_REPO=<REPO_URL>

# 1. Run the bootstrap installation on your current kubernetes context.
# This will install argo-cd as well as the application-set controller.

    argocd-autopilot repo bootstrap

# Please note that this will automatically attempt to create a private repository,
# if the clone URL references a non-existing one. If the repository already exists,
# the command will just clone it.

# 2. Create your first project

    argocd-autopilot project create my-project

# 3. Install your first application on your project

    argocd-autopilot app create demoapp --app github.com/argoproj-labs/argocd-autopilot/examples/demo-app/ -p my-project

Now, if you go to your Argo-CD UI, you should see something similar to this:

Head over to our Getting Started guide for further details.

How it works

The autopilot bootstrap command will deploy an Argo-CD manifest to a target k8s cluster, and will commit an Argo-CD Application manifest under a specific directory in your GitOps repository. This Application will manage the Argo-CD installation itself - so after running this command, you will have an Argo-CD deployment that manages itself through GitOps.

From that point on, the user can create Projects and Applications that belong to them. Autopilot will commit the required manifests to the repository. Once committed, Argo-CD will do its magic and apply the Applications to the cluster.

An application can be added to a project from a public git repo + path, or from a directory in the local filesystem.

Architecture

Argo-CD Autopilot Architecture

Autopilot communicates with the cluster directly only during the bootstrap phase, when it deploys Argo-CD. After that, most commands will only require access to the GitOps repository. When adding a Project or Application to a remote k8s cluster, autopilot will require access to the Argo-CD server.

You can read more about it in the official proposal doc.

Features

  • Opinionated way to build a multi-project multi-application system, using GitOps principles.
  • Create a new GitOps repository, or use an existing one.
  • Supports creating the entire directory structure under any path the user requires.
  • When adding applications from a public repo, allow committing as either a kustomization that references the public repo, or as a "flat" manifest file containing all the required resources.
  • Use a different cluster from the one Argo-CD is running on, as a default cluster for a Project, or a target cluster for a specific Application.

Development Status

Argo-CD autopilot is currently under active development. Some of the basic commands are not yet implemented, but we hope to complete most of them in the coming weeks.

Slack Channel

Join us in channel #argo-autopilot in CNCF slack workspace.

Click here to join: https://slack.cncf.io/

Comments
  • Fix cli-local target for Homebrew support

    Fix cli-local target for Homebrew support

    I'm starting to create Homebrew formulae, thus, the following updates need to be merged to support Homebrew.

    In argocd repository, make cli-local is used by Homebrew formulae: see argocd.rb

    See current working formula using my forked repository.

    class ArgocdAutopilot < Formula
      desc "Argo-CD Autopilot"
      homepage "https://argoproj.io"
      url "https://github.com/sestegra/argocd-autopilot.git",
          tag:      "v0.1.9",
          revision: "6260363b81c3741fc33e4283f4c162af56506505"
      license "Apache-2.0"
    
      depends_on "go" => :build
    
      def install
        system "make", "cli-local"
        bin.install "dist/argocd-autopilot"
      end
    end
    
  • Do you support azure git provider ?

    Do you support azure git provider ?

    I am able to add repo using argocd but fails with argocd-autopilot FATAL authentication failed, make sure credentials are correct: GET https://dev.azure.com//api/v3/user: 401 []

  • failed to build bootstrap manifests

    failed to build bootstrap manifests

    ➜  ~ argocd-autopilot version
    v0.1.10
    

    macos (11.4) -> installed with brew

    I set GIT_TOKEN and GIT_REPO vars and run...

    ➜  ~ argocd-autopilot repo bootstrap
    

    The result is

    FATAL failed to build bootstrap manifests: accumulating resources: accumulation err='accumulating resources from 'manifests/': evalsymlink failure on '/private/var/folders/c2/t6pj5zmx11n_yqlltbdy1n9nhb8tt4/T/auto-pilot862157232/manifests' : lstat /private/var/folders/c2/t6pj5zmx11n_yqlltbdy1n9nhb8tt4/T/auto-pilot862157232/manifests: no such file or directory': evalsymlink failure on '/private/var/folders/c2/t6pj5zmx11n_yqlltbdy1n9nhb8tt4/T/auto-pilot862157232/manifests' : lstat /private/var/folders/c2/t6pj5zmx11n_yqlltbdy1n9nhb8tt4/T/auto-pilot862157232/manifests: no such file or directory
    
  • Bump sigs.k8s.io/kustomize/api from 0.8.8 to 0.10.0

    Bump sigs.k8s.io/kustomize/api from 0.8.8 to 0.10.0

    Bumps sigs.k8s.io/kustomize/api from 0.8.8 to 0.10.0.

    Release notes

    Sourced from sigs.k8s.io/kustomize/api's releases.

    cmd/config/v0.10.0

    16dcc98cf deprecate some cfg commands (#4048 ) 0537b59f2 support yaml formatted openapi schema (#4017)

    api/v0.10.0

    dce4ea584 Add AnchorsAweigh option to ByteReader to toggle YAML alias/anchor expansion -- this enables anchor expansion during builds by default (#4187) 67a5f6d68 support krm spec v1 and legacy path, index, and id annotations (#4190) 02cb395ec support multiple gvks in custom openapi schema (#4163) f4382738a [fix 4124] Skip local resource until all transformations have completed. (#4180) 6552b9065 Cache the OrgId for nameReferenceTransformer -- performance improvement (#4171) 2bfc7cc1b throw error instead of panic when replacements source.fieldPath doesn't exist (#4166) 0244f0919 update name references after kind change (#4165)

    cmd/config/v0.9.13

    aa92d83d8 Pin to kyaml (#4020) b465c20f6 Remove pinning to external fork 5c2c617ff fix affected cmd/config tests c8b049f57 point to natasha's fork 2e674337b expose --as-current-user via GetRunFnRunner a3ed120ef Handle errors e468d6b4d Fixing cmd/config/internal/commands/e2e/e2e_test.go 58165dfc8 comments 0e8257c38 comments 3ee157968 Fully specify KRM Functions Spec and graduate it to v1. f6e6ac032 Back to development mode; unpin the modules

    cmd/config/v0.9.12

    51605beb3 Pin to kyaml v0.10.20 3f3d3b17a Replace pkger with embed.FS compatibility 5bb736496 Fix linter error a4db686b6 Unpin everything.

    cmd/config/v0.9.11

    3a508da64 Pin to kyaml/v0.10.18 677ec868e Fix golint warning 8a529ca39 Update merge3 with deafult GVKNN matcher 7e622e138 remove go-openapi/spec,validate,strfmt from cmd/config/ 38e9c34f0 Back to dev mode; unpin the modules. 5ba45f1ef Back to mergo v0.3.5 d8015d3c9 Back to development mode; unpin the modules

    cmd/config/v0.9.10

    88911bbb6 Pin to [email protected]

    ... (truncated)

    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)
  • Bump github.com/spf13/cobra from 1.1.3 to 1.2.1

    Bump github.com/spf13/cobra from 1.1.3 to 1.2.1

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

    Release notes

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

    v1.2.1

    Bug fixes

    • Quickfix for spf13/cobra#1437 after v1.2.0 where parallel use of the cmd.RegisterFlagCompletionFunc() (and subsequent map) now works correctly and flag completions now work again

    v1.2.0 - The completions release

    :stars: v1.2.0 - The completions release

    Welcome to v1.2.0 of Cobra! This release focuses on code completions, several critical bug fixes, some documentation updates, and security bumps. Upgrading should be simple but note please take note of the introduction of completions V2 and their default use. The v1 completions library is still available, but will be deprecated in the future. Please open an issue with any problems!


    New Features

    • Automatically adds completion command for shell completions. If a completion command is already provided, uses that instead. This will automatically provide shell completions for bash, zsh, fish, and PowerShell spf13/cobra#1192
      • Users can configure the command auto creation:
        • disable the creation of the completion command
        • disable completion descriptions
        • disable the --no-descriptions flag for "always on" completion descriptions
    • Introduction of bash completions V2, a uniform completion approach which include completion descriptions. The V1 bash completions are still available and will be deprecated in a latter release - spf13/cobra#1146
      • Note that projects providing completion through a different command name (say a command named "complete") will continue to use v1 for their own command but will also provide cobra's implicit "completion" command which will use v2, unless of course, these projects take the time to disable the default "completion" command as noted above.
    • Commands now support context being passed to completions - spf13/cobra#1265
    • Removed dependency onmitchellh/go-homedir in favor of core Go os.UserHomeDir() - https://github.com/spf13/cobra/commit/8eaca5f0f49ad747a0722d39dca7a75c34abd21a

    Bug Fixes

    • Fix trailing whitespace not being handled in powershell completion scripts spf13/cobra#1342
    • Bash completion variable leak fix spf13/cobra#1352
    • Fish shell completions correctly ignore trailing empty lines spf13/cobra#1284
    • PowerShell completions fix for "no file comp directive" - spf13/cobra#1363
    • Custom completions now correctly handle multiple shorthand flags together - spf13/cobra#1258
    • zsh completions now correctly handle ShellDirectiveCompletionNoSpace and file completion all the time - spf13/cobra#1213
    • Multiple fixes / improvements to the fish shell support - spf13/cobra#1249
    • Fix home directory config not loading correctly - spf13/cobra#1282
    • Fix for RegisterFlagCompletionFunc as a global var not working in multi-threaded programs: spf13/cobra#1423
    • Custom completions correctly do not complete flags after args when interspersed is false #1308

    Testing

    Security

    • Bump viper to 1.8.1. This corrects several issues with vulnerabilities existing in the dependency tree - spf13/cobra#1433

    Other

    Thank you to all our amazing contributors :snake::rocket:

    Changelog

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

    Cobra Changelog

    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)
  • docs: fix edit url to use `main` branch

    docs: fix edit url to use `main` branch

    Hello 🙂, this PR fixes a broken URL of the edit button on the documentation.

    If you click the edit button on the documentation page, you will be redirected to a URL like this: https://github.com/argoproj-labs/argocd-autopilot/edit/master/docs/index.md. But we could not access the page since the branch name was renamed from master to main at some time.

    To fix the issue, we need to explicitly specify the edit_uri option of the mkdocs, which uses the master branch by default.

    I confirmed this change works on my local build by running make serve-docs command:

    Screen Shot 2022-05-07 at 20 49 15
  • Bump github.com/argoproj/argo-cd/v2 from 2.3.3 to 2.3.5

    Bump github.com/argoproj/argo-cd/v2 from 2.3.3 to 2.3.5

    Bumps github.com/argoproj/argo-cd/v2 from 2.3.3 to 2.3.5.

    Release notes

    Sourced from github.com/argoproj/argo-cd/v2's releases.

    v2.3.5

    Quick Start

    Non-HA:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.3.5/manifests/install.yaml
    

    HA:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.3.5/manifests/ha/install.yaml
    

    Security fixes

    Potentially-breaking changes

    From the GHSA-2m7h-86qq-fp4v description:

    The patch introduces a new reposerver.max.combined.directory.manifests.size config parameter, which you should tune before upgrading in production. It caps the maximum total file size of .yaml/.yml/.json files in directory-type (raw manifest) Applications. The default max is 10M per Application. This max is designed to keep any single app from consuming more than 3G of memory in the repo-server (manifests consume more space in memory than on disk). The 300x ratio assumes a maliciously-crafted manifest file. If you only want to protect against accidental excessive memory use, it is probably safe to use a smaller ratio.

    If your organization uses directory-type Applications with very many manifests or very large manifests then check the size of those manifests and tune the config parameter before deploying this change to production. When testing, make sure to do a "hard refresh" in either the CLI or UI to test your directory-type App. That will make sure you're using the new max logic instead of relying on cached manifest responses from Redis.

    Bug fixes

    Other

    • test: directory app manifest generation (#9503)
    • chore: eliminate go-mpatch dependency (#9045)
    • chore: Make unit tests run on platforms other than amd64 (#8995)
    • chore: remove obsolete repo-server unit test (#9559)
    • chore: update golangci-lint (#8988)
    • fix: test race (#9469)
    • chore: upgrade golangci-lint to v1.46.2 (#9448)
    • test: fix ErrorContains (#9445)

    v2.3.4

    Quick Start

    ... (truncated)

    Changelog

    Sourced from github.com/argoproj/argo-cd/v2's changelog.

    Changelog

    v2.4.0 (Unreleased)

    Web Terminal In Argo CD UI

    Feature enables engineers to start a shell in the running application container without leaving the web interface. Just find the required Kubernetes Pod using the Application Details page, click on it and select the Terminal tab. The shell starts automatically and enables you to execute the required commands, and helps to troubleshoot the application state.

    Access Control For Pod Logs & Web Terminal

    Argo CD is used to manage the critical infrastructure of multiple organizations, which makes security the top priority of the project. We've listened to your feedback and introduced additional access control settings that control access to Kubernetes Pod logs and the new Web Terminal feature.

    Known UI Issue for Pod Logs Access

    Currently, upon pressing the "LOGS" tab in pod view by users who don't have an explicit allow get logs policy, the red "unable to load data: Internal error" is received in the bottom of the screen, and "Failed to load data, please try again" is displayed.

    OpenTelemetry Tracing Integration

    The new feature allows emitting richer telemetry data that might make identifying performance bottlenecks easier. The new feature is available for argocd-server and argocd-repo-server components and can be enabled using the --otlp-address flag.

    Power PC and IBM Z Support

    The list of supported architectures has been expanded, and now includes IBM Z (s390x) and PowerPC (ppc64le). Starting with the v2.4 release the official quay.io repository is going to have images for amd64, arm64, ppc64le, and s390x architectures.

    Other Notable Changes

    Overall v2.4 release includes more than 300 hundred commits from nearly 90 contributors. Here is a short sample of the contributions:

    • Enforce the deployment to remote clusters only
    • Native support of GCP authentication for GKE
    • Secured Redis connection
    • ApplicationSet Gitea support
    Commits
    • 1287d24 Bump version to 2.3.5
    • 68e825c Bump version to 2.3.5
    • 738384b chore: fix docs gen
    • 7fb77d5 Merge pull request from GHSA-jhqp-vf4w-rpwq
    • 336d61c Merge pull request from GHSA-q4w5-4gq2-98vm
    • c0b6297 Merge pull request from GHSA-2m7h-86qq-fp4v
    • 048c025 Merge pull request from GHSA-h4w9-6x78-8vrj
    • 7eb3475 test: directory app manifest generation (#9503)
    • 2f4afe8 chore: eliminate go-mpatch dependency (#9045)
    • 92f53ae chore: Make unit tests run on platforms other than amd64 (#8995)
    • 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) You can disable automated security fix PRs for this repo from the Security Alerts page.
  • fix release pipeline homebrew step

    fix release pipeline homebrew step

    the step is pushing to https://github.com/codefresh-io/linuxbrew-core, which is a fork of https://github.com/Homebrew/linuxbrew-core apparently, Homebrew/linuxbrew-core was recently archived, and we need to fork https://github.com/Homebrew/homebrew-core instead, and make a pr to it.

  • Bump github.com/argoproj/argo-cd/v2 from 2.4.1 to 2.4.3

    Bump github.com/argoproj/argo-cd/v2 from 2.4.1 to 2.4.3

    Bumps github.com/argoproj/argo-cd/v2 from 2.4.1 to 2.4.3.

    Release notes

    Sourced from github.com/argoproj/argo-cd/v2's releases.

    v2.4.3

    Quick Start

    Non-HA:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.3/manifests/install.yaml
    

    HA:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.3/manifests/ha/install.yaml
    

    Bug fixes

    • fix: respect OIDC providers' supported token signing algorithms (#9433) (#9761)
    • fix websockets for terminal not working on subPath (#9795)
    • fix: avoid closing and re-opening port of api server settings change (#9778)
    • fix: [ArgoCD] Fixing webhook typo in case of error in GetManifests (#9671)
    • fix: overrides should not appear in the manifest cache key (#9601)

    v2.4.2

    Quick Start

    Non-HA:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.2/manifests/install.yaml
    

    HA:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.2/manifests/ha/install.yaml
    

    Bug fixes

    • fix: project filter (#9651) (#9709)
    • fix: broken symlink in Dockerfile (#9674)
    • fix: updated baseHRefRegex to perform lazy match (#9724)
    • fix: updated config file permission requirements for windows (#9666)

    Other

    ... (truncated)

    Commits
    • 471685f Bump version to 2.4.3
    • 42e1f29 Bump version to 2.4.3
    • c089f9a fix: respect OIDC providers' supported token signing algorithms (#9433) (#9761)
    • 1dc5e6a fix: websockets for terminal not working on subPath (#9795)
    • 82726fc fix: avoid closing and re-opening port of api server settings change (#9778)
    • e715e08 [ArgoCD] Fixing webhook typo in case of error in GetManifests (#9671)
    • 7db5ab7 fix: overrides should not appear in the manifest cache key (#9601)
    • c6d0c8b Bump version to 2.4.2
    • 2115bf7 Bump version to 2.4.2
    • 0a2520f test/remote: Allow override of base image (#9734)
    • 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)
  • GKE AutoPilot / ArgoCD Pilot Issue

    GKE AutoPilot / ArgoCD Pilot Issue

    I have started up an ArgoCD Autopilot on a GKE AutoPilot cluster with just default settings.

    resource "google_container_cluster" "my_cluster" {  
        name                = "infrastructure-352100-gke" 
        enable_autopilot    = true
        location            = var.gcp_region
        network             = google_compute_network.vpc_network.name
    }
    

    I used the standard bootstrapping commands from the ArgoCD Autopilot documentation and all spun up correctly except for the Application Controller StatefulSet. For some reason, even with vertical autoscaling enabled I am seeing the following:

    scale.up.error.quota.exceeded
    

    However, when you look at the dashboard the only error is one regarding too many IP addresses. There are no notifications about CPU and MEM but that is the error being reported from GKE through the

    Status Details for argocd-application-controller
    

    Should something else be configured I am missing? I would think having autoscaling enabled with GKE Autopilot and bootstrapping from ArgoCD Autopilot would handle itself out but I am missing where the issue actually is.

  • Bump github.com/xanzy/go-gitlab from 0.60.0 to 0.68.2

    Bump github.com/xanzy/go-gitlab from 0.60.0 to 0.68.2

    Bumps github.com/xanzy/go-gitlab from 0.60.0 to 0.68.2.

    Commits
    • 7a7ea97 Merge pull request #1497 from robbydyer/lint_merged_yaml
    • df03464 Cleanup PR
    • 0da8284 Merge pull request #1499 from cyd01/master
    • 5c153e7 Wrong description and bad typo
    • a51fd7d Add skip_confirmation option to add email API
    • 0f14fde Create LintWithOptions
    • 217f875 Add support for merged YAML return from linter
    • c45201a Merge pull request #1495 from jkosik/master
    • f3ecf99 missing package name for struct
    • 66f95fe Merge pull request #1494 from xanzy/bugfix/pipeline-variable
    • 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)
  • feat: allow --provider for all git commands (and add GIT_PROVIDER env)

    feat: allow --provider for all git commands (and add GIT_PROVIDER env)

    added --provider flag to all git repository based commands as those will fail otherwise when autodetection doesn't work (e.g. internal git repository)

  • recover is requesting credentials

    recover is requesting credentials

    I'm testing recovery against a local (docker desktop) k8s cluster. I've been able to install argocd using autopilot successfully. I then used docker desktop's "Reset Kubernetes Cluster" and I'm testing that recovery works.

    Even with the GIT_TOKEN set in the env and passed using --git-token, running an argocd-autopilot repo bootstrap --recover is asking for my credentials to login to github.

    autopilot version is 0.3.7

Notifications for Argo CD
Notifications for Argo CD

Argo CD Notifications Argo CD Notifications continuously monitors Argo CD applications and provides a flexible way to notify users about important cha

Jun 25, 2022
Automatic container image update for Argo CD

Argo CD Image Updater Introduction Argo CD Image Updater is a tool to automatically update the container images of Kubernetes workloads which are mana

Jun 24, 2022
A Kubernetes operator for managing Argo CD clusters.

Argo CD Operator A Kubernetes operator for managing Argo CD clusters. Documentation See the documentation for installation and usage of the operator.

Jun 29, 2022
Support for extending Argo CD

Argo CD Extensions To enable Extensions for your Argo CD cluster will require just a single kubectl apply. Here we provide a way to extend Argo CD suc

Jun 17, 2022
Hera is a Python framework for constructing and submitting Argo Workflows.

Hera is an Argo Workflows Python SDK. Hera aims to make workflow construction and submission easy and accessible to everyone! Hera abstracts away workflow setup details while still maintaining a consistent vocabulary with Argo Workflows.

Jun 30, 2022
Argo CD ApplicationSet Controller

The ApplicationSet controller manages multiple Argo CD Applications as a single ApplicationSet unit, supporting deployments to large numbers of clusters, deployments of large monorepos, and enabling secure Application self-service.

Jun 29, 2022
A series of controllers for configuring namespaces to accomodate Argo

argo-controller A series of controllers for configuring namespaces to accomodate Argo. ArgoCD TBD Argo Workflows Make a service account in every names

Jan 4, 2022
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.

What is Argo Workflows? Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Argo Workflow

Dec 10, 2021
Argo Rollout visualization in Argo CD Web UI
Argo Rollout visualization in Argo CD Web UI

Rollout Extension The project introduces the Argo Rollout dashboard into the Argo CD Web UI. Quick Start Install Argo CD and Argo CD Extensions Contro

Jul 2, 2022
The MySQL Cluster Autopilot Management with GTID and Raft
The MySQL Cluster Autopilot Management with GTID and Raft

Xenon Overview Xenon is a MySQL HA and Replication Management tool using Raft protocol. Xenon has many cool features, such as: Fast Failover with no l

Jun 19, 2022
Autopilot in Go for docking the SpaceX Dragon capsule in the simulator
Autopilot in Go for docking the SpaceX Dragon capsule in the simulator

Dragon ISS Docking Autopilot in Go Autopilot written in Go and executed as WebAssembly for docking the SpaceX Dragon capsule in the official simulator

Jun 29, 2022
Automating Kubernetes Rollouts with Argo and Prometheus. Checkout the demo URL below
Automating Kubernetes Rollouts with Argo and Prometheus. Checkout the demo URL below

observe-argo-rollout Demo for Automating and Monitoring Kubernetes Rollouts with Argo and Prometheus Performing Demo The demo can be found on Katacoda

Jun 15, 2022
A plugin for argo which behaves like I'd like

argocd-lovely-plugin An ArgoCD plugin to perform various manipulations in a sensible order to ultimately output YAML for Argo CD to put into your clus

Jul 1, 2022
Simple example using Git actions + Argo CD + K8S + Docker and GO lang

CICD-simple_example Simple example using Git actions + Argo CD + K8S + Docker and GO lang Intro Pre reqs Have an ArgoCD account and Installed. Docker

Oct 28, 2021
Notifications for Argo CD
Notifications for Argo CD

Argo CD Notifications Argo CD Notifications continuously monitors Argo CD applications and provides a flexible way to notify users about important cha

Jun 25, 2022
Automatic container image update for Argo CD

Argo CD Image Updater Introduction Argo CD Image Updater is a tool to automatically update the container images of Kubernetes workloads which are mana

Jun 24, 2022
A Kubernetes operator for managing Argo CD clusters.

Argo CD Operator A Kubernetes operator for managing Argo CD clusters. Documentation See the documentation for installation and usage of the operator.

Jun 29, 2022
Support for extending Argo CD

Argo CD Extensions To enable Extensions for your Argo CD cluster will require just a single kubectl apply. Here we provide a way to extend Argo CD suc

Jun 17, 2022
Hera is a Python framework for constructing and submitting Argo Workflows.

Hera is an Argo Workflows Python SDK. Hera aims to make workflow construction and submission easy and accessible to everyone! Hera abstracts away workflow setup details while still maintaining a consistent vocabulary with Argo Workflows.

Jun 30, 2022
Argo CD ApplicationSet Controller

The ApplicationSet controller manages multiple Argo CD Applications as a single ApplicationSet unit, supporting deployments to large numbers of clusters, deployments of large monorepos, and enabling secure Application self-service.

Jun 29, 2022