Skip to content

Commit

Permalink
Fix docs v.2 (#39)
Browse files Browse the repository at this point in the history
Co-authored-by: jesse-codefresh <[email protected]>
Co-authored-by: roi-codefresh <[email protected]>
Co-authored-by: Itai Gendler <[email protected]>
  • Loading branch information
4 people authored May 5, 2021
1 parent 611c58f commit 41912c6
Show file tree
Hide file tree
Showing 8 changed files with 93 additions and 43 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Argo-CD Autopilot
[![Codefresh build status]( https://g.codefresh.io/api/badges/pipeline/codefresh-inc/argocd-autopilot%2Frelease?type=cf-1)]( https://g.codefresh.io/public/accounts/codefresh-inc/pipelines/new/60881f8199c9564ef31aac61) [![codecov](https://codecov.io/gh/argoproj-labs/argocd-autopilot/branch/main/graph/badge.svg?token=IDyZNfRUfY)](https://codecov.io/gh/argoproj-labs/argocd-autopilot) [![Documentation Status](https://readthedocs.org/projects/argocd-autopilot/badge/?version=latest)](https://argocd-autopilot.readthedocs.io/en/latest/?badge=latest)
<p align="center"><img src="./docs/assets/argo_autopilot.png" alt="Argo Logo"></p>

[![Codefresh build status]( https://g.codefresh.io/api/badges/pipeline/codefresh-inc/argocd-autopilot%2Frelease?type=cf-1)]( https://g.codefresh.io/public/accounts/codefresh-inc/pipelines/new/60881f8199c9564ef31aac61)
[![codecov](https://codecov.io/gh/argoproj-labs/argocd-autopilot/branch/main/graph/badge.svg?token=IDyZNfRUfY)](https://codecov.io/gh/argoproj-labs/argocd-autopilot)
[![Documentation Status](https://readthedocs.org/projects/argocd-autopilot/badge/?version=latest)](https://argocd-autopilot.readthedocs.io/en/latest/?badge=latest)
[![slack](https://img.shields.io/badge/slack-argoproj-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C0207C47D0X)

## Introduction

Expand Down
3 changes: 3 additions & 0 deletions docs/Blogs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Blogs

* [Argo CD Autopilot Introduction](https://codefresh.io/about-gitops/launching-argo-cd-autopilot-opinionated-way-manage-applications-across-environments-using-gitops-scale/)
34 changes: 17 additions & 17 deletions docs/Development.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
# Development
This guide is meant for developers who want to contribute or debug `argocd-autopilot`.

### Adding a new feature:
1. Fork the repository.
2. Clone it and add the upstream remote with: `git remote add upstream https://github.com/argoproj-labs/argocd-autopilot.git`.
3. Run `make local` to build the project.
4. Add your feature, run `make pre-commit`, then commit.
5. Run `make pre-push`.
6. Push the changes to the remote branch and create a new PR: `git push --set-upstream upstream <remote-branch-name>`.
7. If you need to get changes from the upstream repo, run: `git pull upstream main`.

### Adding documentation:
### Adding a New Feature:
1. Fork the repository
2. Clone it and add the upstream remote with `git remote add upstream https://github.com/argoproj-labs/argocd-autopilot.git`
3. Run `make local` to build the project
4. Add your feature, run `make pre-commit`, then commit
5. Run `make pre-push`
6. Push the changes to the remote branch and create a new PR: `git push --set-upstream upstream <remote-branch-name>`
7. If you need to get changes from the upstream repo, run: `git pull upstream main`

### Adding Documentation:
1. Fork the repository.
2. Clone it and add the upstream remote with: `git remote add upstream https://github.com/argoproj-labs/argocd-autopilot.git`.
3. Run `make serve-docs` to run a docker container that will server the docs on http://localhost:8000.
4. Edit existing docs in `/docs` directory or add new `X.md` files and add them to the `mkdocs.yml`.
5. When you're ready, push your changes to your fork and submit a PR.

### Releasing a new version:
1. Checkout to a release branch: `v0.X.X`.
2. Change the `VERSION` in the Makefile to match the new version.
3. Add what you need to `./docs/releases/release_notes.md`.
4. Create a new PR to the `main` branch.
5. After CI is green, add a `/release` comment to the PR to trigger the release pipeline (maintainers only).
6. After Release build is finished you can merge back to `main`.
### Releasing a New Version:
1. Checkout to a release branch: `v0.X.X`
2. Change the `VERSION` in the Makefile to match the new version
3. Add what you need to `./docs/releases/release_notes.md`
4. Create a new PR to the `main` branch
5. After CI is green, add a `/release` comment to the PR to trigger the release pipeline (maintainers only)
6. After Release build is finished you can merge back to `main`

### Using pre-commit:
With pre-commit installed and properly set-up, both the pre-commit and pre-push hooks will run automatically.
Expand Down
10 changes: 5 additions & 5 deletions docs/Getting-Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

This guide assumes you are familiar with Argo CD and its basic concepts. See the [Argo CD documentation](https://argoproj.github.io/Argo CD/core_concepts/) for more information.

## Before you begin
## Before you Begin
### Requirements

* Installed [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) command-line tool
* Have a [kubeconfig](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) file (default location is `~/.kube/config`)

### Git authentication
### Git Authentication
Make sure to have a [valid token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)
![Github token](assets/github_token.png)
```
Expand All @@ -35,7 +35,7 @@ export GIT_INSTALLATION_PATH=some/relative/path

All the following commands will use the variables you supplied in order to manage your GitOps repository.

## Set up the GitOps repository
## Set up the GitOps Repository
```
argocd-autopilot repo bootstrap
```
Expand All @@ -59,14 +59,14 @@ Execute the port forward command, and browse to http://localhost:8080. Log in us
* root - References the `projects` directiry in the repo. The folder contains only an empty `DUMMY` file after the bootstrap command, so no projects will be created

## Add a Project and an Application
Execute the following commands to create a `testing` Project, and add a example Application to it:
Execute the following commands to create a `testing` project, and add a example application to it:
```
argocd-autopilot project create testing
argocd-autopilot app create hello-world --app github.com/argoproj-labs/argocd-autopilot/examples/demo-app/ -p testing
```
<sub>* notice the trailing slash in the URL</sub>

After the application is created, and after Argo CD has finished its sync cycle, your new Project will appear under the *Root* application:
After the application is created, and after Argo CD has finished its sync cycle, your new project will appear under the *Root* application:

![Step 2](assets/getting_started_2.png)

Expand Down
33 changes: 33 additions & 0 deletions docs/Roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Roadmap

### Repo Upgrade and Uninstall
* Support a clear flow to [upgrade](https://github.com/argoproj-labs/argocd-autopilot/issues/45) Argo CD
* Support a clear flow to [uninstall](https://github.com/argoproj-labs/argocd-autopilot/issues/42) Argo CD

### App Upgrade and Delete
* Support a clear flow to [upgrade](https://github.com/argoproj-labs/argocd-autopilot/issues/44) an app
* Support a clear flow to delete an app

### Working with and Storing Secrets
* [Git token should also be maintained in a GitOps approach](https://github.com/argoproj-labs/argocd-autopilot/issues/25)
* Addition of destination clusters should be maintained in a GitOps approach
* supporting automatic integration with external secret stores
* provide out of the box secret store solution in case of not bringing an existing one

### Promote Feature
* Provide a clear way to automate the process of promoting changes between one to another environment
* Provide a clear way to automate the process of promoting changes to all environments after verification on a single environment

### Multiple Argo CD installations Targeting Specific Environments
In some organizations there is a need to separate production from other testing environments because of regulations and networking restrictions.

That been said, in most cases you will still want to have a single GitOps repository that contains all your environments.

So for example you can have an Argo CD installation controlling your production but another Argo CD installation that will target all the rest of environments.

### Other Templating Choices Besides Kustomize
* Support Helm

### Additional Git Providers Support for Repo Create
* support [Bitbucket](https://github.com/argoproj-labs/argocd-autopilot/issues/7)
* support [GitLab](https://github.com/argoproj-labs/argocd-autopilot/issues/6)
Binary file added docs/assets/argo_autopilot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 25 additions & 19 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,40 @@
# Argo-CD Autopilot
<p align="center"><img src="./assets/argo_autopilot.png" alt="Argo Logo"></p>

## Introduction
[![Codefresh build status]( https://g.codefresh.io/api/badges/pipeline/codefresh-inc/argocd-autopilot%2Frelease?type=cf-1)]( https://g.codefresh.io/public/accounts/codefresh-inc/pipelines/new/60881f8199c9564ef31aac61)
[![codecov](https://codecov.io/gh/argoproj-labs/argocd-autopilot/branch/main/graph/badge.svg?token=IDyZNfRUfY)](https://codecov.io/gh/argoproj-labs/argocd-autopilot)
[![Documentation Status](https://readthedocs.org/projects/argocd-autopilot/badge/?version=latest)](https://argocd-autopilot.readthedocs.io/en/latest/?badge=latest)
[![slack](https://img.shields.io/badge/slack-argoproj-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C0207C47D0X)

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

It can:
The Argo CD Autopilot is a tool that offers an opinionated way of installing Argo CD and managing GitOps repositories.

* create a new gitops repository.
* bootstrap a new argo cd installation.
* install and manage argo-cd projects and application with ease.
* install and manage a single application multiple times on different logical environments on different K8S clusters.
It can:

## 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.
* Create a new GitOps repository
* Bootstrap a new Argo CD installation
* Install and manage Argo CD projects and applications with ease
* Install and manage a single application multiple times on different logical environments on different K8s clusters

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.
## 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 a directory in the local filesystem.

## Architecture
![Argo-CD Autopilot Architecture](assets/architecture.png)

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.
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, the autopilot will require access to the Argo CD server.


## 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.
* 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 a Kustomization file that references the public repo, or 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 them in the coming weeks.
Argo CD autopilot is currently under active development. Some of the basic commands are not yet implemented, but we hope to complete them in the coming weeks.
5 changes: 5 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ nav:
- Getting Started: Getting-Started.md
- Installation: Installation-Guide.md
- Development: Development.md
- Roadmap: Roadmap.md
- Blogs: Blogs.md
- Releases ⧉: https://github.com/argoproj-labs/argocd-autopilot/releases
- Issues ⧉: https://github.com/argoproj-labs/argocd-autopilot/issues
- Slack ⧉: https://cloud-native.slack.com/archives/C0207C47D0X

0 comments on commit 41912c6

Please sign in to comment.