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: []
|