IBM Cloud Databases : PostgreSQL sur IBM Cloud
Introduction
Pour déployer l'application GitGuardian, une instance PostgreSQL est requise. Cette page est dédiée à vous aider à configurer PostgreSQL sur IBM Cloud en utilisant IBM Cloud Databases for PostgreSQL.
Haute disponibilité
IBM Cloud Databases for PostgreSQL déploie deux membres dans une configuration primaire et réplique avec basculement automatique. L'application se connecte à un point de terminaison unique ; le basculement peut provoquer une brève interruption.
Installation
Depuis la console IBM Cloud
Pour créer une instance PostgreSQL depuis la console IBM Cloud, nous recommandons de suivre la documentation officielle.
Vous devez définir les champs suivants :
- Définissez la
Versionsur une version PostgreSQL prise en charge. Nous recommandons PostgreSQL 17. - Définissez les
Service endpointssurPrivate. Le cluster GitGuardian atteint la base de données via le réseau privé IBM Cloud. - Allouez au moins 4 Go de RAM par membre. La capacité de connexion en dépend, voir Connexions ci-dessous.
- Définissez le mot de passe
adminaprès le provisionnement. Vous devez enregistrer cette valeur pour créer l'utilisateur de l'application.
En utilisant la CLI
ibmcloud resource service-instance-create <instance-name> databases-for-postgresql standard <region> \
--service-endpoints private \
-p '{"version":"17","members_host_flavor":"multitenant","members_memory_allocation_mb":"8192","members_disk_allocation_mb":"20480"}'
Les valeurs de mémoire et de disque sont des totaux partagés par les deux membres.
En utilisant Terraform
Pour créer une instance PostgreSQL en utilisant Terraform, vous avez besoin de la ressource suivante :
En plus des champs requis par Terraform, nous exigeons que les champs suivants soient définis :
service = "databases-for-postgresql"version = "17": une version PostgreSQL prise en charge.service_endpoints = "private": gardez la base de données hors de l'internet public.
Base de données et utilisateur
L'utilisateur admin d'IBM Cloud n'est pas un superutilisateur et ne peut pas transférer la propriété d'une
base de données à un autre utilisateur. Créez l'utilisateur de l'application avec la CLI, puis connectez-vous
en tant que cet utilisateur pour créer la base de données :
ibmcloud cdb deployment-user-create <instance-name> gim <password>
-- connected as gim
CREATE DATABASE prm;
La base de données appartient au rôle de groupe ibm-cloud-base-user d'IBM Cloud, dont
gim est membre, ce qui accorde les permissions dont GitGuardian a besoin.
Les extensions pg_trgm, btree_gin et pgvector requises par GitGuardian sont
disponibles sur IBM Cloud Databases for PostgreSQL 15 et versions ultérieures. GitGuardian les crée
lors de l'installation.
Connexions
La valeur par défaut de max_connections est 115, dont 100 sont utilisables. Augmentez-la avant la
première installation. IBM Cloud requiert au moins 2 Go de RAM par membre pour 215
connexions :
ibmcloud cdb deployment-configuration <instance-name> '{"configuration":{"max_connections":215}}'
TLS
TLS est obligatoire sur IBM Cloud Databases. Le certificat CA est intégré dans les détails de connexion :
ibmcloud cdb deployment-connections <instance-name> --user gim --endpoint-type private --output json
Décodez la valeur connection.postgres.certificate.certificate_base64 et passez-la
comme CA PostgreSQL, puis définissez le mode TLS sur verify-full. Voir
Configurer TLS.
postgresql:
host: '<instance-id>.<deployment-id>.private.databases.appdomain.cloud'
port: <port>
username: 'gim'
database: 'prm'
existingSecret: 'gitguardian-postgresql-secret'
existingSecretKeys:
password: 'POSTGRES_PASSWORD'
tls:
mode: 'verify-full'
existingSecret: 'gitguardian-postgresql-tls-secret'
existingSecretKeys:
caCrt: 'ca.crt'