Deployment of a METIS module
Select and customize Application using module example
Download the files inside examples
folder for the different application of the module you want to install.
Configure the module
You may need to edit the file to update its configuration.
Read the specific module documentation to determine whether you should modify it or not. It is available as a README.md
in the module repository.
It's highly recommended to use tagged version of METIS modules instead of default configuration set on main branch of the module to prevent breaking changes that may occurs. To do this, you need to set the source.targetRevision
of each application you deploy with the wanted version of the METIS module.
Variables
The Applications provided as an example may integrate some values like <domain_name>
which need to be replaced by the actual value adapted to your METIS instance.
You will copy the examples/<app_name>.yaml
to a new yaml file stored in folder modules/<module_name>
and search and replace variable with a text editor.
A helm chart may be used as a source in this yaml file. In such a case, optional values from the ArgoCD application may override values defined in the official chart.
To override values in the ArgoCD application, you need to add field helm.valuesObject
and insert your values in this field
Example:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: ingress-nginx
namespace: argocd
spec:
destination:
namespace: ingress-nginx
server: https://kubernetes.default.svc
project: default
source:
repoURL: https://kubernetes.github.io/ingress-nginx
chart: ingress-nginx
targetRevision: 4.9.1
helm:
valuesObject:
controller:
extraArgs:
enable-ssl-passthrough: true
metrics:
enabled: false
serviceMonitor:
enabled: false
# default 30s from the chart
scrapeInterval: 2m
Manage secrets
METIS modules configuration do not store un-encrypted secrets by default. Refer to secrets in METIS page.
METIS modules will refer to Kubernetes secrets managed outside of the helm charts, and thus from Argo CD. See each module documentation for managing the corresponding secrets.
Some METIS modules use private container registry. Please ask METIS team for a robot account to use container images from there if needed.
Synchronization policy
By default, the applications of a module will be automatically synchronized with their Git repository every 3 minutes.
However, this synchronization does not include the removal of resources, neither the self-heal in case of manual edition of an application configuration in the platform.
You can turn on resource pruning and self-heal by updating the syncPolicy
in your ArgoCD Application with the following settings.
Go to Argo CD documentation to get the full list of available synchronization options.
Deploy the configured module
Deploy each application from the manifest files in the modules/<module_name>
directory to your Kubernetes cluster.