Documentation d’installation

L’installation de provoly se fait via un chart Helm et nécessite certains prérequis.

  • Cluster Kubernetes > 1.23

  • ElasticSearch

  • Kafka

  • Base de données postgresql

  • Keycloak

  • 2 buckets S3 (un pour des files, un autre pour des icons utilisés par le frontend)

De plus certaines dépendances peuvent être utiles pour la gestion d’éléments connexes

  • Stack Grafana Prometheus pour l’observabilité

  • Cert-manager

  • Gestion DNS pour configurer les noms de domaines sur votre load balancer

  • Ingress Controller pour le routing au sein du cluster Kubernetes

  • Certificat Wildcard stockés dans un secret Kubernetes

Déploiement

Pour déployer un chart, en considérant que les prérequis nécessaires sont remplis, utilisez la commande suivante sur votre cluster

helm upgrade --install oci://dh2wltsh.gra7.container-registry.ovh.net/provoly/provoly-demo provoly --version $PROVOLY_FRONT_VERSION --values values.yaml

Exemple de values.yaml

---
frontendUrl: YOUR_DOMAIN
wsUrl: YOUR_DOMAIN/api/ref/messages

backend:
  postgresql:
    secretKeyRefName: provoly-postgresql
    jdbcUrl: jdbc:postgresql://provoly-postgresql:5432/provoly

  provoly:
    sso_oauth:
      url: https://sso.YOUR_DOMAIN/auth/realms/provoly
      client_id: provoly
    elastic:
      publicCertsSecretKeyRef:
        name: elastic-data-es-http-certs-public
        key: ca.crt
      host: elastic-data-es-http
      secretKeyRef:
        name: elastic-data-es-elastic-user
        key: elastic
    kafka:
      # TODO Do we need 2 different variables, couldn't we use always bootstrap_servers_url ?
      bootstrap_servers_url: kafka-provoly-kafka-bootstrap:9092
      bootstrap_servers_url_brokers: kafka-provoly-kafka-brokers:9092
    kafka_auth:
      keycloak_client_id: kafka-oauth
    minio:
      url: https://YOUR_BUCKET
      filesBucketName: "dev-files"
      iconsBucketName: "dev-icons"
      region: "REGION"

  cors_allowed_origins:
    - https://frontend.YOUR_DOMAIN


  api_url: api.YOUR_DOMAIN

Documentation d’exploitation

Mise à jour

Déployer de nouveau l’application avec la nouvelle version et suivre les instructions éventuellement données pour la mise à jour.

Sauvegarde

Si vous utiliser Velero, des labels ont été ajoutés sur les ressources à sauvegarder pour permettre une sauvegarde. Cependant, pour la restauration, il est nécessaire d’interrompre les opérateurs afin d’éviter d’interférer avec la restauration de véléro.

Identifiants

Les identifiants pour accéder aux différents services peuvent être indiqués dans les valeurs des charts lors du déploiements. Il est alors de la responsabilité de la personne en charge du déploiement de s’assurer de leur confidentialité (via chiffrement du fichier de valeur par exemple)

Certains identifiants (l’accès Admin à Keycloak par exemple) peuvent être générés lors de l’installation. Les secrets sont alors disponible dans les secrets Kubernetes, sur le namespace ou l’application est déployée.