Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ is provided for additional features.
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:
* [ksonnet](https://ksonnet.io) applications
* [kustomize](https://kustomize.io) applications
* [helm](https://helm.sh) charts
* Simple directory of YAML/json manifests

Expand Down
1 change: 1 addition & 0 deletions docs/application_sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
ArgoCD supports several different ways in which kubernetes manifests can be defined:

* [ksonnet](https://ksonnet.io) applications
* [kustomize](https://kustomize.io) applications
* [helm](https://helm.sh) charts
* Simple directory of YAML/json manifests

Expand Down
42 changes: 25 additions & 17 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ An example guestbook application is provided to demonstrate how ArgoCD works.
* Have a [kubeconfig](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) file (default location is `~/.kube/config`).

## 1. Install ArgoCD
```
```bash
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.7.2/manifests/install.yaml
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.8.0/manifests/install.yaml
```
This will create a new namespace, `argocd`, where ArgoCD services and application resources will live.

NOTE:
* On GKE with RBAC enabled, you may need to grant your account the ability to create new cluster roles
```
```bash
kubectl create clusterrolebinding YOURNAME-cluster-admin-binding --clusterrole=cluster-admin --user=YOUREMAIL@gmail.com
```

Expand All @@ -24,14 +24,14 @@ kubectl create clusterrolebinding YOURNAME-cluster-admin-binding --clusterrole=c
Download the latest ArgoCD version:

On Mac:
```
```bash
brew install argoproj/tap/argocd
```

On Linux:

```
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/v0.7.2/argocd-linux-amd64
```bash
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/v0.8.0/argocd-linux-amd64
chmod +x /usr/local/bin/argocd
```

Expand All @@ -40,32 +40,40 @@ chmod +x /usr/local/bin/argocd
By default, the ArgoCD API server is not exposed with an external IP. To expose the API server,
change the service type to `LoadBalancer`:

```
```bash
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
```

### Notes about Ingress and AWS Load Balancers
* If using Ingress objects without TLS from the ingress-controller to ArgoCD API server, you will
need to add the `--insecure` command line flag to the argocd-server deployment.
* AWS Classic ELB (in HTTP mode) and ALB do not have full support for HTTP2/gRPC which is the
protocol used by the `argocd` CLI. When using an AWS load balancer, either Classic ELB in
passthrough mode is needed, or NLBs.


## 4. Login to the server from the CLI

Login with using the `admin` user. The initial password is autogenerated to be the pod name of the
ArgoCD API server. This can be retrieved with the command:
```
```bash
kubectl get pods -n argocd -l app=argocd-server -o name | cut -d'/' -f 2
```

Using the above password, login to ArgoCD's external IP:

On Minikube:
```
```bash
argocd login $(minikube service argocd-server -n argocd --url | cut -d'/' -f 3) --name minikube
```
Other clusters:
```
```bash
kubectl get svc -n argocd argocd-server
argocd login <EXTERNAL-IP>
```

After logging in, change the password using the command:
```
```bash
argocd account update-password
argocd relogin
```
Expand All @@ -75,13 +83,13 @@ argocd relogin

We will now register a cluster to deploy applications to. First list all clusters contexts in your
kubconfig:
```
```bash
argocd cluster add
```

Choose a context name from the list and supply it to `argocd cluster add CONTEXTNAME`. For example,
for minikube context, run:
```
```bash
argocd cluster add minikube --in-cluster
```

Expand All @@ -101,7 +109,7 @@ flag should be omitted.
Open a browser to the ArgoCD external UI, and login using the credentials set in step 4.

On Minikube:
```
```bash
minikube service argocd-server -n argocd
```

Expand All @@ -122,7 +130,7 @@ After connecting a git repository, select the guestbook application for creation

Applications can be also be created using the ArgoCD CLI:

```
```bash
argocd app create guestbook-default --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --env default
```

Expand All @@ -134,7 +142,7 @@ From UI:
![create app](assets/guestbook-app.png)

From CLI:
```
```bash
$ argocd app get guestbook-default
Name: guestbook-default
Server: https://kubernetes.default.svc
Expand All @@ -153,7 +161,7 @@ Deployment guestbook-ui OutOfSync
The application status is initially in an `OutOfSync` state, since the application has yet to be
deployed, and no Kubernetes resources have been created. To sync (deploy) the application, run:

```
```bash
$ argocd app sync guestbook-default
Application: guestbook-default
Operation: Sync
Expand Down
39 changes: 39 additions & 0 deletions docs/internal/releasing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ArgoCD Release Instructions

1. Tag and build argo-cd-ui
```bash
cd argo-cd-ui
git tag vX.Y.Z
git push upstream vX.Y.Z
IMAGE_NAMESPACE=argoproj IMAGE_TAG=vX.Y.Z DOCKER_PUSH=true yarn docker
```

2. Edit CHANGELOG.md, getting_started.md, install manifests with new version
```bash
make install-manifest IMAGE_NAMESPACE=argoproj IMAGE_TAG=vX.Y.Z
git commit -a -m "Update manifests to vX.Y.Z"
git push upstream master
```

3. Tag, build the release, and push to docker hub
```bash
git tag vX.Y.Z
make release IMAGE_NAMESPACE=argoproj IMAGE_TAG=vX.Y.Z DOCKER_PUSH=true
git push upstream vX.Y.Z
```

4. Create release-X.Y branch (if necessary)
```bash
git checkout -b release-X.Y
git push upstream release-X.Y
```

5. Update argocd brew formula
```bash
git clone https://github.com/argoproj/homebrew-tap
cd homebrew-tap
shasum -a 256 ~/go/src/github.com/argoproj/argo-cd/dist/argocd-darwin-amd64
# edit argocd.rb with version and checksum
git commit -a -m "Update argocd to vX.Y.Z"
git push
```