Import
Important
Les fixtures doivent être importées uniquement sur une installation vierge de Canopsis.
L'import ne fonctionnera pas si des données sont déjà présentes dans la base de données MongoDB.
De plus, reconfigure embarquant des fixtures prédéfinies ; il faut donc s’assurer qu’une même collection ne soit pas présente dans deux fichiers .yml.
Dans certains cas, il pourra être nécessaire de vider ou de supprimer certains fichiers fournis par défaut.
Attention
L'extension .yml doit être respectée, .yaml n'est pas supportée.
Note
Selon le contexte, il faudra filtrer la sortie de l'export.
Par exemple, dans le cas de la collection user, ne garder uniquement que les users locaux ou comptes de service.
Placer le retour de l'export dans un fichier, par exemple, dans ./files/canopsis/reconfigure/fixtures/fixtures.yml
Editer votre fichier docker-compose.override.yml et surcharger le service reconfigure comme ci-dessous :
reconfigure:
volumes:
- ./files/canopsis/reconfigure/fixtures/fixtures.yml:/opt/canopsis/share/database/fixtures/fixtures.yml:ro
Exécuter le déploiement du docker compose :
docker compose up -d
Placer le retour de l'export dans un fichier, par exemple, dans /opt/canopsis/share/database/fixtures/fixtures.yml
Provisionner Canopsis :
set -o allexport; source /opt/canopsis/etc/go-engines-vars.conf; /opt/canopsis/bin/canopsis-reconfigure -migrate-postgres=true -edition pro
En helm, il est possible de réaliser l'import de 2 manières.
Avec un configmap :
Créer un configmap, par exemple cps-fixtures à l'aide du fichier contenant le retour de l'export précédemment réalisé.
kubectl create configmap cps-fixtures --from-file=fixtures.yml=fixtures.yml
Surcharger le job reconfigure comme ci-dessous :
reconfigure:
additionalVolumes:
- name: fixtures-volume # defined name into chart
configMap:
name: cps-fixtures
additionalVolumeMounts:
- name: fixtures-volume
mountPath: "/opt/canopsis/share/database/fixtures/fixtures.yml"
subPath: "fixtures.yml"
Déployer votre instance de Canopsis :
helm install canopsis-prod canopsis/canopsis-pro -f customer-values.yml
Avec un initcontainer, qui permet de récupérer l'export directement dans un fichier nommé all_fixtures.yml :
Surcharger le job reconfigure comme ci-dessous :
reconfigure:
useFixtures: true
initContainers:
- name: fixture-download
image: curlimages/curl:latest
imagePullPolicy: Always
command:
- sh
- -c
- >
curl -X POST https://demo.canopsis.net/api/v4/export-configuration
-o /opt/canopsis/share/database/fixtures/all_fixtures.yml
-H 'accept: application/x-yaml'
-H 'Content-Type: application/json'
-u root:root
-d '{"export":[
"configuration",
"user",
"role",
"permission",
"pbehavior",
"pbehavior_type",
"pbehavior_reason",
"pbehavior_exception",
"scenario",
"metaalarm",
"idle_rule",
"eventfilter",
"dynamic_infos",
"playlist",
"state_settings",
"broadcast",
"associative_table",
"notification",
"view",
"view_tab",
"widget",
"widget_filter",
"widget_template",
"view_group",
"instruction",
"job_config",
"job",
"resolve_rule",
"flapping_rule",
"user_preferences",
"kpi_filter",
"pattern",
"declare_ticket_rule",
"link_rule",
"map"]}'
volumeMounts:
- name: fixtures-volume
mountPath: /opt/canopsis/share/database/fixtures
Déployer votre instance de Canopsis :
helm install canopsis-prod canopsis/canopsis-pro -f customer-values.yml
Dans les logs du reconfigure, les lignes suivantes doivent être présentes :
../cmd/canopsis-reconfigure/main.go:199 > start mongo fixtures
../cmd/canopsis-reconfigure/main.go:215 > finish mongo fixtures