diff --git a/docs/modules/ROOT/pages/references/parameters.adoc b/docs/modules/ROOT/pages/references/parameters.adoc index 29d5615d..9be02b11 100644 --- a/docs/modules/ROOT/pages/references/parameters.adoc +++ b/docs/modules/ROOT/pages/references/parameters.adoc @@ -2,7 +2,6 @@ The parent key for all of the following parameters is `argocd`. - == `namespace` [horizontal] @@ -19,92 +18,80 @@ default:: ${facts:distribution} The Kubernetes distribution of the cluster. -== `resync_time` +== `network_policies` + +This parameter configures network policies for ArgoCD. + +=== `network_policies.enabled` [horizontal] -type:: string -default:: `3m0s` +type:: boolean +default:: true -Resync interval. -Lower values mean quicker sync but higher CPU usage and more Git traffic. +Whether to enable NetworkPolicies that isolate ArgoCD from the rest of the cluster. -== `ssh_known_hosts` +=== `network_policies.allow_from_namespaces` [horizontal] -type:: string - -SSH known hosts for Git servers. +type:: List(string) +default:: `[] +Additional namespaces which should be able to access ArgoCD. -== `resource_exclusions` +== `monitoring` -[horizontal] -type:: dictionary(list|dictionary) -default:: -+ -[source,yaml] ----- -cilium: -- apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" ----- -example:: -+ -[source,yaml] ----- -custom: -- apiGroups: - - custom.io - kinds: - - ClusterWrecker - clusters: - - "*" -backup: null ----- +This section configures monitoring for ArgoCD. -A dictionary of resource exclusions for the ArgoCD instance. -Those resources will not be managed by ArgoCD. +=== `monitoring.enabled` -The keys are the names of the exclusion groups. -Keys are not used, they are exclusively for hierarchical structuring. +[horizontal] +type:: bool +default:: `true` -The values are lists of resource definitions that should be excluded from the ArgoCD instance. -Those lists get concatenated. +If monitoring should be enabled for this component. +Requires the https://github.com/prometheus-operator/prometheus-operator[Prometheus Operator] to be installed. -Check https://argo-cd.readthedocs.io/en/stable/user-guide/resource_tracking/#additional-tracking-methods-via-an-annotation[ArgoCD documentation] for more information. +=== `monitoring.dashboards` -== `network_policies.enabled` [horizontal] -type:: boolean -default:: true +type:: bool +default:: `true` -Whether to enable NetworkPolicies that isolate ArgoCD from the rest of the cluster. +If dashboards should be enabled for this component. +Requires the https://github.com/integr8ly/grafana-operator[Grafana Operator] to be installed. + +=== `monitoring.prometheus_rule_labels` -== `network_policies.allow_from_namespaces` [horizontal] -type:: List(string) -default:: [] +type:: dict +default:: `{"prometheus":"platform"}` -Additional namespaces which should be able to access ArgoCD. +Labels to set on the alert rule configuration. +Can be used to ensure prometheus-operator picks up the `PrometheusRule` object by setting appropriate labels. + +== `resync_time` -== `override` [horizontal] -type:: dictionary -default:: {} +type:: string +default:: `3m0s` -Override specs of the ProjectSyn ArgoCD instance. +Resync interval. +Lower values mean quicker sync but higher CPU usage and more Git traffic. -== `images` +== `log_format` [horizontal] -type:: dictionary +type:: object +default:: ++ +[source,yaml] +---- +default: text +---- -Dictionary containing the container images used by this component. -Each entry follows the https://syn.tools/syn/explanations/commodore-components/container-images.html[Commodore component best practices] for specifying container images. +This parameter exposes the log format for the ArgoCD components. +By default, all components are configured to use the log format given for key `default`. +The log format can be customized for individual components by providing the desired log format in keys `server`, `application_controller` or `repo_server`. == `log_level` @@ -121,20 +108,103 @@ This parameter exposes the log level for the ArgoCD components. By default, all components are configured with the log level given in key `default`. The log level can be customized for individual components by providing the desired level in keys `server`, `application_controller` or `repo_server` -== `log_format` +== `override` +[horizontal] +type:: dictionary +default:: `{}` + +Override specs of the ProjectSyn ArgoCD instance. + +== `images` [horizontal] -type:: object +type:: dictionary + +Dictionary containing the container images used by this component. +Each entry follows the https://syn.tools/syn/explanations/commodore-components/container-images.html[Commodore component best practices] for specifying container images. + +== `instances` + +[horizontal] +type:: dictionary +default:: `{}` + +This section allows the definition of arbitrary `ArgoCD` instances, and associated `AppProject` resources. +The keys of this parameter are parsed as namespaced names (`/`) and used as namespaces and names of the created resources. + +[IMPORTANT] +.Namespace management +==== +. Each `ArgoCD` instance must be deployed to its own namespace +. You MUST create the target namespace _manually_ before deploying ArgoCD using this component + +Due to how Argo CD works, namespaces holding Argo CD instances cannot be created by other Argo CD instances. +==== + +=== Example + +[source,yaml] +---- +parameters: + argocd: + instances: + some-namespace/some-argocd: + config: + spec: + sso: + provider: dex + dex: + openShiftOAuth: true + ... + projects: + some-project: + spec: + clusterResourceWhitelist: [] + destinations: + - namespace: corp-* + server: https://kubernetes.default.svc +---- + +=== `instances./.config` + +[horizontal] +type:: dictionary default:: + [source,yaml] ---- -default: `text` +spec: + applicationInstanceLabelKey: ./instance ---- -This parameter exposes the log format for the ArgoCD components. -By default, all components are configured to use the log format given for key `default`. -The log format can be customized for individual components by providing the desired log format in keys `server`, `application_controller` or `repo_server`. +Plain configuration that will be merged verbatim into the created `ArgoCD` resource. + +See https://argocd-operator.readthedocs.io/en/latest/reference/argocd/[the `ArgoCD` reference of the Argo CD Operator] for available fields. + +To avoid common issues, some defaults are configured. +They can be overwritten via the inventory. + + +=== `instances./.projects` + +[horizontal] +type:: dictionary +default:: `{}` + +Arbitrary `AppProject` instances to be deployed on the cluster. + +The keys of this parameter are used as the generated resource's `metadata.name`, while the parent `ArgoCD`'s namespace will be inherited. + +See https://argo-cd.readthedocs.io/en/stable/user-guide/projects/[the `AppProject` reference of Argo CD] for available fields. + + +=== `instances./.projectDefaults` + +[horizontal] +type:: dictionary +default:: `{}` + +Default values that will be applied for all `AppProjects` created for this instance. == `resources` @@ -153,47 +223,55 @@ components. Keys correspond to different pods/containers: Users can remove configured requests and limits by setting any keys or subkeys in the dictionary to `null`. - -== `monitoring.enabled` +== `ssh_known_hosts` [horizontal] -type:: bool -default:: `true` +type:: string +default:: https://github.com/projectsyn/component-argocd/blob/master/class/defaults.yml[See `class/defaults.yml`] -If monitoring should be enabled for this component. -Requires the https://github.com/prometheus-operator/prometheus-operator[Prometheus Operator] to be installed. +SSH known hosts for Git servers. -== `monitoring.dashboards` +== `resource_exclusions` [horizontal] -type:: bool -default:: `true` - -If dashboards should be enabled for this component. -Requires the https://github.com/integr8ly/grafana-operator[Grafana Operator] to be installed. - -== `monitoring.prometheus_rule_labels` +type:: dictionary(list|dictionary) +default:: ++ +[source,yaml] +---- +cilium: +- apiGroups: + - cilium.io + kinds: + - CiliumIdentity + clusters: + - "*" +---- +example:: ++ +[source,yaml] +---- +custom: +- apiGroups: + - custom.io + kinds: + - ClusterWrecker + clusters: + - "*" +backup: null +---- -[horizontal] -type:: dict -default:: `{"prometheus":"platform"}` +A dictionary of resource exclusions for the ArgoCD instance. +Those resources will not be managed by ArgoCD. -Labels to set on the alert rule configuration. -Can be used to ensure prometheus-operator picks up the `PrometheusRule` object by setting appropriate labels. +The keys are the names of the exclusion groups. +Keys are not used, they are exclusively for hierarchical structuring. +The values are lists of resource definitions that should be excluded from the ArgoCD instance. +Those lists get concatenated. -== Example +Check https://argo-cd.readthedocs.io/en/stable/user-guide/resource_tracking/#additional-tracking-methods-via-an-annotation[ArgoCD documentation] for more information. -[source,yaml] ----- -parameters: - argocd: - resync_seconds: 3 - ssh_known_hosts: | - git.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO9EkPcVdsz/oVTI2VJkBlq8Mv/dg3rhcbgzAEKyiwUG - monitoring: - dashboards: true ----- == `operator` @@ -255,85 +333,16 @@ defaults:: https://github.com/projectsyn/component-argocd/blob/master/class/defa Kustomize inputs supplied to the argocd operator kustomization -== `instances` - -[horizontal] -type:: dictionary -default:: `{}` - -This section allows the definition of arbitrary `ArgoCD` instances, and associated `AppProject` resources. -The keys of this parameter are parsed as namespaced names (`/`) and used as namespaces and names of the created resources. - -[IMPORTANT] -.Namespace management -==== -. Each `ArgoCD` instance must be deployed to its own namespace -. You MUST create the target namespace _manually_ before deploying ArgoCD using this component - -Due to how Argo CD works, namespaces holding Argo CD instances cannot be created by other Argo CD instances. -==== - -=== Example +== Example [source,yaml] ---- parameters: argocd: - instances: - some-namespace/some-argocd: - config: - spec: - sso: - provider: dex - dex: - openShiftOAuth: true - ... - projects: - some-project: - spec: - clusterResourceWhitelist: [] - destinations: - - namespace: corp-* - server: https://kubernetes.default.svc ----- - -=== `instances./.config` - -[horizontal] -type:: dictionary -default:: -+ -[source,yaml] ----- -spec: - applicationInstanceLabelKey: ./instance + resync_seconds: 3 + ssh_known_hosts: | + git.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO9EkPcVdsz/oVTI2VJkBlq8Mv/dg3rhcbgzAEKyiwUG + monitoring: + dashboards: true ---- -Plain configuration that will be merged verbatim into the created `ArgoCD` resource. - -See https://argocd-operator.readthedocs.io/en/latest/reference/argocd/[the `ArgoCD` reference of the Argo CD Operator] for available fields. - -To avoid common issues, some defaults are configured. -They can be overwritten via the inventory. - - -=== `instances./.projects` - -[horizontal] -type:: dictionary -default:: `{}` - -Arbitrary `AppProject` instances to be deployed on the cluster. - -The keys of this parameter are used as the generated resource's `metadata.name`, while the parent `ArgoCD`'s namespace will be inherited. - -See https://argo-cd.readthedocs.io/en/stable/user-guide/projects/[the `AppProject` reference of Argo CD] for available fields. - - -=== `instances./.projectDefaults` - -[horizontal] -type:: dictionary -default:: `{}` - -Default values that will be applied for all `AppProjects` created for this instance.