Skip to content

deployer.yaml

Afin de deployer votre app, Deployer à besoin qu'on définisse les resources indispensables au bon fonctionnement de l'application. cette definition se fait dans le un manisfest à la racine du projet: deployer.yaml ( par defaut)

La configuration ci-dessous est une exemple de configuration globale du fichier deployer.yaml

Example

  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
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# le nom du project (requis)
name: "example"

# le type d'application à deployer
# Web (default) : pour les images docker
# Spa: pour lees applications Spa (VueJs, ReactJs, AngularJs, ...)
# Static: pour les applications statics ( HTML, ...)
# Infra: pour deployer l'infrastructure du projet sans deployer l'application 
codeType: "Web"

# databases mg et pg 
databases:
  pgs:
    - name: "test"
  mgs:
    - name: "test-mg"

# topics GCP/PUBSUB
topics:
   app:
    - name: "topicRealName"

# subscriptions GCP/PUBSUB
subscriptions:
  app:
  # subscription en mode push
  - name: "pubsub_push"
    topic: "topicRealName"
    labels:
      - "foo" =  "bar"
      - "bar =  foo"
    pushConfig:
       pushEndpoint: "https://example.com/push"
       attributes:
          - 'x-goog-version: "v1"'
    ackDeadlineSeconds: 20
    role: 'owner'

  # subscription en mode pull
  - name: "pubsub_pull"
    topic: "testprovider"
    labels:
      foo: bar
      bar: foo
    ack_deadline_seconds: 20
    message_retention_duration: "1200s"
    retain_acked_messages: true
    expiration_policy:
       ttl: 31 # If it is set but ttl is "", the resource never expires.
    role: 'viewer'

# Buckets
buckets:
  app:
    - name: "bucketname"

# fonctionnalités offertes par deployer
features:
  - nginx-php
  - jwt

# deployer définira un job contenant l'image de migration <registry_name>/<project_name>/<branche>:<migration_sha1> 
migration:
  enable: true
# si l'image de migration est la même quee celle de l'app
#   useAppImg: true
#   command: 
#     - /bin/sh
#     - -c
#     - <migration commande>

# Service au sens k8s, chaque service dépends des ports exposés dans l'image docker
services:
  - name: default
    port: 80
    isPublic: true
  - name: test
    port: 8080
    isPublic: true

# Liste de CIDR authorisée à accéder à l'application 
# 0.0.0.0/0 n'est pas conseillé (sécurité)
whitelistRange:
  - name: all
    cidrs:
      - x.x.x.x/0

# définir un project firebase actif dans un project GCP.
firebase:
  - enable: true
    project: project_name

# définir la liste des variables d'environnement
environmentVariables:
  - name: ENV
    value: value
  - ...

# par defaut (false), toutes les applications sont ouvertes au public dès la mise en prod
isInternalApp: false


cronJobs:
  - name: cron_name
    schedule: "* * * * *"
    image: string
    commands: []
  - ...

urlRedirects: 
  - source: old_path
    target: new_path

# 2 replicas par defaut
replicas: 2

#readinessProbe k8s
readinessProbe:
  httpGet:
    path: /
    port: 3000
  initialDelaySeconds: 180
  timeoutSeconds: 60
  periodSeconds: 30

livenessProbe: 
  httpGet:
    path: /
    port: 3000
  initialDelaySeconds: 180
  timeoutSeconds: 60
  periodSeconds: 30

# path vault pour recupérer les variables du projets
vaultSecretsPath: "vault/secret/path/"

namespace: "name"

labels: []

# juste pour des projets de type Spa
spaRootFile: []

# juste pour des projets de type Static
bucketObjectHeaders: []