From 67d390077860024d361d118ce5d93d08c7ca4703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Celal=20=C3=96ner?= Date: Tue, 22 Mar 2022 22:53:28 +0300 Subject: [PATCH] docs: add available configuration options for rollouts controller. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs: #1914 Signed-off-by: Celal Öner --- docs/installation.md | 67 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/docs/installation.md b/docs/installation.md index 79026e3a55..515069a1c5 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -26,6 +26,73 @@ This will create a new namespace, `argo-rollouts`, where Argo Rollouts controlle 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. +### Configuration Options + +Argo Rollouts Controller is a Kubernetes controller that continuously manages the Rollout resources in the cluster. This command runs Argo Rollouts Controller in the foreground, and it can be configured by following options. + +``` +rollouts-controller [flags] +``` + +``` + --alb-ingress-classes stringArray Defines all the ingress class annotations that the alb ingress controller operates on. Defaults to alb (default [alb]) + --ambassador-api-version string Set the Ambassador apiVersion that controller should look when manipulating Ambassador Mappings. (default "getambassador.io/v2") + --analysis-threads int Set the number of worker threads for the Experiment controller (default 30) + --appmesh-crd-version string Set the default AppMesh CRD Version that controller uses when manipulating resources. (default "v1beta2") + --as string Username to impersonate for the operation + --as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups. + --as-uid string UID to impersonate for the operation + --aws-verify-target-group Verify ALB target group before progressing through steps (requires AWS privileges) + --burst int Maximum burst for throttle. (default 80) + --certificate-authority string Path to a cert file for the certificate authority + --client-certificate string Path to a client certificate file for TLS + --client-key string Path to a client key file for TLS + --cluster string The name of the kubeconfig cluster to use + --context string The name of the kubeconfig context to use + --experiment-threads int Set the number of worker threads for the Experiment controller (default 10) + --healthzPort int Set the port the healthz endpoint should be exposed over (default 8080) + -h, --help help for argo-rollouts + --ingress-api-version string Set the Ingress apiVersion that the controller should use. + --ingress-threads int Set the number of worker threads for the Ingress controller (default 10) + --insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure + --instance-id string Indicates which argo rollout objects the controller should operate on + --istio-api-version string Set the default Istio apiVersion that controller should look when manipulating VirtualServices. (default "v1alpha3") + --kloglevel int Set the klog logging level + --kubeconfig string Path to a kube config. Only required if out-of-cluster + --leader-elect If true, controller will perform leader election between instances to ensure no more than one instance of controller operates at a time (default true) + --leader-election-lease-duration duration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) + --leader-election-renew-deadline duration The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) + --leader-election-retry-period duration The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) + --logformat string Set the logging format. One of: text|json + --loglevel string Set the logging level. One of: debug|info|warn|error (default "info") + --metricsport int Set the port the metrics endpoint should be exposed over (default 8090) + -n, --namespace string If present, the namespace scope for this CLI request + --namespaced runs controller in namespaced mode (does not require cluster RBAC) + --nginx-ingress-classes stringArray Defines all the ingress class annotations that the nginx ingress controller operates on. Defaults to nginx (default [nginx]) + --password string Password for basic authentication to the API server + --qps float32 Maximum QPS (queries per second) to the K8s API server (default 40) + --request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0") + --rollout-resync int Time period in seconds for rollouts resync. (default 900) + --rollout-threads int Set the number of worker threads for the Rollout controller (default 10) + --server string The address and port of the Kubernetes API server + --service-threads int Set the number of worker threads for the Service controller (default 10) + --tls-server-name string If provided, this name will be used to validate server certificate. If this is not provided, hostname used to contact the server is used. + --token string Bearer token for authentication to the API server + --traffic-split-api-version string Set the default TrafficSplit apiVersion that controller uses when creating TrafficSplits. (default "v1alpha1") + --user string The name of the kubeconfig user to use + --username string Username for basic authentication to the API server + --version Print version +``` + +For instance, logging format can be easily set as `json` in Argo Rollouts Controller Deployment as follows: + +````yaml + containers: + - image: "image: quay.io/argoproj/argo-rollouts:v1.2.0" + args: + - --logformat=json +```` + ## Kubectl Plugin Installation The kubectl plugin is optional, but is convenient for managing and visualizing rollouts from the