-
Notifications
You must be signed in to change notification settings - Fork 2
/
manifest.yaml
255 lines (255 loc) · 7.83 KB
/
manifest.yaml
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
name: github.com/getoutreach/stencil-golang
## <<Stencil::Block(keys)>>
modules:
- name: github.com/getoutreach/devbase
version: ">=2.21.0"
type: templates,extension
arguments:
# The following terraform.datadog fields are used for Canary deployments in app.jsonnet.tpl
terraform.datadog.grpc.latency.thresholds.lowTraffic:
schema:
type: number
description: Overrides the low traffic threshold in the "grpc_latency_high" terraform module in monitoring/datadog.tf.
terraform.datadog.grpc.qos.thresholds.lowTraffic:
schema:
type: number
description: Overrides the low traffic threshold in the "grpc_latency_high" terraform module in monitoring/datadog.tf.
terraform.datadog.http.latency.thresholds.lowTraffic:
schema:
type: number
description: Overrides the low traffic threshold in the "http_latency_high" terraform module in monitoring/datadog.tf.
terraform.datadog.http.percentiles.lowTraffic:
schema:
type: number
description: Overrides the low traffic percentile in the "http_success_rate_low" terraform module in monitoring/datadog.tf.
terraform.datadog.podRestart.thresholds.lowCount:
schema:
type: number
description: Overrides the pod restarts threshold in the "pod_restarts" terraform module in monitoring/datadog.tf.
service:
schema:
type: boolean
description: Whether or not this application is a runnable service. This flag provides the service activity interface and everything necessary for releasing and deploying a service.
serviceActivities:
schema:
type: array
items:
type: string
enum:
- http
- grpc
- temporal
- kafka
- python
description: Any valid built-in service activities can be supplied here and they will be provided. The `service` flag must be set to true. Valid values for this are `http`, `grpc`, `temporal`, `python` and `kafka`.
aws.useKIAM:
schema:
type: boolean
default: true
description: Whether the application uses KIAM for IAM roles or IRSA roles for service accounts.
oss:
schema:
type: boolean
description: Deprecated, denotes this is an open source repository.
deprecated: true
commands:
schema:
type: array
items:
anyOf:
- type: string
- type: object
properties:
delibird:
type: boolean
description: |-
Opt into using using local files for tracing/session recording for usage with Delibird. This is used to prevent telemetry from leaving a user's
machine, without an accompanying daemon component running that uploads them to delibird. The primary usecase is for being OSS friendly.
unmanaged:
type: boolean
description: If true, stencil will not generate an entrypoint go file for this CLI (`cmd/<name>/<name>.go`), but still will build and distribute it.
description: List of CLI commands to generate for this repository
grpcClients:
schema:
type: array
items:
type: string
enum:
- node
- ruby
description: List of grpc clients to generate for this gRPC service. Type must include gRPC
reportingTeam:
schema:
type: string
description: ID of team that that manages the repository
kubernetes.groups:
schema:
type: array
items:
type: object
description: List of Kubernetes groups to generate
kubernetes.leaderElection:
schema:
type: boolean
default: true
description: Have stencil render code related to leader election for kubernetes operators/webhooks/controllers
kubernetes.useTopologyAwareRouting:
schema:
type: boolean
description: "Only applicable when `service` is true. This is a flag to enable topology aware routing in K8s for your service."
lintroller:
schema:
type: string
enum:
- platinum
- gold
- silver
- bronze
description: lintroller level to apply to this repository
default: platinum
metrics:
schema:
type: string
enum:
- datadog
- opentelemetry
- dual
description: Metrics collector to use (supports opentelemetry and datadog)
default: datadog
tracing:
schema:
type: string
enum:
- opentelemetry
descriptions: Tracing backend to send traces to
default: opentelemetry
slack:
schema:
type: string
description: Slack channel to send deployment messages into.
vaultSecrets:
schema:
type: array
items:
type: string
description: List of secrets to consume from Vault, if Vault is enabled in the box config
mixins:
schema:
type: array
items:
type: string
description: "List of mixins to also import. Set in override.jsonnet instead"
deprecated: true
dependencies.optional:
schema:
type: array
items:
type: string
description: Dependencies your repository needs, but not always (e.g. E2E tests).
dependencies.required:
schema:
type: array
items:
type: string
description: Dependencies your repository requires to run successfully no matter what.
deployment.serviceDomains:
description: The service domains that the service is deployed to.
schema:
type: array
deployment.environments:
description: A list of environments that the service is deployed to.
schema:
type: array
deployment.strategy:
description: The deployment strategy is the method used to deploy the application.
schema:
type: string
enum:
- "" # current default deployment strategy is RollingUpdate
- canary
default: ""
versions.go:
description: Go version to use
default: "1.23.3"
schema:
type:
- string
- number
versions.nodejs:
description: Nodejs version to use for build tooling (e.g., semantic-release)
default: "20.16.0"
schema:
type:
- string
- number
versions.grpcClients.nodejs:
description: Nodejs version to use for gRPC clients
default: "20.16.0"
schema:
type:
- string
- number
versions.grpcClients.ruby:
description: Ruby version to use for gRPC clients
default: "3.1.3"
schema:
type:
- string
- number
versions.alpine:
description: Alpine version to use
default: "3.18"
schema:
type:
- string
- number
enableCgo:
from: github.com/getoutreach/devbase
disableGrpcGeneration:
description: Disable gRPC generation
schema:
type: boolean
go.stanza:
description: Go stanza version
default: "1.23.0"
schema:
type:
- string
# HPA fields
hpa.enabled:
description: Enable HPA for the primary deployment
schema:
type: boolean
hpa.scaleDown.stabilizationWindowSeconds:
description: Stabilization window for HPA for scaling down
schema:
type: number
hpa.scaleUp.stabilizationWindowSeconds:
description: Stabilization window for HPA for scaling up
schema:
type: number
hpa.metrics.cpu.averageUtilization:
description: Use CPU average utilization for HPA
schema:
type: number
hpa.env.staging.maxReplicas:
description: Max replicas for staging envs
schema:
type: number
hpa.env.staging.minReplicas:
description: Min replicas for staging envs
schema:
type: number
hpa.env.production.maxReplicas:
description: Max replicas for production envs
schema:
type: number
hpa.env.production.minReplicas:
description: Min replicas for production envs
schema:
type: number
enableReloader:
description: Enable Reloader to cycle pods when secrets or configmaps are modified
schema:
type: boolean
## <</Stencil::Block>>