DatabaseCluster

Un DatabaseCluster est un conteneur PostgreSQL pour une ou plusieurs bases de données. Plusieurs moteurs existent, notamment OVH (cluster de base de données managé, pour une utilisation en production) et CNPG (déploiement dans le cluster, non adapté à une utilisation en production).

Description

DatabaseCluster est le schéma pour l'API DatabaseCluster. Les lifecycles des DatabaseCluster sont indépendants du lifecycle des applications et doivent être créés au préalable. Une fois créé, une base de données doit être créée en référençant ce DatabaseCluster.

Spécification

Champ Type Description Requis Défaut
spec.parameters.name string Nom du DatabaseCluster à créer. Ce champ est immuable et ne peut pas être modifié ultérieurement. Oui -
spec.parameters.implementation string Implémentation du moteur à utiliser. Ce champ est immuable et ne peut pas être modifié ultérieurement. Valeurs possibles: cnpg, managed Oui -
spec.parameters.replicas integer Nombre de réplicas pour le DatabaseCluster. Pour la haute disponibilité, les utilisations en production doivent toujours définir cette valeur à plus de 1. Non 1
spec.parameters.ovh.plan string Plan à utiliser pour le cluster de base de données managé (uniquement utilisé lorsque le champ implementation est "managed"). Non essential
spec.parameters.ovh.flavor string Flavor à utiliser pour les instances de VM de support (uniquement utilisé lorsque le champ implementation est "managed"). Non db1-4
spec.parameters.ovh.authorized_ips array Un tableau d'adresses IP autorisées à se connecter au cluster (uniquement utilisé lorsque le champ implementation est "managed"). Non []
spec.parameters.cnpg.resources.requests.cpu string Requests de CPU (uniquement utilisé lorsque le champ implementation est "cnpg"). Non -
spec.parameters.cnpg.resources.requests.memory string Requests de mémoire (uniquement utilisé lorsque le champ implementation est "cnpg"). Non -
spec.parameters.cnpg.resources.limits.cpu string Limits de CPU (uniquement utilisé lorsque le champ implementation est "cnpg"). Non -
spec.parameters.cnpg.resources.limits.memory string Limits de mémoire (uniquement utilisé lorsque le champ implementation est "cnpg"). Non -
spec.parameters.version string Version de PostgreSQL Non 15
spec.parameters.diskSize integer Taille pour le stockage de la base de données, en GiB. Non 80
spec.parameters.zoneRef.name string Référence à une Zone qui hébergera le DatabaseCluster. Oui -
spec.parameters.secretDeliveryTargets array Liste des cibles auxquelles livrer le secret. Dans cette version, vous ne pouvez livrer des secrets qu'aux DeploymentTargets. Oui -

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
apiVersion: workspace.fabrique.social.gouv.fr/v1alpha1
kind: DatabaseCluster
metadata:
  name: my-databasecluster
# DatabaseClusterSpec defines the desired state of DatabaseCluster.
# For Atlas users, only the "parameters" field is relevant.
spec:
  # Parameters is where you define the desired parameters.
  parameters:
    # Only used when the implementation field is "cnpg".
    # CNPG specific parameters for the in-cluster deployment.
    cnpg:
      # CPU and memory requests/limits.
      resources:
        # CPU and memory limits.
        limits:
          # CPU limits.
          cpu: "50m"
          # Memory limits.
          memory: "256Mi"
        # CPU and memory requests.
        requests:
          # CPU requests.
          cpu: "50m"
          # Memory requests.
          memory: "256Mi"
    # Size for the database storage, in GiB.
    diskSize: 80
    # Engine implementation to use.
    # This field is immutable and cannot be changed afterwards.
    implementation: "cnpg" # "cnpg", "managed"
    # Name of the DatabaseCluster to create.
    # This field is immutable and cannot be changed afterwards.
    name: "my-databasecluster"
    # Only used when the implementation field is "managed".
    # OVH specific parameters for the managed database cluster.
    ovh:
      # An array of IP addresses authorized to connect to the cluster.
      authorized_ips: []
      # Flavor to use for the backing VM instances.
      flavor: "db1-4"
      # Plan to use for the managed database cluster.
      plan: "essential"
    # Number of replicas for the DatabaseCluster.
    # For High Availability, production uses should always set this
    # to a value greater than 1.
    replicas: 1
    # List of targets to deliver the secret to. As of this release, you can only deliver secrets to DeploymentTargets.
    # In the future, more targets will be supported.
    secretDeliveryTargets:
      - kind: "DeploymentTarget" # "DeploymentTarget"
        # Name of the referenced DeploymentTarget.
        name: "example-deployment-target"
    # PostgreSQL version
    version: "15"
    # Reference to a Zone that will host the Bucket.
    zoneRef:
      # Name of the referenced Zone.
      name: "dev"

Notes importantes

  • Le nom du DatabaseCluster doit être unique.
  • L'implémentation (cnpg ou managed) est immuable et ne peut pas être modifiée après la création.
  • Pour les environnements de production, il est recommandé d'utiliser l'implémentation managed et de définir replicas à une valeur supérieure à 1 pour la haute disponibilité.
  • L'implémentation cnpg n'est pas recommandée pour les environnements de production.
  • Les secrets d'accès à la base de données sont automatiquement livrés aux DeploymentTargets spécifiés dans secretDeliveryTargets.

Format des secrets livrés

Les secrets d'accès à la base de données sont livrés aux DeploymentTargets spécifiés dans le format JSON suivant :

```json { "url": "postgresql://username:password@host:port/database", "server": "host:port", "host": "host", "port": "port", "username": "username", "password": "password", "database": "database" }

Paramètres d’affichage

Choisissez un thème pour personnaliser l’apparence du site.

Paramètres d’affichage

Choisissez un thème pour personnaliser l’apparence du site.