From 9ebd6b4b0a6c26a2c9a0c325afdc65b70c451ffd Mon Sep 17 00:00:00 2001 From: Manolis Sfendourakis Date: Sat, 14 Jan 2023 10:20:00 +0200 Subject: [PATCH] docs: Update installation methods Signed-off-by: Manolis Sfendourakis --- docs/installation.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 2398d467e4..5949d4eece 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -2,6 +2,9 @@ ## Controller Installation +Two types of installation: + +* [install.yaml](https://github.com/argoproj/argo-rollouts/blob/master/manifests/install.yaml) - Standard installation method. ```bash kubectl create namespace argo-rollouts kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml @@ -10,25 +13,36 @@ kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/rele This will create a new namespace, `argo-rollouts`, where Argo Rollouts controller will run. !!! tip - If you are using another namspace name, please update `install.yaml` clusterrolebinding's serviceaccount namespace name. + If you are using another namespace name, please update `install.yaml` clusterrolebinding's serviceaccount namespace name. !!! tip When installing Argo Rollouts on Kubernetes v1.14 or lower, the CRD manifests must be kubectl applied with the --validate=false option. This is caused by use of new CRD fields introduced in v1.15, which are rejected by default in lower API servers. -!!! tip +!!! tip On GKE, you will need grant your account the ability to create new cluster roles: ```shell kubectl create clusterrolebinding YOURNAME-cluster-admin-binding --clusterrole=cluster-admin --user=YOUREMAIL@gmail.com ``` +* [namespace-install.yaml](https://github.com/argoproj/argo-rollouts/blob/master/manifests/namespace-install.yaml) - Installation of Argo Rollouts which requires +only namespace level privileges. An example usage of this installation method would be to run several Argo Rollouts controller instances in different namespaces +on the same cluster. + + > Note: Argo Rollouts CRDs are not included into [namespace-install.yaml](https://github.com/argoproj/argo-rollouts/blob/master/manifests/namespace-install.yaml). + > and have to be installed separately. The CRD manifests are located in [manifests/crds](https://github.com/argoproj/argo-rollouts/blob/master/manifests/crds) directory. + > Use the following command to install them: + > ```bash + > kubectl apply -k https://github.com/argoproj/argo-rollouts/manifests/crds\?ref\=stable + > ``` + You can find released container images of the controller at [Quay.io](https://quay.io/repository/argoproj/argo-rollouts?tab=tags). There are also old releases at Dockerhub, but since the introduction of rate limiting, the Argo project has moved to Quay. ## Kubectl Plugin Installation -The kubectl plugin is optional, but is convenient for managing and visualizing rollouts from the +The kubectl plugin is optional, but is convenient for managing and visualizing rollouts from the command line. ### Brew @@ -44,7 +58,7 @@ brew install argoproj/tap/kubectl-argo-rollouts curl -LO https://github.com/argoproj/argo-rollouts/releases/latest/download/kubectl-argo-rollouts-darwin-amd64 ``` - !!! tip "" + !!! tip "" For Linux dist, replace `darwin` with `linux` 1. Make the kubectl-argo-rollouts binary executable. @@ -106,7 +120,7 @@ To upgrade Argo Rollouts: 2. Delete the previous version of the controller and apply/install the new one 3. When a new Rollout takes place the new controller will be activated. -If deployments are happening while you upgrade the controller, then you shouldn't +If deployments are happening while you upgrade the controller, then you shouldn't have any downtime. Current Rollouts will be paused and as soon as the new controller becomes active it will resume all in-flight deployments.