Skip to content

Monorepo Controller Configuration

The configuration parameters, which are specific to the Monorepo Controler as well as those, that have to be configured separately from the rest of ArgoCD components, are configured using the argocd-monorepo-cmd-params-cm configmap.

Key Default Description
controller.log.level "info" Monorepo Controller log level
controller.log.format "text" Monorepo Controller log format (text or json)
controller.metrics.cache.expiration disabled by default Prometheus metrics cache expiration
controller.metrics.address "0.0.0.0" Controller's Metrics server will listen on given address
controller.metrics.port "8090" Controller's Metrics server will listen on given port
controller.repo.server argocd-monorepo-repo-server:8091" Monorepo Repo server address
controller.repo.server.plaintext "false" Use a non-TLS client to connect to repository server
controller.repo.server.strict.tls "false" Perform strict validation of monorepo repo server TLS certificates
controller.repo.server.timeout.seconds "60" Repo server RPC call timeout seconds.
reposerver.log.level "info" Monorepo Controller log level
reposerver.log.format "text" Monorepo Repo Server log format (text or json)
reposerver.parallelism.limit "0" - no limit Limit on number of concurrent manifests generate requests.
reposerver.listen.address "0.0.0.0" Repo Server will listen on given address for incoming connections
---------------------------------------- ----------------------------------- --------------------------------------------------------------------

The following parameters reuse ArgoCD configuration from ConfigMaps:

From argocd-cm:

  • timeout.reconciliation

From argocd-cmd-params-cm:

  • application.namespaces
  • otlp.address
  • otlp.insecure
  • otlp.headers
  • otlp.attrs
  • redis.server
  • redis.compression
  • redis.db
  • reposerver.disable.tls
  • reposerver.tls.minversion
  • reposerver.tls.maxversion
  • reposerver.tls.ciphers
  • reposerver.repo.cache.expiration
  • reposerver.default.cache.expiration
  • reposerver.max.combined.directory.manifests.size
  • reposerver.revision.cache.lock.timeout
  • reposerver.enable.git.submodule
  • reposerver.git.request.timeout
  • reposerver.grpc.max.size
  • reposerver.include.hidden.directories

From argocd-redis:

  • auth

Configure the desired log level of Monorepo Controller components.

While this step is optional, we recommend to set the log level explicitly. During your first steps with the Argo CD Monorepo Controller, a more verbose logging may help greatly in troubleshooting things.

Edit the value of the controller.log.level parameter in the ConfigMap argocd-monorepo-cmd-params-cm.

Configure namespaces for Application Manifests

In its default configuration Monorepo Controller will look for Application Manifests in the same namespaces that ArgoCD does. If you want to use a different list of namespaces (for example to limit load on the Monorepo Controller, or for troubleshooting purposes) you need to change the value of the ARGOCD_APPLICATION_NAMESPACES environment variable of the Monoripo Controller.

Configuring network policies

The Monorepo Controller installation using kustomize/manifests contains Metwork Policies manifest for it's components.

In the case when your Kubernetes cluster supports Network Policies, but your ArgoCD installation does not use network policies, you must disable them in the manifest or in the kustomize kustomization.yaml files.

The Helm Chart, however, has the Network Policies disabled by default (in line with the ArgoCD Helm Chart default). If your ArgoCD installation uses Network Policies, you should enable Network Policies installation using the global.networkPolicy.create: true parameter in your values.yaml.

Configuring notifications

See sample triggers and templates in samples/notifications.