argocd

package module
v0.11.0-rc2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2018 License: Apache-2.0 Imports: 2 Imported by: 0

README

codecov

Argo CD - Declarative Continuous Delivery for Kubernetes

What is Argo CD?

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

Argo CD UI

Why Argo CD?

Application definitions, configurations, and environments should be declarative and version controlled. Application deployment and lifecycle management should be automated, auditable, and easy to understand.

Getting Started

Follow our getting started guide. Further documentation is provided for additional features.

How it works

Argo CD follows the GitOps pattern of using git repositories as the source of truth for defining the desired application state. Kubernetes manifests can be specified in several ways:

Argo CD automates the deployment of the desired application states in the specified target environments. Application deployments can track updates to branches, tags, or pinned to a specific version of manifests at a git commit. See tracking strategies for additional details about the different tracking strategies available.

For a quick 10 minute overview of Argo CD, check out the demo presented to the Sig Apps community meeting: Alt text

Architecture

Argo CD Architecture

Argo CD is implemented as a kubernetes controller which continuously monitors running applications and compares the current, live state against the desired target state (as specified in the git repo). A deployed application whose live state deviates from the target state is considered OutOfSync. Argo CD reports & visualizes the differences, while providing facilities to automatically or manually sync the live state back to the desired target state. Any modifications made to the desired target state in the git repo can be automatically applied and reflected in the specified target environments.

For additional details, see architecture overview.

Features

  • Automated deployment of applications to specified target environments
  • Flexibility in support for multiple config management tools (Ksonnet, Kustomize, Helm, plain-YAML)
  • Continuous monitoring of deployed applications
  • Automated or manual syncing of applications to its desired state
  • Web and CLI based visualization of applications and differences between live vs. desired state
  • Rollback/Roll-anywhere to any application state committed in the git repository
  • Health assessment statuses on all components of the application
  • SSO Integration (OIDC, OAuth2, LDAP, SAML 2.0, GitLab, Microsoft, LinkedIn)
  • Webhook Integration (GitHub, BitBucket, GitLab)
  • PreSync, Sync, PostSync hooks to support complex application rollouts (e.g.blue/green & canary upgrades)
  • Audit trails for application events and API calls
  • Parameter overrides for overriding ksonnet/helm parameters in git
  • Service account/access key management for CI pipelines

Development Status

  • Argo CD is being used in production to deploy SaaS services at Intuit

Roadmap

v0.11
  • New application controller architecture
  • Multi-namespaced applications
  • Large application support
  • Resource lifecycle hook improvements
  • K8s recommended application labels
  • External OIDC provider support
  • OIDC group claims bindings to Project Roles
  • Declarative Argo CD configuration
  • Helm repository support
v0.12
  • UI improvements
  • Support for custom K8S manifest templating engines

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Version

type Version struct {
	Version      string
	BuildDate    string
	GitCommit    string
	GitTag       string
	GitTreeState string
	GoVersion    string
	Compiler     string
	Platform     string
}

Version contains Argo version information

func GetVersion

func GetVersion() Version

GetVersion returns the version information

func (Version) String

func (v Version) String() string

Directories

Path Synopsis
cmd
pkg
apis/application/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/application/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/application/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
repository/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
account
Package account is a reverse proxy.
Package account is a reverse proxy.
application
Package application is a reverse proxy.
Package application is a reverse proxy.
cluster
Package cluster is a reverse proxy.
Package cluster is a reverse proxy.
cluster/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
project
Package project is a reverse proxy.
Package project is a reverse proxy.
repository
Package repository is a reverse proxy.
Package repository is a reverse proxy.
session
Package session is a reverse proxy.
Package session is a reverse proxy.
session/mocks
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
settings
Package settings is a reverse proxy.
Package settings is a reverse proxy.
version
Package version is a reverse proxy.
Package version is a reverse proxy.
e2e
cli
db
dex
git
jwt
kube
Package kube provides helper utilities common for kubernetes
Package kube provides helper utilities common for kubernetes
tls

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL