blob: 38b396e01114954e2d6cbd46cc737949b3354401 [file] [log] [blame]
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001configMap: {}
2service: {}
3deployment: {}
4daemonSet: {}
5statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02006Component :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02007_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02008 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02009 metadata: {
10 name: string
11 labels: {
12 component: string
13 }
14 }
15 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +010016 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020017 template: {
18 metadata: {
19 labels: {
20 component: string
21 app: string
22 domain: "prod"
23 }
24 }
25 spec: {
26 containers: [{
27 name: string
28 ports: []
29 }]
30 }
31 }
32 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020033}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +010034configMap: {}
35service: {}
36deployment: {}
37daemonSet: {}
38statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +020039Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020040_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +020041 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020042 metadata: {
43 name: string
44 labels: {
45 component: "frontend"
46 }
47 }
48 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +010049 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020050 template: {
51 metadata: {
52 labels: {
53 component: "frontend"
54 app: string
55 domain: "prod"
56 }
57 }
58 spec: {
59 containers: [{
60 name: string
61 ports: []
62 }]
63 }
64 }
65 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020066}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +010067configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +020068service: {
69 bartender: {
70 kind: "Service"
71 apiVersion: "v1"
72 metadata: {
73 name: "bartender"
74 labels: {
75 component: "frontend"
76 app: "bartender"
77 domain: "prod"
78 }
79 }
80 spec: {
81 selector: {
82 component: "frontend"
83 app: "bartender"
84 domain: "prod"
85 }
86 ports: [{
87 name: "client"
88 protocol: "TCP"
89 port: 7080
90 targetPort: 7080
91 }]
92 }
93 }
94}
95deployment: {
96 bartender: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +020097 Name :: "bartender"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +010098 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +010099 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200100 metadata: {
101 name: "bartender"
102 labels: {
103 component: "frontend"
104 }
105 }
106 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100107 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200108 template: {
109 metadata: {
110 labels: {
111 component: "frontend"
112 app: "bartender"
113 domain: "prod"
114 }
115 annotations: {
116 "prometheus.io.scrape": "true"
117 "prometheus.io.port": "7080"
118 }
119 }
120 spec: {
121 containers: [{
122 name: "bartender"
123 image: "gcr.io/myproj/bartender:v0.1.34"
124 args: []
125 ports: [{
126 containerPort: 7080
127 _export: true
128 }]
129 }]
130 }
131 }
132 replicas: 1
133 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200134 }
135}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100136daemonSet: {}
137statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200138Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200139_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200140 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200141 metadata: {
142 name: string
143 labels: {
144 component: "frontend"
145 }
146 }
147 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100148 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200149 template: {
150 metadata: {
151 labels: {
152 component: "frontend"
153 app: string
154 domain: "prod"
155 }
156 }
157 spec: {
158 containers: [{
159 name: string
160 ports: []
161 }]
162 }
163 }
164 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200165}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100166configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200167service: {
168 breaddispatcher: {
169 kind: "Service"
170 apiVersion: "v1"
171 metadata: {
172 name: "breaddispatcher"
173 labels: {
174 component: "frontend"
175 app: "breaddispatcher"
176 domain: "prod"
177 }
178 }
179 spec: {
180 selector: {
181 component: "frontend"
182 app: "breaddispatcher"
183 domain: "prod"
184 }
185 ports: [{
186 name: "client"
187 protocol: "TCP"
188 port: 7080
189 targetPort: 7080
190 }]
191 }
192 }
193}
194deployment: {
195 breaddispatcher: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200196 Name :: "breaddispatcher"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100197 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100198 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200199 metadata: {
200 name: "breaddispatcher"
201 labels: {
202 component: "frontend"
203 }
204 }
205 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100206 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200207 template: {
208 metadata: {
209 labels: {
210 component: "frontend"
211 app: "breaddispatcher"
212 domain: "prod"
213 }
214 annotations: {
215 "prometheus.io.scrape": "true"
216 "prometheus.io.port": "7080"
217 }
218 }
219 spec: {
220 containers: [{
221 name: "breaddispatcher"
222 image: "gcr.io/myproj/breaddispatcher:v0.3.24"
223 args: ["-etcd=etcd:2379", "-event-server=events:7788"]
224 ports: [{
225 containerPort: 7080
226 _export: true
227 }]
228 }]
229 }
230 }
231 replicas: 1
232 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200233 }
234}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100235daemonSet: {}
236statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200237Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200238_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200239 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200240 metadata: {
241 name: string
242 labels: {
243 component: "frontend"
244 }
245 }
246 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100247 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200248 template: {
249 metadata: {
250 labels: {
251 component: "frontend"
252 app: string
253 domain: "prod"
254 }
255 }
256 spec: {
257 containers: [{
258 name: string
259 ports: []
260 }]
261 }
262 }
263 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200264}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100265configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200266service: {
267 host: {
268 kind: "Service"
269 apiVersion: "v1"
270 metadata: {
271 name: "host"
272 labels: {
273 component: "frontend"
274 app: "host"
275 domain: "prod"
276 }
277 }
278 spec: {
279 selector: {
280 component: "frontend"
281 app: "host"
282 domain: "prod"
283 }
284 ports: [{
285 name: "client"
286 protocol: "TCP"
287 port: 7080
288 targetPort: 7080
289 }]
290 }
291 }
292}
293deployment: {
294 host: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200295 Name :: "host"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100296 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100297 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200298 metadata: {
299 name: "host"
300 labels: {
301 component: "frontend"
302 }
303 }
304 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100305 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200306 template: {
307 metadata: {
308 labels: {
309 component: "frontend"
310 app: "host"
311 domain: "prod"
312 }
313 annotations: {
314 "prometheus.io.scrape": "true"
315 "prometheus.io.port": "7080"
316 }
317 }
318 spec: {
319 containers: [{
320 name: "host"
321 image: "gcr.io/myproj/host:v0.1.10"
322 args: []
323 ports: [{
324 containerPort: 7080
325 _export: true
326 }]
327 }]
328 }
329 }
330 replicas: 2
331 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200332 }
333}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100334daemonSet: {}
335statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200336Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200337_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200338 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200339 metadata: {
340 name: string
341 labels: {
342 component: "frontend"
343 }
344 }
345 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100346 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200347 template: {
348 metadata: {
349 labels: {
350 component: "frontend"
351 app: string
352 domain: "prod"
353 }
354 }
355 spec: {
356 containers: [{
357 name: string
358 ports: []
359 }]
360 }
361 }
362 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200363}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100364configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200365service: {
366 maitred: {
367 kind: "Service"
368 apiVersion: "v1"
369 metadata: {
370 name: "maitred"
371 labels: {
372 component: "frontend"
373 app: "maitred"
374 domain: "prod"
375 }
376 }
377 spec: {
378 selector: {
379 component: "frontend"
380 app: "maitred"
381 domain: "prod"
382 }
383 ports: [{
384 name: "client"
385 protocol: "TCP"
386 port: 7080
387 targetPort: 7080
388 }]
389 }
390 }
391}
392deployment: {
393 maitred: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200394 Name :: "maitred"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100395 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100396 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200397 metadata: {
398 name: "maitred"
399 labels: {
400 component: "frontend"
401 }
402 }
403 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100404 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200405 template: {
406 metadata: {
407 labels: {
408 component: "frontend"
409 app: "maitred"
410 domain: "prod"
411 }
412 annotations: {
413 "prometheus.io.scrape": "true"
414 "prometheus.io.port": "7080"
415 }
416 }
417 spec: {
418 containers: [{
419 name: "maitred"
420 image: "gcr.io/myproj/maitred:v0.0.4"
421 args: []
422 ports: [{
423 containerPort: 7080
424 _export: true
425 }]
426 }]
427 }
428 }
429 replicas: 1
430 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200431 }
432}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100433daemonSet: {}
434statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200435Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200436_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200437 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200438 metadata: {
439 name: string
440 labels: {
441 component: "frontend"
442 }
443 }
444 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100445 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200446 template: {
447 metadata: {
448 labels: {
449 component: "frontend"
450 app: string
451 domain: "prod"
452 }
453 }
454 spec: {
455 containers: [{
456 name: string
457 ports: []
458 }]
459 }
460 }
461 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200462}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100463configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200464service: {
465 valeter: {
466 kind: "Service"
467 apiVersion: "v1"
468 metadata: {
469 name: "valeter"
470 labels: {
471 component: "frontend"
472 app: "valeter"
473 domain: "prod"
474 }
475 }
476 spec: {
477 selector: {
478 component: "frontend"
479 app: "valeter"
480 domain: "prod"
481 }
482 ports: [{
483 name: "http"
484 protocol: "TCP"
485 port: 8080
486 targetPort: 8080
487 }]
488 }
489 }
490}
491deployment: {
492 valeter: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200493 Name :: "valeter"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100494 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100495 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200496 metadata: {
497 name: "valeter"
498 labels: {
499 component: "frontend"
500 }
501 }
502 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100503 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200504 template: {
505 metadata: {
506 labels: {
507 component: "frontend"
508 app: "valeter"
509 domain: "prod"
510 }
511 annotations: {
512 "prometheus.io.scrape": "true"
513 "prometheus.io.port": "8080"
514 }
515 }
516 spec: {
517 containers: [{
518 name: "valeter"
519 image: "gcr.io/myproj/valeter:v0.0.4"
520 args: ["-http=:8080", "-etcd=etcd:2379"]
521 ports: [{
522 containerPort: 8080
523 _export: true
524 }]
525 }]
526 }
527 }
528 replicas: 1
529 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200530 }
531}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100532daemonSet: {}
533statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200534Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200535_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200536 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200537 metadata: {
538 name: string
539 labels: {
540 component: "frontend"
541 }
542 }
543 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100544 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200545 template: {
546 metadata: {
547 labels: {
548 component: "frontend"
549 app: string
550 domain: "prod"
551 }
552 }
553 spec: {
554 containers: [{
555 name: string
556 ports: []
557 }]
558 }
559 }
560 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200561}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100562configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200563service: {
564 waiter: {
565 kind: "Service"
566 apiVersion: "v1"
567 metadata: {
568 name: "waiter"
569 labels: {
570 component: "frontend"
571 app: "waiter"
572 domain: "prod"
573 }
574 }
575 spec: {
576 selector: {
577 component: "frontend"
578 app: "waiter"
579 domain: "prod"
580 }
581 ports: [{
582 name: "client"
583 protocol: "TCP"
584 port: 7080
585 targetPort: 7080
586 }]
587 }
588 }
589}
590deployment: {
591 waiter: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200592 Name :: "waiter"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100593 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100594 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200595 metadata: {
596 name: "waiter"
597 labels: {
598 component: "frontend"
599 }
600 }
601 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100602 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200603 template: {
604 metadata: {
605 labels: {
606 component: "frontend"
607 app: "waiter"
608 domain: "prod"
609 }
610 annotations: {
611 "prometheus.io.scrape": "true"
612 "prometheus.io.port": "7080"
613 }
614 }
615 spec: {
616 containers: [{
617 name: "waiter"
618 image: "gcr.io/myproj/waiter:v0.3.0"
619 ports: [{
620 containerPort: 7080
621 _export: true
622 }]
623 }]
624 }
625 }
626 replicas: 5
627 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200628 }
629}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100630daemonSet: {}
631statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200632Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200633_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200634 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200635 metadata: {
636 name: string
637 labels: {
638 component: "frontend"
639 }
640 }
641 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100642 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200643 template: {
644 metadata: {
645 labels: {
646 component: "frontend"
647 app: string
648 domain: "prod"
649 }
650 }
651 spec: {
652 containers: [{
653 name: string
654 ports: []
655 }]
656 }
657 }
658 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200659}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100660configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200661service: {
662 waterdispatcher: {
663 kind: "Service"
664 apiVersion: "v1"
665 metadata: {
666 name: "waterdispatcher"
667 labels: {
668 component: "frontend"
669 app: "waterdispatcher"
670 domain: "prod"
671 }
672 }
673 spec: {
674 selector: {
675 component: "frontend"
676 app: "waterdispatcher"
677 domain: "prod"
678 }
679 ports: [{
680 name: "http"
681 protocol: "TCP"
682 port: 7080
683 targetPort: 7080
684 }]
685 }
686 }
687}
688deployment: {
689 waterdispatcher: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200690 Name :: "waterdispatcher"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100691 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100692 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200693 metadata: {
694 name: "waterdispatcher"
695 labels: {
696 component: "frontend"
697 }
698 }
699 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100700 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200701 template: {
702 metadata: {
703 labels: {
704 component: "frontend"
705 app: "waterdispatcher"
706 domain: "prod"
707 }
708 annotations: {
709 "prometheus.io.scrape": "true"
710 "prometheus.io.port": "7080"
711 }
712 }
713 spec: {
714 containers: [{
715 name: "waterdispatcher"
716 image: "gcr.io/myproj/waterdispatcher:v0.0.48"
717 args: ["-http=:8080", "-etcd=etcd:2379"]
718 ports: [{
719 containerPort: 7080
720 _export: true
721 }]
722 }]
723 }
724 }
725 replicas: 1
726 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200727 }
728}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100729daemonSet: {}
730statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200731Component :: "frontend"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200732_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200733 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200734 metadata: {
735 name: string
736 labels: {
737 component: "frontend"
738 }
739 }
740 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100741 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200742 template: {
743 metadata: {
744 labels: {
745 component: "frontend"
746 app: string
747 domain: "prod"
748 }
749 }
750 spec: {
751 containers: [{
752 name: string
753 ports: []
754 }]
755 }
756 }
757 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200758}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100759configMap: {}
760service: {}
761deployment: {}
762daemonSet: {}
763statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200764Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200765_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200766 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200767 metadata: {
768 name: string
769 labels: {
770 component: "infra"
771 }
772 }
773 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100774 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200775 template: {
776 metadata: {
777 labels: {
778 component: "infra"
779 app: string
780 domain: "prod"
781 }
782 }
783 spec: {
784 containers: [{
785 name: string
786 ports: []
787 }]
788 }
789 }
790 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200791}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100792configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200793service: {
794 download: {
795 kind: "Service"
796 apiVersion: "v1"
797 metadata: {
798 name: "download"
799 labels: {
800 component: "infra"
801 app: "download"
802 domain: "prod"
803 }
804 }
805 spec: {
806 selector: {
807 component: "infra"
808 app: "download"
809 domain: "prod"
810 }
811 ports: [{
812 name: "client"
813 protocol: "TCP"
814 port: 7080
815 targetPort: 7080
816 }]
817 }
818 }
819}
820deployment: {
821 download: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200822 Name :: "download"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100823 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100824 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200825 metadata: {
826 name: "download"
827 labels: {
828 component: "infra"
829 }
830 }
831 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100832 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200833 template: {
834 metadata: {
835 labels: {
836 component: "infra"
837 app: "download"
838 domain: "prod"
839 }
840 }
841 spec: {
842 containers: [{
843 name: "download"
844 image: "gcr.io/myproj/download:v0.0.2"
845 ports: [{
846 containerPort: 7080
847 _export: true
848 }]
849 }]
850 }
851 }
852 replicas: 1
853 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200854 }
855}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100856daemonSet: {}
857statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200858Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200859_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200860 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200861 metadata: {
862 name: string
863 labels: {
864 component: "infra"
865 }
866 }
867 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100868 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200869 template: {
870 metadata: {
871 labels: {
872 component: "infra"
873 app: string
874 domain: "prod"
875 }
876 }
877 spec: {
878 containers: [{
879 name: string
880 ports: []
881 }]
882 }
883 }
884 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200885}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100886configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200887service: {
888 etcd: {
889 kind: "Service"
890 apiVersion: "v1"
891 metadata: {
892 name: "etcd"
893 labels: {
894 component: "infra"
895 app: "etcd"
896 domain: "prod"
897 }
898 }
899 spec: {
900 selector: {
901 component: "infra"
902 app: "etcd"
903 domain: "prod"
904 }
905 ports: [{
906 name: "client"
907 protocol: "TCP"
908 port: 2379
909 targetPort: 2379
910 }, {
911 name: "peer"
912 protocol: "TCP"
913 port: 2380
914 targetPort: 2380
915 }]
916 clusterIP: "None"
917 }
918 }
919}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100920deployment: {}
921daemonSet: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200922statefulSet: {
923 etcd: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +0200924 Name :: "etcd"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +0100925 kind: "StatefulSet"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +0100926 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200927 metadata: {
928 name: "etcd"
929 labels: {
930 component: "infra"
931 }
932 }
933 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +0100934 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +0200935 template: {
936 metadata: {
937 labels: {
938 component: "infra"
939 app: "etcd"
940 domain: "prod"
941 }
942 annotations: {
943 "prometheus.io.scrape": "true"
944 "prometheus.io.port": "2379"
945 }
946 }
947 spec: {
948 containers: [{
949 name: "etcd"
950 env: [{
951 name: "ETCDCTL_API"
952 value: "3"
953 }, {
954 name: "ETCD_AUTO_COMPACTION_RETENTION"
955 value: "4"
956 }, {
957 name: "NAME"
958 valueFrom: {
959 fieldRef: {
960 fieldPath: "metadata.name"
961 }
962 }
963 }, {
964 name: "IP"
965 valueFrom: {
966 fieldRef: {
967 fieldPath: "status.podIP"
968 }
969 }
970 }]
971 image: "quay.io/coreos/etcd:v3.3.10"
972 command: ["/usr/local/bin/etcd"]
973 args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"]
974 ports: [{
975 name: "client"
976 containerPort: 2379
977 _export: true
978 }, {
979 name: "peer"
980 containerPort: 2380
981 _export: true
982 }]
983 volumeMounts: [{
984 name: "etcd3"
985 mountPath: "/data"
986 }]
987 livenessProbe: {
988 initialDelaySeconds: 30
989 httpGet: {
990 path: "/health"
991 port: "client"
992 }
993 }
994 }]
995 terminationGracePeriodSeconds: 10
996 affinity: {
997 podAntiAffinity: {
998 requiredDuringSchedulingIgnoredDuringExecution: [{
999 labelSelector: {
1000 matchExpressions: [{
1001 key: "app"
1002 operator: "In"
1003 values: ["etcd"]
1004 }]
1005 }
1006 topologyKey: "kubernetes.io/hostname"
1007 }]
1008 }
1009 }
1010 }
1011 }
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001012 replicas: 3
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001013 volumeClaimTemplates: [{
1014 metadata: {
1015 name: "etcd3"
1016 annotations: {
1017 "volume.alpha.kubernetes.io/storage-class": "default"
1018 }
1019 }
1020 spec: {
1021 resources: {
1022 requests: {
1023 storage: "10Gi"
1024 }
1025 }
1026 accessModes: ["ReadWriteOnce"]
1027 }
1028 }]
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001029 serviceName: "etcd"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001030 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001031 }
1032}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001033Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001034_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001035 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001036 metadata: {
1037 name: string
1038 labels: {
1039 component: "infra"
1040 }
1041 }
1042 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001043 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001044 template: {
1045 metadata: {
1046 labels: {
1047 component: "infra"
1048 app: string
1049 domain: "prod"
1050 }
1051 }
1052 spec: {
1053 containers: [{
1054 name: string
1055 ports: []
1056 }]
1057 }
1058 }
1059 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001060}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001061configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001062service: {
1063 events: {
1064 kind: "Service"
1065 apiVersion: "v1"
1066 metadata: {
1067 name: "events"
1068 labels: {
1069 component: "infra"
1070 app: "events"
1071 domain: "prod"
1072 }
1073 }
1074 spec: {
1075 selector: {
1076 component: "infra"
1077 app: "events"
1078 domain: "prod"
1079 }
1080 ports: [{
1081 name: "grpc"
1082 protocol: "TCP"
1083 port: 7788
1084 targetPort: 7788
1085 }]
1086 }
1087 }
1088}
1089deployment: {
1090 events: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001091 Name :: "events"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001092 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001093 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001094 metadata: {
1095 name: "events"
1096 labels: {
1097 component: "infra"
1098 }
1099 }
1100 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001101 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001102 template: {
1103 metadata: {
1104 labels: {
1105 component: "infra"
1106 app: "events"
1107 domain: "prod"
1108 }
1109 annotations: {
1110 "prometheus.io.scrape": "true"
1111 "prometheus.io.port": "7080"
1112 }
1113 }
1114 spec: {
1115 volumes: [{
1116 name: "secret-volume"
1117 secret: {
1118 secretName: "biz-secrets"
1119 }
1120 }]
1121 containers: [{
1122 name: "events"
1123 image: "gcr.io/myproj/events:v0.1.31"
1124 args: ["-cert=/etc/ssl/server.pem", "-key=/etc/ssl/server.key", "-grpc=:7788"]
1125 ports: [{
1126 containerPort: 7080
1127 _export: false
1128 }, {
1129 containerPort: 7788
1130 _export: true
1131 }]
1132 volumeMounts: [{
1133 name: "secret-volume"
1134 mountPath: "/etc/ssl"
1135 }]
1136 }]
1137 affinity: {
1138 podAntiAffinity: {
1139 requiredDuringSchedulingIgnoredDuringExecution: [{
1140 labelSelector: {
1141 matchExpressions: [{
1142 key: "app"
1143 operator: "In"
1144 values: ["events"]
1145 }]
1146 }
1147 topologyKey: "kubernetes.io/hostname"
1148 }]
1149 }
1150 }
1151 }
1152 }
1153 replicas: 2
1154 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001155 }
1156}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001157daemonSet: {}
1158statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001159Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001160_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001161 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001162 metadata: {
1163 name: string
1164 labels: {
1165 component: "infra"
1166 }
1167 }
1168 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001169 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001170 template: {
1171 metadata: {
1172 labels: {
1173 component: "infra"
1174 app: string
1175 domain: "prod"
1176 }
1177 }
1178 spec: {
1179 containers: [{
1180 name: string
1181 ports: []
1182 }]
1183 }
1184 }
1185 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001186}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001187configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001188service: {
1189 tasks: {
1190 kind: "Service"
1191 apiVersion: "v1"
1192 metadata: {
1193 name: "tasks"
1194 labels: {
1195 component: "infra"
1196 app: "tasks"
1197 domain: "prod"
1198 }
1199 }
1200 spec: {
1201 type: "LoadBalancer"
1202 selector: {
1203 component: "infra"
1204 app: "tasks"
1205 domain: "prod"
1206 }
1207 ports: [{
1208 name: "http"
1209 protocol: "TCP"
1210 port: 443
1211 targetPort: 7443
1212 }]
1213 loadBalancerIP: "1.2.3.4"
1214 }
1215 }
1216}
1217deployment: {
1218 tasks: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001219 Name :: "tasks"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001220 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001221 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001222 metadata: {
1223 name: "tasks"
1224 labels: {
1225 component: "infra"
1226 }
1227 }
1228 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001229 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001230 template: {
1231 metadata: {
1232 labels: {
1233 component: "infra"
1234 app: "tasks"
1235 domain: "prod"
1236 }
1237 annotations: {
1238 "prometheus.io.scrape": "true"
1239 "prometheus.io.port": "7080"
1240 }
1241 }
1242 spec: {
1243 volumes: [{
1244 name: "secret-volume"
1245 secret: {
1246 secretName: "star-example-com-secrets"
1247 }
1248 }]
1249 containers: [{
1250 name: "tasks"
1251 image: "gcr.io/myproj/tasks:v0.2.6"
1252 ports: [{
1253 containerPort: 7080
1254 _export: false
1255 }, {
1256 containerPort: 7443
1257 _export: true
1258 }]
1259 volumeMounts: [{
1260 name: "secret-volume"
1261 mountPath: "/etc/ssl"
1262 }]
1263 }]
1264 }
1265 }
1266 replicas: 1
1267 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001268 }
1269}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001270daemonSet: {}
1271statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001272Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001273_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001274 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001275 metadata: {
1276 name: string
1277 labels: {
1278 component: "infra"
1279 }
1280 }
1281 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001282 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001283 template: {
1284 metadata: {
1285 labels: {
1286 component: "infra"
1287 app: string
1288 domain: "prod"
1289 }
1290 }
1291 spec: {
1292 containers: [{
1293 name: string
1294 ports: []
1295 }]
1296 }
1297 }
1298 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001299}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001300configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001301service: {
1302 updater: {
1303 kind: "Service"
1304 apiVersion: "v1"
1305 metadata: {
1306 name: "updater"
1307 labels: {
1308 component: "infra"
1309 app: "updater"
1310 domain: "prod"
1311 }
1312 }
1313 spec: {
1314 selector: {
1315 component: "infra"
1316 app: "updater"
1317 domain: "prod"
1318 }
1319 ports: [{
1320 name: "client"
1321 protocol: "TCP"
1322 port: 8080
1323 targetPort: 8080
1324 }]
1325 }
1326 }
1327}
1328deployment: {
1329 updater: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001330 Name :: "updater"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001331 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001332 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001333 metadata: {
1334 name: "updater"
1335 labels: {
1336 component: "infra"
1337 }
1338 }
1339 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001340 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001341 template: {
1342 metadata: {
1343 labels: {
1344 component: "infra"
1345 app: "updater"
1346 domain: "prod"
1347 }
1348 }
1349 spec: {
1350 volumes: [{
1351 name: "secret-updater"
1352 secret: {
1353 secretName: "updater-secrets"
1354 }
1355 }]
1356 containers: [{
1357 name: "updater"
1358 image: "gcr.io/myproj/updater:v0.1.0"
1359 args: ["-key=/etc/certs/updater.pem"]
1360 ports: [{
1361 containerPort: 8080
1362 _export: true
1363 }]
1364 volumeMounts: [{
1365 name: "secret-updater"
1366 mountPath: "/etc/certs"
1367 }]
1368 }]
1369 }
1370 }
1371 replicas: 1
1372 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001373 }
1374}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001375daemonSet: {}
1376statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001377Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001378_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001379 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001380 metadata: {
1381 name: string
1382 labels: {
1383 component: "infra"
1384 }
1385 }
1386 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001387 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001388 template: {
1389 metadata: {
1390 labels: {
1391 component: "infra"
1392 app: string
1393 domain: "prod"
1394 }
1395 }
1396 spec: {
1397 containers: [{
1398 name: string
1399 ports: []
1400 }]
1401 }
1402 }
1403 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001404}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001405configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001406service: {
1407 watcher: {
1408 kind: "Service"
1409 apiVersion: "v1"
1410 metadata: {
1411 name: "watcher"
1412 labels: {
1413 component: "infra"
1414 app: "watcher"
1415 domain: "prod"
1416 }
1417 }
1418 spec: {
1419 type: "LoadBalancer"
1420 selector: {
1421 component: "infra"
1422 app: "watcher"
1423 domain: "prod"
1424 }
1425 ports: [{
1426 name: "http"
1427 protocol: "TCP"
1428 port: 7788
1429 targetPort: 7788
1430 }]
1431 loadBalancerIP: "1.2.3.4."
1432 }
1433 }
1434}
1435deployment: {
1436 watcher: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001437 Name :: "watcher"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001438 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001439 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001440 metadata: {
1441 name: "watcher"
1442 labels: {
1443 component: "infra"
1444 }
1445 }
1446 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001447 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001448 template: {
1449 metadata: {
1450 labels: {
1451 component: "infra"
1452 app: "watcher"
1453 domain: "prod"
1454 }
1455 }
1456 spec: {
1457 volumes: [{
1458 name: "secret-volume"
1459 secret: {
1460 secretName: "star-example-com-secrets"
1461 }
1462 }]
1463 containers: [{
1464 name: "watcher"
1465 image: "gcr.io/myproj/watcher:v0.1.0"
1466 ports: [{
1467 containerPort: 7080
1468 _export: false
1469 }, {
1470 containerPort: 7788
1471 _export: true
1472 }]
1473 volumeMounts: [{
1474 name: "secret-volume"
1475 mountPath: "/etc/ssl"
1476 }]
1477 }]
1478 }
1479 }
1480 replicas: 1
1481 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001482 }
1483}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001484daemonSet: {}
1485statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001486Component :: "infra"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001487_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001488 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001489 metadata: {
1490 name: string
1491 labels: {
1492 component: "infra"
1493 }
1494 }
1495 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001496 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001497 template: {
1498 metadata: {
1499 labels: {
1500 component: "infra"
1501 app: string
1502 domain: "prod"
1503 }
1504 }
1505 spec: {
1506 containers: [{
1507 name: string
1508 ports: []
1509 }]
1510 }
1511 }
1512 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001513}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001514configMap: {}
1515service: {}
1516deployment: {}
1517daemonSet: {}
1518statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001519Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001520_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001521 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001522 metadata: {
1523 name: string
1524 labels: {
1525 component: "kitchen"
1526 }
1527 }
1528 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001529 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001530 template: {
1531 metadata: {
1532 labels: {
1533 component: "kitchen"
1534 app: string
1535 domain: "prod"
1536 }
1537 }
1538 spec: {
1539 containers: [{
1540 name: string
1541 ports: []
1542 }]
1543 }
1544 }
1545 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001546}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001547configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001548service: {
1549 caller: {
1550 kind: "Service"
1551 apiVersion: "v1"
1552 metadata: {
1553 name: "caller"
1554 labels: {
1555 component: "kitchen"
1556 app: "caller"
1557 domain: "prod"
1558 }
1559 }
1560 spec: {
1561 selector: {
1562 component: "kitchen"
1563 app: "caller"
1564 domain: "prod"
1565 }
1566 ports: [{
1567 name: "client"
1568 protocol: "TCP"
1569 port: 8080
1570 targetPort: 8080
1571 }]
1572 }
1573 }
1574}
1575deployment: {
1576 caller: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001577 Name :: "caller"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001578 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001579 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001580 metadata: {
1581 name: "caller"
1582 labels: {
1583 component: "kitchen"
1584 }
1585 }
1586 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001587 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001588 template: {
1589 metadata: {
1590 labels: {
1591 component: "kitchen"
1592 app: "caller"
1593 domain: "prod"
1594 }
1595 annotations: {
1596 "prometheus.io.scrape": "true"
1597 }
1598 }
1599 spec: {
1600 volumes: [{
1601 name: "ssd-caller"
1602 gcePersistentDisk: {
1603 fsType: "ext4"
1604 pdName: "ssd-caller"
1605 }
1606 }, {
1607 name: "secret-caller"
1608 secret: {
1609 secretName: "caller-secrets"
1610 }
1611 }, {
1612 name: "secret-ssh-key"
1613 secret: {
1614 secretName: "secrets"
1615 }
1616 }]
1617 containers: [{
1618 name: "caller"
1619 image: "gcr.io/myproj/caller:v0.20.14"
1620 args: ["-env=prod", "-key=/etc/certs/client.key", "-cert=/etc/certs/client.pem", "-ca=/etc/certs/servfx.ca", "-ssh-tunnel-key=/sslcerts/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"]
1621 ports: [{
1622 containerPort: 8080
1623 _export: true
1624 }]
1625 volumeMounts: [{
1626 name: "ssd-caller"
1627 mountPath: "/logs"
1628 }, {
1629 name: "secret-caller"
1630 readOnly: true
1631 mountPath: "/etc/certs"
1632 }, {
1633 name: "secret-ssh-key"
1634 readOnly: true
1635 mountPath: "/sslcerts"
1636 }]
1637 livenessProbe: {
1638 initialDelaySeconds: 40
1639 periodSeconds: 3
1640 httpGet: {
1641 path: "/debug/health"
1642 port: 8080
1643 }
1644 }
1645 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001646 hasDisks :: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001647 }
1648 }
1649 replicas: 3
1650 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001651 }
1652}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001653daemonSet: {}
1654statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001655Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001656_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001657 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001658 metadata: {
1659 name: string
1660 labels: {
1661 component: "kitchen"
1662 }
1663 }
1664 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001665 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001666 template: {
1667 metadata: {
1668 labels: {
1669 component: "kitchen"
1670 app: string
1671 domain: "prod"
1672 }
1673 }
1674 spec: {
1675 containers: [{
1676 name: string
1677 ports: []
1678 }]
1679 }
1680 }
1681 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001682}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001683configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001684service: {
1685 dishwasher: {
1686 kind: "Service"
1687 apiVersion: "v1"
1688 metadata: {
1689 name: "dishwasher"
1690 labels: {
1691 component: "kitchen"
1692 app: "dishwasher"
1693 domain: "prod"
1694 }
1695 }
1696 spec: {
1697 selector: {
1698 component: "kitchen"
1699 app: "dishwasher"
1700 domain: "prod"
1701 }
1702 ports: [{
1703 name: "client"
1704 protocol: "TCP"
1705 port: 8080
1706 targetPort: 8080
1707 }]
1708 }
1709 }
1710}
1711deployment: {
1712 dishwasher: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001713 Name :: "dishwasher"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001714 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001715 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001716 metadata: {
1717 name: "dishwasher"
1718 labels: {
1719 component: "kitchen"
1720 }
1721 }
1722 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001723 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001724 template: {
1725 metadata: {
1726 labels: {
1727 component: "kitchen"
1728 app: "dishwasher"
1729 domain: "prod"
1730 }
1731 annotations: {
1732 "prometheus.io.scrape": "true"
1733 }
1734 }
1735 spec: {
1736 volumes: [{
1737 name: "dishwasher-disk"
1738 gcePersistentDisk: {
1739 fsType: "ext4"
1740 pdName: "dishwasher-disk"
1741 }
1742 }, {
1743 name: "secret-dishwasher"
1744 secret: {
1745 secretName: "dishwasher-secrets"
1746 }
1747 }, {
1748 name: "secret-ssh-key"
1749 secret: {
1750 secretName: "dishwasher-secrets"
1751 }
1752 }]
1753 containers: [{
1754 name: "dishwasher"
1755 image: "gcr.io/myproj/dishwasher:v0.2.13"
1756 args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"]
1757 ports: [{
1758 containerPort: 8080
1759 _export: true
1760 }]
1761 volumeMounts: [{
1762 name: "dishwasher-disk"
1763 mountPath: "/logs"
1764 }, {
1765 name: "secret-dishwasher"
1766 readOnly: true
1767 mountPath: "/sslcerts"
1768 }, {
1769 name: "secret-ssh-key"
1770 readOnly: true
1771 mountPath: "/etc/certs"
1772 }]
1773 livenessProbe: {
1774 initialDelaySeconds: 40
1775 periodSeconds: 3
1776 httpGet: {
1777 path: "/debug/health"
1778 port: 8080
1779 }
1780 }
1781 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001782 hasDisks :: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001783 }
1784 }
1785 replicas: 5
1786 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001787 }
1788}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001789daemonSet: {}
1790statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001791Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001792_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001793 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001794 metadata: {
1795 name: string
1796 labels: {
1797 component: "kitchen"
1798 }
1799 }
1800 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001801 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001802 template: {
1803 metadata: {
1804 labels: {
1805 component: "kitchen"
1806 app: string
1807 domain: "prod"
1808 }
1809 }
1810 spec: {
1811 containers: [{
1812 name: string
1813 ports: []
1814 }]
1815 }
1816 }
1817 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001818}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001819configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001820service: {
1821 expiditer: {
1822 kind: "Service"
1823 apiVersion: "v1"
1824 metadata: {
1825 name: "expiditer"
1826 labels: {
1827 component: "kitchen"
1828 app: "expiditer"
1829 domain: "prod"
1830 }
1831 }
1832 spec: {
1833 selector: {
1834 component: "kitchen"
1835 app: "expiditer"
1836 domain: "prod"
1837 }
1838 ports: [{
1839 name: "client"
1840 protocol: "TCP"
1841 port: 8080
1842 targetPort: 8080
1843 }]
1844 }
1845 }
1846}
1847deployment: {
1848 expiditer: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001849 Name :: "expiditer"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001850 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001851 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001852 metadata: {
1853 name: "expiditer"
1854 labels: {
1855 component: "kitchen"
1856 }
1857 }
1858 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001859 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001860 template: {
1861 metadata: {
1862 labels: {
1863 component: "kitchen"
1864 app: "expiditer"
1865 domain: "prod"
1866 }
1867 annotations: {
1868 "prometheus.io.scrape": "true"
1869 }
1870 }
1871 spec: {
1872 volumes: [{
1873 name: "expiditer-disk"
1874 gcePersistentDisk: {
1875 fsType: "ext4"
1876 pdName: "expiditer-disk"
1877 }
1878 }, {
1879 name: "secret-expiditer"
1880 secret: {
1881 secretName: "expiditer-secrets"
1882 }
1883 }]
1884 containers: [{
1885 name: "expiditer"
1886 image: "gcr.io/myproj/expiditer:v0.5.34"
1887 args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788"]
1888 ports: [{
1889 containerPort: 8080
1890 _export: true
1891 }]
1892 volumeMounts: [{
1893 name: "expiditer-disk"
1894 mountPath: "/logs"
1895 }, {
1896 name: "secret-expiditer"
1897 readOnly: true
1898 mountPath: "/etc/certs"
1899 }]
1900 livenessProbe: {
1901 initialDelaySeconds: 40
1902 periodSeconds: 3
1903 httpGet: {
1904 path: "/debug/health"
1905 port: 8080
1906 }
1907 }
1908 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001909 hasDisks :: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001910 }
1911 }
1912 replicas: 1
1913 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001914 }
1915}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001916daemonSet: {}
1917statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001918Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001919_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001920 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001921 metadata: {
1922 name: string
1923 labels: {
1924 component: "kitchen"
1925 }
1926 }
1927 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001928 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001929 template: {
1930 metadata: {
1931 labels: {
1932 component: "kitchen"
1933 app: string
1934 domain: "prod"
1935 }
1936 }
1937 spec: {
1938 containers: [{
1939 name: string
1940 ports: []
1941 }]
1942 }
1943 }
1944 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001945}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001946configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001947service: {
1948 headchef: {
1949 kind: "Service"
1950 apiVersion: "v1"
1951 metadata: {
1952 name: "headchef"
1953 labels: {
1954 component: "kitchen"
1955 app: "headchef"
1956 domain: "prod"
1957 }
1958 }
1959 spec: {
1960 selector: {
1961 component: "kitchen"
1962 app: "headchef"
1963 domain: "prod"
1964 }
1965 ports: [{
1966 name: "client"
1967 protocol: "TCP"
1968 port: 8080
1969 targetPort: 8080
1970 }]
1971 }
1972 }
1973}
1974deployment: {
1975 headchef: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02001976 Name :: "headchef"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01001977 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01001978 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001979 metadata: {
1980 name: "headchef"
1981 labels: {
1982 component: "kitchen"
1983 }
1984 }
1985 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01001986 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02001987 template: {
1988 metadata: {
1989 labels: {
1990 component: "kitchen"
1991 app: "headchef"
1992 domain: "prod"
1993 }
1994 annotations: {
1995 "prometheus.io.scrape": "true"
1996 }
1997 }
1998 spec: {
1999 volumes: [{
2000 name: "headchef-disk"
2001 gcePersistentDisk: {
2002 fsType: "ext4"
2003 pdName: "headchef-disk"
2004 }
2005 }, {
2006 name: "secret-headchef"
2007 secret: {
2008 secretName: "headchef-secrets"
2009 }
2010 }]
2011 containers: [{
2012 name: "headchef"
2013 image: "gcr.io/myproj/headchef:v0.2.16"
2014 args: ["-env=prod", "-logdir=/logs", "-event-server=events:7788"]
2015 ports: [{
2016 containerPort: 8080
2017 _export: true
2018 }]
2019 volumeMounts: [{
2020 name: "headchef-disk"
2021 mountPath: "/logs"
2022 }, {
2023 name: "secret-headchef"
2024 readOnly: true
2025 mountPath: "/sslcerts"
2026 }]
2027 livenessProbe: {
2028 initialDelaySeconds: 40
2029 periodSeconds: 3
2030 httpGet: {
2031 path: "/debug/health"
2032 port: 8080
2033 }
2034 }
2035 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002036 hasDisks :: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002037 }
2038 }
2039 replicas: 1
2040 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002041 }
2042}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002043daemonSet: {}
2044statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002045Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002046_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002047 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002048 metadata: {
2049 name: string
2050 labels: {
2051 component: "kitchen"
2052 }
2053 }
2054 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002055 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002056 template: {
2057 metadata: {
2058 labels: {
2059 component: "kitchen"
2060 app: string
2061 domain: "prod"
2062 }
2063 }
2064 spec: {
2065 containers: [{
2066 name: string
2067 ports: []
2068 }]
2069 }
2070 }
2071 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002072}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002073configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002074service: {
2075 linecook: {
2076 kind: "Service"
2077 apiVersion: "v1"
2078 metadata: {
2079 name: "linecook"
2080 labels: {
2081 component: "kitchen"
2082 app: "linecook"
2083 domain: "prod"
2084 }
2085 }
2086 spec: {
2087 selector: {
2088 component: "kitchen"
2089 app: "linecook"
2090 domain: "prod"
2091 }
2092 ports: [{
2093 name: "client"
2094 protocol: "TCP"
2095 port: 8080
2096 targetPort: 8080
2097 }]
2098 }
2099 }
2100}
2101deployment: {
2102 linecook: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002103 Name :: "linecook"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01002104 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01002105 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002106 metadata: {
2107 name: "linecook"
2108 labels: {
2109 component: "kitchen"
2110 }
2111 }
2112 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002113 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002114 template: {
2115 metadata: {
2116 labels: {
2117 component: "kitchen"
2118 app: "linecook"
2119 domain: "prod"
2120 }
2121 annotations: {
2122 "prometheus.io.scrape": "true"
2123 }
2124 }
2125 spec: {
2126 volumes: [{
2127 name: "linecook-disk"
2128 gcePersistentDisk: {
2129 fsType: "ext4"
2130 pdName: "linecook-disk"
2131 }
2132 }, {
2133 name: "secret-kitchen"
2134 secret: {
2135 secretName: "secrets"
2136 }
2137 }]
2138 containers: [{
2139 name: "linecook"
2140 image: "gcr.io/myproj/linecook:v0.1.42"
2141 args: ["-name=linecook", "-env=prod", "-logdir=/logs", "-event-server=events:7788", "-etcd", "etcd:2379", "-reconnect-delay", "1h", "-recovery-overlap", "100000"]
2142 ports: [{
2143 containerPort: 8080
2144 _export: true
2145 }]
2146 volumeMounts: [{
2147 name: "linecook-disk"
2148 mountPath: "/logs"
2149 }, {
2150 name: "secret-kitchen"
2151 readOnly: true
2152 mountPath: "/etc/certs"
2153 }]
2154 livenessProbe: {
2155 initialDelaySeconds: 40
2156 periodSeconds: 3
2157 httpGet: {
2158 path: "/debug/health"
2159 port: 8080
2160 }
2161 }
2162 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002163 hasDisks :: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002164 }
2165 }
2166 replicas: 1
2167 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002168 }
2169}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002170daemonSet: {}
2171statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002172Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002173_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002174 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002175 metadata: {
2176 name: string
2177 labels: {
2178 component: "kitchen"
2179 }
2180 }
2181 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002182 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002183 template: {
2184 metadata: {
2185 labels: {
2186 component: "kitchen"
2187 app: string
2188 domain: "prod"
2189 }
2190 }
2191 spec: {
2192 containers: [{
2193 name: string
2194 ports: []
2195 }]
2196 }
2197 }
2198 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002199}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002200configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002201service: {
2202 pastrychef: {
2203 kind: "Service"
2204 apiVersion: "v1"
2205 metadata: {
2206 name: "pastrychef"
2207 labels: {
2208 component: "kitchen"
2209 app: "pastrychef"
2210 domain: "prod"
2211 }
2212 }
2213 spec: {
2214 selector: {
2215 component: "kitchen"
2216 app: "pastrychef"
2217 domain: "prod"
2218 }
2219 ports: [{
2220 name: "client"
2221 protocol: "TCP"
2222 port: 8080
2223 targetPort: 8080
2224 }]
2225 }
2226 }
2227}
2228deployment: {
2229 pastrychef: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002230 Name :: "pastrychef"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01002231 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01002232 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002233 metadata: {
2234 name: "pastrychef"
2235 labels: {
2236 component: "kitchen"
2237 }
2238 }
2239 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002240 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002241 template: {
2242 metadata: {
2243 labels: {
2244 component: "kitchen"
2245 app: "pastrychef"
2246 domain: "prod"
2247 }
2248 annotations: {
2249 "prometheus.io.scrape": "true"
2250 }
2251 }
2252 spec: {
2253 volumes: [{
2254 name: "pastrychef-disk"
2255 gcePersistentDisk: {
2256 fsType: "ext4"
2257 pdName: "pastrychef-disk"
2258 }
2259 }, {
2260 name: "secret-ssh-key"
2261 secret: {
2262 secretName: "secrets"
2263 }
2264 }]
2265 containers: [{
2266 name: "pastrychef"
2267 image: "gcr.io/myproj/pastrychef:v0.1.15"
2268 args: ["-env=prod", "-ssh-tunnel-key=/etc/certs/tunnel-private.pem", "-logdir=/logs", "-event-server=events:7788", "-reconnect-delay=1m", "-etcd=etcd:2379", "-recovery-overlap=10000"]
2269 ports: [{
2270 containerPort: 8080
2271 _export: true
2272 }]
2273 volumeMounts: [{
2274 name: "pastrychef-disk"
2275 mountPath: "/logs"
2276 }, {
2277 name: "secret-ssh-key"
2278 readOnly: true
2279 mountPath: "/etc/certs"
2280 }]
2281 livenessProbe: {
2282 initialDelaySeconds: 40
2283 periodSeconds: 3
2284 httpGet: {
2285 path: "/debug/health"
2286 port: 8080
2287 }
2288 }
2289 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002290 hasDisks :: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002291 }
2292 }
2293 replicas: 1
2294 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002295 }
2296}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002297daemonSet: {}
2298statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002299Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002300_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002301 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002302 metadata: {
2303 name: string
2304 labels: {
2305 component: "kitchen"
2306 }
2307 }
2308 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002309 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002310 template: {
2311 metadata: {
2312 labels: {
2313 component: "kitchen"
2314 app: string
2315 domain: "prod"
2316 }
2317 }
2318 spec: {
2319 containers: [{
2320 name: string
2321 ports: []
2322 }]
2323 }
2324 }
2325 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002326}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002327configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002328service: {
2329 souschef: {
2330 kind: "Service"
2331 apiVersion: "v1"
2332 metadata: {
2333 name: "souschef"
2334 labels: {
2335 component: "kitchen"
2336 app: "souschef"
2337 domain: "prod"
2338 }
2339 }
2340 spec: {
2341 selector: {
2342 component: "kitchen"
2343 app: "souschef"
2344 domain: "prod"
2345 }
2346 ports: [{
2347 name: "client"
2348 protocol: "TCP"
2349 port: 8080
2350 targetPort: 8080
2351 }]
2352 }
2353 }
2354}
2355deployment: {
2356 souschef: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002357 Name :: "souschef"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01002358 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01002359 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002360 metadata: {
2361 name: "souschef"
2362 labels: {
2363 component: "kitchen"
2364 }
2365 }
2366 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002367 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002368 template: {
2369 metadata: {
2370 labels: {
2371 component: "kitchen"
2372 app: "souschef"
2373 domain: "prod"
2374 }
2375 annotations: {
2376 "prometheus.io.scrape": "true"
2377 }
2378 }
2379 spec: {
2380 containers: [{
2381 name: "souschef"
2382 image: "gcr.io/myproj/souschef:v0.5.3"
2383 ports: [{
2384 containerPort: 8080
2385 _export: true
2386 }]
2387 livenessProbe: {
2388 initialDelaySeconds: 40
2389 periodSeconds: 3
2390 httpGet: {
2391 path: "/debug/health"
2392 port: 8080
2393 }
2394 }
2395 }]
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002396 hasDisks :: false
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002397 }
2398 }
2399 replicas: 1
2400 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002401 }
2402}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002403daemonSet: {}
2404statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002405Component :: "kitchen"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002406_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002407 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002408 metadata: {
2409 name: string
2410 labels: {
2411 component: "kitchen"
2412 }
2413 }
2414 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002415 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002416 template: {
2417 metadata: {
2418 labels: {
2419 component: "kitchen"
2420 app: string
2421 domain: "prod"
2422 }
2423 }
2424 spec: {
2425 containers: [{
2426 name: string
2427 ports: []
2428 }]
2429 }
2430 }
2431 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002432}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002433configMap: {}
2434service: {}
2435deployment: {}
2436daemonSet: {}
2437statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002438Component :: "mon"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002439_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002440 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002441 metadata: {
2442 name: string
2443 labels: {
2444 component: "mon"
2445 }
2446 }
2447 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002448 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002449 template: {
2450 metadata: {
2451 labels: {
2452 component: "mon"
2453 app: string
2454 domain: "prod"
2455 }
2456 }
2457 spec: {
2458 containers: [{
2459 name: string
2460 ports: []
2461 }]
2462 }
2463 }
2464 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002465}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002466configMap: {
2467 alertmanager: {
2468 kind: "ConfigMap"
2469 apiVersion: "v1"
2470 metadata: {
2471 name: "alertmanager"
2472 labels: {
2473 component: "mon"
2474 }
2475 }
2476 data: {
2477 "alerts.yaml": """
2478 receivers:
Marcel van Lohuizencf727962020-02-26 13:01:52 +01002479 - name: pager
2480 slack_configs:
2481 - text: |-
2482 {{ range .Alerts }}{{ .Annotations.description }}
2483 {{ end }}
2484 channel: '#cloudmon'
2485 send_resolved: true
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002486 route:
Marcel van Lohuizencf727962020-02-26 13:01:52 +01002487 receiver: pager
2488 group_by:
2489 - alertname
2490 - cluster
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002491
2492 """
2493 }
2494 }
2495}
2496service: {
2497 alertmanager: {
2498 kind: "Service"
2499 apiVersion: "v1"
2500 metadata: {
2501 name: "alertmanager"
2502 labels: {
2503 name: "alertmanager"
2504 component: "mon"
2505 app: "alertmanager"
2506 domain: "prod"
2507 }
2508 annotations: {
2509 "prometheus.io/scrape": "true"
2510 "prometheus.io/path": "/metrics"
2511 }
2512 }
2513 spec: {
2514 selector: {
2515 name: "alertmanager"
2516 component: "mon"
2517 app: "alertmanager"
2518 domain: "prod"
2519 }
2520 ports: [{
2521 name: "main"
2522 protocol: "TCP"
2523 port: 9093
2524 targetPort: 9093
2525 }]
2526 }
2527 }
2528}
2529deployment: {
2530 alertmanager: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002531 Name :: "alertmanager"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01002532 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01002533 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002534 metadata: {
2535 name: "alertmanager"
2536 labels: {
2537 component: "mon"
2538 }
2539 }
2540 spec: {
2541 selector: {
2542 matchLabels: {
2543 app: "alertmanager"
2544 }
2545 }
2546 template: {
2547 metadata: {
2548 name: "alertmanager"
2549 labels: {
2550 component: "mon"
2551 app: "alertmanager"
2552 domain: "prod"
2553 }
2554 }
2555 spec: {
2556 volumes: [{
2557 name: "config-volume"
2558 configMap: {
2559 name: "alertmanager"
2560 }
2561 }, {
2562 name: "alertmanager"
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002563 emptyDir: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002564 }]
2565 containers: [{
2566 name: "alertmanager"
2567 image: "prom/alertmanager:v0.15.2"
2568 args: ["--config.file=/etc/alertmanager/alerts.yaml", "--storage.path=/alertmanager", "--web.external-url=https://alertmanager.example.com"]
2569 ports: [{
2570 name: "alertmanager"
2571 containerPort: 9093
2572 _export: true
2573 }]
2574 volumeMounts: [{
2575 name: "config-volume"
2576 mountPath: "/etc/alertmanager"
2577 }, {
2578 name: "alertmanager"
2579 mountPath: "/alertmanager"
2580 }]
2581 }]
2582 }
2583 }
2584 replicas: 1
2585 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002586 }
2587}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002588daemonSet: {}
2589statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002590Component :: "mon"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002591_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002592 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002593 metadata: {
2594 name: string
2595 labels: {
2596 component: "mon"
2597 }
2598 }
2599 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002600 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002601 template: {
2602 metadata: {
2603 labels: {
2604 component: "mon"
2605 app: string
2606 domain: "prod"
2607 }
2608 }
2609 spec: {
2610 containers: [{
2611 name: string
2612 ports: []
2613 }]
2614 }
2615 }
2616 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002617}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002618configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002619service: {
2620 grafana: {
2621 kind: "Service"
2622 apiVersion: "v1"
2623 metadata: {
2624 name: "grafana"
2625 labels: {
2626 component: "mon"
2627 app: "grafana"
2628 domain: "prod"
2629 }
2630 }
2631 spec: {
2632 selector: {
2633 component: "mon"
2634 app: "grafana"
2635 domain: "prod"
2636 }
2637 ports: [{
2638 name: "grafana"
2639 protocol: "TCP"
2640 port: 3000
2641 targetPort: 3000
2642 }]
2643 }
2644 }
2645}
2646deployment: {
2647 grafana: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002648 Name :: "grafana"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01002649 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01002650 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002651 metadata: {
2652 name: "grafana"
2653 labels: {
2654 component: "mon"
2655 app: "grafana"
2656 }
2657 }
2658 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002659 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002660 template: {
2661 metadata: {
2662 labels: {
2663 component: "mon"
2664 app: "grafana"
2665 domain: "prod"
2666 }
2667 }
2668 spec: {
2669 volumes: [{
2670 name: "grafana-volume"
2671 gcePersistentDisk: {
2672 fsType: "ext4"
2673 pdName: "grafana-volume"
2674 }
2675 }]
2676 containers: [{
2677 name: "grafana"
2678 env: [{
2679 name: "GF_AUTH_BASIC_ENABLED"
2680 value: "false"
2681 }, {
2682 name: "GF_AUTH_ANONYMOUS_ENABLED"
2683 value: "true"
2684 }, {
2685 name: "GF_AUTH_ANONYMOUS_ORG_ROLE"
2686 value: "admin"
2687 }]
2688 resources: {
2689 limits: {
2690 cpu: "100m"
2691 memory: "100Mi"
2692 }
2693 requests: {
2694 cpu: "100m"
2695 memory: "100Mi"
2696 }
2697 }
2698 image: "grafana/grafana:4.5.2"
2699 ports: [{
2700 containerPort: 8080
2701 _export: true
2702 }]
2703 volumeMounts: [{
2704 name: "grafana-volume"
2705 mountPath: "/var/lib/grafana"
2706 }]
2707 }]
2708 }
2709 }
2710 replicas: 1
2711 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002712 }
2713}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002714daemonSet: {}
2715statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002716Component :: "mon"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002717_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002718 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002719 metadata: {
2720 name: string
2721 labels: {
2722 component: "mon"
2723 }
2724 }
2725 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002726 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002727 template: {
2728 metadata: {
2729 labels: {
2730 component: "mon"
2731 app: string
2732 domain: "prod"
2733 }
2734 }
2735 spec: {
2736 containers: [{
2737 name: string
2738 ports: []
2739 }]
2740 }
2741 }
2742 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002743}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002744configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002745service: {
2746 "node-exporter": {
2747 kind: "Service"
2748 apiVersion: "v1"
2749 metadata: {
2750 name: "node-exporter"
2751 labels: {
2752 component: "mon"
2753 app: "node-exporter"
2754 domain: "prod"
2755 }
2756 annotations: {
2757 "prometheus.io/scrape": "true"
2758 }
2759 }
2760 spec: {
2761 type: "ClusterIP"
2762 selector: {
2763 component: "mon"
2764 app: "node-exporter"
2765 domain: "prod"
2766 }
2767 ports: [{
2768 name: "metrics"
2769 protocol: "TCP"
2770 port: 9100
2771 targetPort: 9100
2772 }]
2773 clusterIP: "None"
2774 }
2775 }
2776}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002777deployment: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002778daemonSet: {
2779 "node-exporter": {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002780 Name :: "node-exporter"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01002781 kind: "DaemonSet"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01002782 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002783 metadata: {
2784 name: "node-exporter"
2785 labels: {
2786 component: "mon"
2787 }
2788 }
2789 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002790 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002791 template: {
2792 metadata: {
2793 name: "node-exporter"
2794 labels: {
2795 component: "mon"
2796 app: "node-exporter"
2797 domain: "prod"
2798 }
2799 }
2800 spec: {
2801 volumes: [{
2802 name: "proc"
2803 hostPath: {
2804 path: "/proc"
2805 }
2806 }, {
2807 name: "sys"
2808 hostPath: {
2809 path: "/sys"
2810 }
2811 }]
2812 containers: [{
2813 name: "node-exporter"
2814 resources: {
2815 limits: {
2816 cpu: "200m"
2817 memory: "50Mi"
2818 }
2819 requests: {
2820 cpu: "100m"
2821 memory: "30Mi"
2822 }
2823 }
2824 image: "quay.io/prometheus/node-exporter:v0.16.0"
2825 args: ["--path.procfs=/host/proc", "--path.sysfs=/host/sys"]
2826 ports: [{
2827 name: "scrape"
2828 hostPort: 9100
2829 containerPort: 9100
2830 _export: true
2831 }]
2832 volumeMounts: [{
2833 name: "proc"
2834 readOnly: true
2835 mountPath: "/host/proc"
2836 }, {
2837 name: "sys"
2838 readOnly: true
2839 mountPath: "/host/sys"
2840 }]
2841 }]
2842 hostNetwork: true
2843 hostPID: true
2844 }
2845 }
2846 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002847 }
2848}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002849statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002850Component :: "mon"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002851_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02002852 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002853 metadata: {
2854 name: string
2855 labels: {
2856 component: "mon"
2857 }
2858 }
2859 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01002860 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002861 template: {
2862 metadata: {
2863 labels: {
2864 component: "mon"
2865 app: string
2866 domain: "prod"
2867 }
2868 }
2869 spec: {
2870 containers: [{
2871 name: string
2872 ports: []
2873 }]
2874 }
2875 }
2876 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002877}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002878configMap: {
2879 prometheus: {
2880 kind: "ConfigMap"
2881 apiVersion: "v1"
2882 metadata: {
2883 name: "prometheus"
2884 labels: {
2885 component: "mon"
2886 }
2887 }
2888 data: {
2889 "alert.rules": """
2890 groups:
Marcel van Lohuizencf727962020-02-26 13:01:52 +01002891 - name: rules.yaml
2892 rules:
2893 - labels:
2894 severity: page
2895 annotations:
2896 description: '{{$labels.app}} of job {{ $labels.job }} has been down for
2897 more than 30 seconds.'
2898 summary: Instance {{$labels.app}} down
2899 alert: InstanceDown
2900 expr: up == 0
2901 for: 30s
2902 - labels:
2903 severity: page
2904 annotations:
2905 description: If one more etcd peer goes down the cluster will be unavailable
2906 summary: etcd cluster small
2907 alert: InsufficientPeers
2908 expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
2909 for: 3m
2910 - labels:
2911 severity: page
2912 annotations:
2913 summary: No ETCD master elected.
2914 alert: EtcdNoMaster
2915 expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
2916 for: 1s
2917 - labels:
2918 severity: page
2919 annotations:
2920 description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value
2921 }} times in 5m.'
2922 summary: Pod for {{$labels.container}} restarts too often
2923 alert: PodRestart
2924 expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
2925 > 2
2926 for: 1m
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002927
2928 """
2929 "prometheus.yml": """
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002930 global:
Marcel van Lohuizencf727962020-02-26 13:01:52 +01002931 scrape_interval: 15s
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002932 rule_files:
Marcel van Lohuizencf727962020-02-26 13:01:52 +01002933 - /etc/prometheus/alert.rules
2934 alerting:
2935 alertmanagers:
2936 - scheme: http
2937 static_configs:
2938 - targets:
2939 - alertmanager:9093
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02002940 scrape_configs:
Marcel van Lohuizencf727962020-02-26 13:01:52 +01002941 - scheme: https
2942 job_name: kubernetes-apiservers
2943 kubernetes_sd_configs:
2944 - role: endpoints
2945 tls_config:
2946 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
2947 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
2948 relabel_configs:
2949 - action: keep
2950 source_labels:
2951 - __meta_kubernetes_namespace
2952 - __meta_kubernetes_service_name
2953 - __meta_kubernetes_endpoint_port_name
2954 regex: default;kubernetes;https
2955 - scheme: https
2956 job_name: kubernetes-nodes
2957 kubernetes_sd_configs:
2958 - role: node
2959 tls_config:
2960 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
2961 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
2962 relabel_configs:
2963 - action: labelmap
2964 regex: __meta_kubernetes_node_label_(.+)
2965 - target_label: __address__
2966 replacement: kubernetes.default.svc:443
2967 - source_labels:
2968 - __meta_kubernetes_node_name
2969 regex: (.+)
2970 target_label: __metrics_path__
2971 replacement: /api/v1/nodes/${1}/proxy/metrics
2972 - scheme: https
2973 job_name: kubernetes-cadvisor
2974 kubernetes_sd_configs:
2975 - role: node
2976 tls_config:
2977 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
2978 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
2979 relabel_configs:
2980 - action: labelmap
2981 regex: __meta_kubernetes_node_label_(.+)
2982 - target_label: __address__
2983 replacement: kubernetes.default.svc:443
2984 - source_labels:
2985 - __meta_kubernetes_node_name
2986 regex: (.+)
2987 target_label: __metrics_path__
2988 replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
2989 - job_name: kubernetes-service-endpoints
2990 kubernetes_sd_configs:
2991 - role: endpoints
2992 relabel_configs:
2993 - action: keep
2994 source_labels:
2995 - __meta_kubernetes_service_annotation_prometheus_io_scrape
2996 regex: true
2997 - action: replace
2998 source_labels:
2999 - __meta_kubernetes_service_annotation_prometheus_io_scheme
3000 regex: (https?)
3001 target_label: __scheme__
3002 - action: replace
3003 source_labels:
3004 - __meta_kubernetes_service_annotation_prometheus_io_path
3005 regex: (.+)
3006 target_label: __metrics_path__
3007 - action: replace
3008 source_labels:
3009 - __address__
3010 - __meta_kubernetes_service_annotation_prometheus_io_port
3011 regex: ([^:]+)(?::\\d+)?;(\\d+)
3012 target_label: __address__
3013 replacement: $1:$2
3014 - action: labelmap
3015 regex: __meta_kubernetes_service_label_(.+)
3016 - action: replace
3017 source_labels:
3018 - __meta_kubernetes_namespace
3019 target_label: kubernetes_namespace
3020 - action: replace
3021 source_labels:
3022 - __meta_kubernetes_service_name
3023 target_label: kubernetes_name
3024 - job_name: kubernetes-services
3025 kubernetes_sd_configs:
3026 - role: service
3027 relabel_configs:
3028 - action: keep
3029 source_labels:
3030 - __meta_kubernetes_service_annotation_prometheus_io_probe
3031 regex: true
3032 - source_labels:
3033 - __address__
3034 target_label: __param_target
3035 - target_label: __address__
3036 replacement: blackbox-exporter.example.com:9115
3037 - source_labels:
3038 - __param_target
3039 target_label: app
3040 - action: labelmap
3041 regex: __meta_kubernetes_service_label_(.+)
3042 - source_labels:
3043 - __meta_kubernetes_namespace
3044 target_label: kubernetes_namespace
3045 - source_labels:
3046 - __meta_kubernetes_service_name
3047 target_label: kubernetes_name
3048 metrics_path: /probe
3049 params:
3050 module:
3051 - http_2xx
3052 - job_name: kubernetes-ingresses
3053 kubernetes_sd_configs:
3054 - role: ingress
3055 relabel_configs:
3056 - action: keep
3057 source_labels:
3058 - __meta_kubernetes_ingress_annotation_prometheus_io_probe
3059 regex: true
3060 - source_labels:
3061 - __meta_kubernetes_ingress_scheme
3062 - __address__
3063 - __meta_kubernetes_ingress_path
3064 regex: (.+);(.+);(.+)
3065 target_label: __param_target
3066 replacement: ${1}://${2}${3}
3067 - target_label: __address__
3068 replacement: blackbox-exporter.example.com:9115
3069 - source_labels:
3070 - __param_target
3071 target_label: app
3072 - action: labelmap
3073 regex: __meta_kubernetes_ingress_label_(.+)
3074 - source_labels:
3075 - __meta_kubernetes_namespace
3076 target_label: kubernetes_namespace
3077 - source_labels:
3078 - __meta_kubernetes_ingress_name
3079 target_label: kubernetes_name
3080 metrics_path: /probe
3081 params:
3082 module:
3083 - http_2xx
3084 - job_name: kubernetes-pods
3085 kubernetes_sd_configs:
3086 - role: pod
3087 relabel_configs:
3088 - action: keep
3089 source_labels:
3090 - __meta_kubernetes_pod_annotation_prometheus_io_scrape
3091 regex: true
3092 - action: replace
3093 source_labels:
3094 - __meta_kubernetes_pod_annotation_prometheus_io_path
3095 regex: (.+)
3096 target_label: __metrics_path__
3097 - action: replace
3098 source_labels:
3099 - __address__
3100 - __meta_kubernetes_pod_annotation_prometheus_io_port
3101 regex: ([^:]+)(?::\\d+)?;(\\d+)
3102 target_label: __address__
3103 replacement: $1:$2
3104 - action: labelmap
3105 regex: __meta_kubernetes_pod_label_(.+)
3106 - action: replace
3107 source_labels:
3108 - __meta_kubernetes_namespace
3109 target_label: kubernetes_namespace
3110 - action: replace
3111 source_labels:
3112 - __meta_kubernetes_pod_name
3113 target_label: kubernetes_pod_name
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003114
3115 """
3116 }
3117 }
3118}
3119service: {
3120 prometheus: {
3121 kind: "Service"
3122 apiVersion: "v1"
3123 metadata: {
3124 name: "prometheus"
3125 labels: {
3126 name: "prometheus"
3127 component: "mon"
3128 app: "prometheus"
3129 domain: "prod"
3130 }
3131 annotations: {
3132 "prometheus.io/scrape": "true"
3133 }
3134 }
3135 spec: {
3136 type: "NodePort"
3137 selector: {
3138 name: "prometheus"
3139 component: "mon"
3140 app: "prometheus"
3141 domain: "prod"
3142 }
3143 ports: [{
3144 name: "main"
3145 protocol: "TCP"
3146 port: 9090
3147 targetPort: 9090
3148 nodePort: 30900
3149 }]
3150 }
3151 }
3152}
3153deployment: {
3154 prometheus: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003155 Name :: "prometheus"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01003156 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01003157 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003158 metadata: {
3159 name: "prometheus"
3160 labels: {
3161 component: "mon"
3162 }
3163 }
3164 spec: {
3165 selector: {
3166 matchLabels: {
3167 app: "prometheus"
3168 }
3169 }
3170 template: {
3171 metadata: {
3172 name: "prometheus"
3173 labels: {
3174 component: "mon"
3175 app: "prometheus"
3176 domain: "prod"
3177 }
3178 annotations: {
3179 "prometheus.io.scrape": "true"
3180 }
3181 }
3182 spec: {
3183 volumes: [{
3184 name: "config-volume"
3185 configMap: {
3186 name: "prometheus"
3187 }
3188 }]
3189 containers: [{
3190 name: "prometheus"
3191 image: "prom/prometheus:v2.4.3"
3192 args: ["--config.file=/etc/prometheus/prometheus.yml", "--web.external-url=https://prometheus.example.com"]
3193 ports: [{
3194 name: "web"
3195 containerPort: 9090
3196 _export: true
3197 }]
3198 volumeMounts: [{
3199 name: "config-volume"
3200 mountPath: "/etc/prometheus"
3201 }]
3202 }]
3203 }
3204 }
3205 replicas: 1
3206 strategy: {
3207 type: "RollingUpdate"
3208 rollingUpdate: {
3209 maxUnavailable: 1
3210 maxSurge: 0
3211 }
3212 }
3213 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003214 }
3215}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003216daemonSet: {}
3217statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003218Component :: "mon"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003219_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003220 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003221 metadata: {
3222 name: string
3223 labels: {
3224 component: "mon"
3225 }
3226 }
3227 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003228 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003229 template: {
3230 metadata: {
3231 labels: {
3232 component: "mon"
3233 app: string
3234 domain: "prod"
3235 }
3236 }
3237 spec: {
3238 containers: [{
3239 name: string
3240 ports: []
3241 }]
3242 }
3243 }
3244 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003245}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003246configMap: {}
3247service: {}
3248deployment: {}
3249daemonSet: {}
3250statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003251Component :: "proxy"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003252_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003253 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003254 metadata: {
3255 name: string
3256 labels: {
3257 component: "proxy"
3258 }
3259 }
3260 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003261 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003262 template: {
3263 metadata: {
3264 labels: {
3265 component: "proxy"
3266 app: string
3267 domain: "prod"
3268 }
3269 }
3270 spec: {
3271 containers: [{
3272 name: string
3273 ports: []
3274 }]
3275 }
3276 }
3277 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003278}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003279configMap: {
3280 authproxy: {
3281 kind: "ConfigMap"
3282 apiVersion: "v1"
3283 metadata: {
3284 name: "authproxy"
3285 labels: {
3286 component: "proxy"
3287 }
3288 }
3289 data: {
3290 "authproxy.cfg": """
3291 # Google Auth Proxy Config File
3292 ## https://github.com/bitly/google_auth_proxy
3293
3294 ## <addr>:<port> to listen on for HTTP clients
3295 http_address = \"0.0.0.0:4180\"
3296
3297 ## the OAuth Redirect URL.
3298 redirect_url = \"https://auth.example.com/oauth2/callback\"
3299
3300 ## the http url(s) of the upstream endpoint. If multiple, routing is based on path
3301 upstreams = [
3302 # frontend
3303 \"http://frontend-waiter:7080/dpr/\",
3304 \"http://frontend-maitred:7080/ui/\",
3305 \"http://frontend-maitred:7080/ui\",
3306 \"http://frontend-maitred:7080/report/\",
3307 \"http://frontend-maitred:7080/report\",
3308 \"http://frontend-maitred:7080/static/\",
3309 # kitchen
3310 \"http://kitchen-chef:8080/visit\",
3311 # infrastructure
3312 \"http://download:7080/file/\",
3313 \"http://download:7080/archive\",
3314 \"http://tasks:7080/tasks\",
3315 \"http://tasks:7080/tasks/\",
3316 ]
3317
3318 ## pass HTTP Basic Auth, X-Forwarded-User and X-Forwarded-Email information to upstream
3319 pass_basic_auth = true
3320 request_logging = true
3321
3322 ## Google Apps Domains to allow authentication for
3323 google_apps_domains = [
3324 \"example.com\",
3325 ]
3326
3327 email_domains = [
3328 \"example.com\",
3329 ]
3330
3331 ## The Google OAuth Client ID, Secret
3332 client_id = \"---\"
3333 client_secret = \"---\"
3334
3335 ## Cookie Settings
3336 ## Secret - the seed string for secure cookies
3337 ## Domain - optional cookie domain to force cookies to (ie: .yourcompany.com)
3338 ## Expire - expire timeframe for cookie
3339 cookie_secret = \"won't tell you\"
3340 cookie_domain = \".example.com\"
3341 cookie_https_only = true
3342 """
3343 }
3344 }
3345}
3346service: {
3347 authproxy: {
3348 kind: "Service"
3349 apiVersion: "v1"
3350 metadata: {
3351 name: "authproxy"
3352 labels: {
3353 component: "proxy"
3354 app: "authproxy"
3355 domain: "prod"
3356 }
3357 }
3358 spec: {
3359 selector: {
3360 component: "proxy"
3361 app: "authproxy"
3362 domain: "prod"
3363 }
3364 ports: [{
3365 name: "client"
3366 protocol: "TCP"
3367 port: 4180
3368 targetPort: 4180
3369 }]
3370 }
3371 }
3372}
3373deployment: {
3374 authproxy: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003375 Name :: "authproxy"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01003376 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01003377 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003378 metadata: {
3379 name: "authproxy"
3380 labels: {
3381 component: "proxy"
3382 }
3383 }
3384 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003385 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003386 template: {
3387 metadata: {
3388 labels: {
3389 component: "proxy"
3390 app: "authproxy"
3391 domain: "prod"
3392 }
3393 }
3394 spec: {
3395 volumes: [{
3396 name: "config-volume"
3397 configMap: {
3398 name: "authproxy"
3399 }
3400 }]
3401 containers: [{
3402 name: "authproxy"
3403 image: "skippy/oauth2_proxy:2.0.1"
3404 args: ["--config=/etc/authproxy/authproxy.cfg"]
3405 ports: [{
3406 containerPort: 4180
3407 _export: true
3408 }]
3409 volumeMounts: [{
3410 name: "config-volume"
3411 mountPath: "/etc/authproxy"
3412 }]
3413 }]
3414 }
3415 }
3416 replicas: 1
3417 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003418 }
3419}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003420daemonSet: {}
3421statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003422Component :: "proxy"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003423_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003424 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003425 metadata: {
3426 name: string
3427 labels: {
3428 component: "proxy"
3429 }
3430 }
3431 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003432 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003433 template: {
3434 metadata: {
3435 labels: {
3436 component: "proxy"
3437 app: string
3438 domain: "prod"
3439 }
3440 }
3441 spec: {
3442 containers: [{
3443 name: string
3444 ports: []
3445 }]
3446 }
3447 }
3448 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003449}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003450configMap: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003451service: {
3452 goget: {
3453 kind: "Service"
3454 apiVersion: "v1"
3455 metadata: {
3456 name: "goget"
3457 labels: {
3458 component: "proxy"
3459 app: "goget"
3460 domain: "prod"
3461 }
3462 }
3463 spec: {
3464 type: "LoadBalancer"
3465 selector: {
3466 component: "proxy"
3467 app: "goget"
3468 domain: "prod"
3469 }
3470 ports: [{
3471 name: "https"
3472 protocol: "TCP"
3473 port: 443
3474 targetPort: 7443
3475 }]
3476 loadBalancerIP: "1.3.5.7"
3477 }
3478 }
3479}
3480deployment: {
3481 goget: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003482 Name :: "goget"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01003483 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01003484 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003485 metadata: {
3486 name: "goget"
3487 labels: {
3488 component: "proxy"
3489 }
3490 }
3491 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003492 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003493 template: {
3494 metadata: {
3495 labels: {
3496 component: "proxy"
3497 app: "goget"
3498 domain: "prod"
3499 }
3500 }
3501 spec: {
3502 volumes: [{
3503 name: "secret-volume"
3504 secret: {
3505 secretName: "goget-secrets"
3506 }
3507 }]
3508 containers: [{
3509 name: "goget"
3510 image: "gcr.io/myproj/goget:v0.5.1"
3511 ports: [{
3512 containerPort: 7443
3513 _export: true
3514 }]
3515 volumeMounts: [{
3516 name: "secret-volume"
3517 mountPath: "/etc/ssl"
3518 }]
3519 }]
3520 }
3521 }
3522 replicas: 1
3523 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003524 }
3525}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003526daemonSet: {}
3527statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003528Component :: "proxy"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003529_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003530 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003531 metadata: {
3532 name: string
3533 labels: {
3534 component: "proxy"
3535 }
3536 }
3537 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003538 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003539 template: {
3540 metadata: {
3541 labels: {
3542 component: "proxy"
3543 app: string
3544 domain: "prod"
3545 }
3546 }
3547 spec: {
3548 containers: [{
3549 name: string
3550 ports: []
3551 }]
3552 }
3553 }
3554 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003555}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003556configMap: {
3557 nginx: {
3558 kind: "ConfigMap"
3559 apiVersion: "v1"
3560 metadata: {
3561 name: "nginx"
3562 labels: {
3563 component: "proxy"
3564 }
3565 }
3566 data: {
3567 "nginx.conf": """
3568 events {
3569 worker_connections 768;
3570 }
3571 http {
3572 sendfile on;
3573 tcp_nopush on;
3574 tcp_nodelay on;
3575 # needs to be high for some download jobs.
3576 keepalive_timeout 400;
3577 # proxy_connect_timeout 300;
3578 proxy_send_timeout 300;
3579 proxy_read_timeout 300;
3580 send_timeout 300;
3581
3582 types_hash_max_size 2048;
3583
3584 include /etc/nginx/mime.types;
3585 default_type application/octet-stream;
3586
3587 access_log /dev/stdout;
3588 error_log /dev/stdout;
3589
3590 # Disable POST body size constraints. We often deal with large
3591 # files. Especially docker containers may be large.
3592 client_max_body_size 0;
3593
3594 upstream goget {
3595 server localhost:7070;
3596 }
3597
3598 # Redirect incoming Google Cloud Storage notifications:
3599 server {
3600 listen 443 ssl;
3601 server_name notify.example.com notify2.example.com;
3602
3603 ssl_certificate /etc/ssl/server.crt;
3604 ssl_certificate_key /etc/ssl/server.key;
3605
3606 # Security enhancements to deal with poodles and the like.
3607 # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
3608 # ssl_ciphers 'AES256+EECDH:AES256+EDH';
3609 ssl_ciphers \"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4\";
3610
3611 # We don't like poodles.
3612 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
3613 ssl_session_cache shared:SSL:10m;
3614
3615 # Enable Forward secrecy.
3616 ssl_dhparam /etc/ssl/dhparam.pem;
3617 ssl_prefer_server_ciphers on;
3618
3619 # Enable HTST.
3620 add_header Strict-Transport-Security max-age=1209600;
3621
3622 # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
3623 chunked_transfer_encoding on;
3624
3625 location / {
3626 proxy_pass http://tasks:7080;
3627 proxy_connect_timeout 1;
3628 }
3629 }
3630
3631 server {
3632 listen 80;
3633 listen 443 ssl;
3634 server_name x.example.com example.io;
3635
3636 location ~ \"(/[^/]+)(/.*)?\" {
3637 set $myhost $host;
3638 if ($arg_go-get = \"1\") {
3639 set $myhost \"goget\";
3640 }
3641 proxy_pass http://$myhost$1;
3642 proxy_set_header Host $host;
3643 proxy_set_header X-Real-IP $remote_addr;
3644 proxy_set_header X-Scheme $scheme;
3645 proxy_connect_timeout 1;
3646 }
3647
3648 location / {
3649 set $myhost $host;
3650 if ($arg_go-get = \"1\") {
3651 set $myhost \"goget\";
3652 }
3653 proxy_pass http://$myhost;
3654 proxy_set_header Host $host;
3655 proxy_set_header X-Real-IP $remote_addr;
3656 proxy_set_header X-Scheme $scheme;
3657 proxy_connect_timeout 1;
3658 }
3659 }
3660
3661 server {
3662 listen 80;
3663 server_name www.example.com w.example.com;
3664
3665 resolver 8.8.8.8;
3666
3667 location / {
3668 proxy_set_header X-Forwarded-Host $host;
3669 proxy_set_header X-Forwarded-Server $host;
3670 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
3671 proxy_set_header X-Real-IP $remote_addr;
3672
3673 proxy_pass http://$host.default.example.appspot.com/$request_uri;
3674 proxy_redirect http://$host.default.example.appspot.com/ /;
3675 }
3676 }
3677
3678 server {
3679 # We could add the following line and the connection would still be SSL,
3680 # but it doesn't appear to be necessary. Seems saver this way.
3681 listen 80;
3682 listen 443 default ssl;
3683 server_name ~^(?<sub>.*)\\.example\\.com$;
3684
3685 ssl_certificate /etc/ssl/server.crt;
3686 ssl_certificate_key /etc/ssl/server.key;
3687
3688 # Security enhancements to deal with poodles and the like.
3689 # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
3690 # ssl_ciphers 'AES256+EECDH:AES256+EDH';
3691 ssl_ciphers \"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4\";
3692
3693 # We don't like poodles.
3694 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
3695 ssl_session_cache shared:SSL:10m;
3696
3697 # Enable Forward secrecy.
3698 ssl_dhparam /etc/ssl/dhparam.pem;
3699 ssl_prefer_server_ciphers on;
3700
3701 # Enable HTST.
3702 add_header Strict-Transport-Security max-age=1209600;
3703
3704 if ($ssl_protocol = \"\") {
3705 rewrite ^ https://$host$request_uri? permanent;
3706 }
3707
3708 # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
3709 chunked_transfer_encoding on;
3710
3711 location / {
3712 proxy_pass http://authproxy:4180;
3713 proxy_set_header Host $host;
3714 proxy_set_header X-Real-IP $remote_addr;
3715 proxy_set_header X-Scheme $scheme;
3716 proxy_connect_timeout 1;
3717 }
3718 }
3719 }
3720 """
3721 }
3722 }
3723}
3724service: {
3725 nginx: {
3726 kind: "Service"
3727 apiVersion: "v1"
3728 metadata: {
3729 name: "nginx"
3730 labels: {
3731 component: "proxy"
3732 app: "nginx"
3733 domain: "prod"
3734 }
3735 }
3736 spec: {
3737 type: "LoadBalancer"
3738 selector: {
3739 component: "proxy"
3740 app: "nginx"
3741 domain: "prod"
3742 }
3743 ports: [{
3744 name: "http"
3745 protocol: "TCP"
3746 port: 80
3747 targetPort: 80
3748 }, {
3749 name: "https"
3750 protocol: "TCP"
3751 port: 443
3752 targetPort: 443
3753 }]
3754 loadBalancerIP: "1.3.4.5"
3755 }
3756 }
3757}
3758deployment: {
3759 nginx: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003760 Name :: "nginx"
Marcel van Lohuizen42346df2019-12-19 14:09:54 +01003761 kind: "Deployment"
Marcel van Lohuizen8f9ef312019-12-01 17:07:59 +01003762 apiVersion: "apps/v1"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003763 metadata: {
3764 name: "nginx"
3765 labels: {
3766 component: "proxy"
3767 }
3768 }
3769 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003770 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003771 template: {
3772 metadata: {
3773 labels: {
3774 component: "proxy"
3775 app: "nginx"
3776 domain: "prod"
3777 }
3778 }
3779 spec: {
3780 volumes: [{
3781 name: "secret-volume"
3782 secret: {
3783 secretName: "proxy-secrets"
3784 }
3785 }, {
3786 name: "config-volume"
3787 configMap: {
3788 name: "nginx"
3789 }
3790 }]
3791 containers: [{
3792 name: "nginx"
3793 image: "nginx:1.11.10-alpine"
3794 ports: [{
3795 containerPort: 80
3796 _export: true
3797 }, {
3798 containerPort: 443
3799 _export: true
3800 }]
3801 volumeMounts: [{
3802 name: "secret-volume"
3803 mountPath: "/etc/ssl"
3804 }, {
3805 name: "config-volume"
3806 mountPath: "/etc/nginx/nginx.conf"
3807 subPath: "nginx.conf"
3808 }]
3809 }]
3810 }
3811 }
3812 replicas: 1
3813 }
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003814 }
3815}
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003816daemonSet: {}
3817statefulSet: {}
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003818Component :: "proxy"
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003819_spec: {
Marcel van Lohuizen98187612019-09-03 12:48:25 +02003820 Name :: string
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003821 metadata: {
3822 name: string
3823 labels: {
3824 component: "proxy"
3825 }
3826 }
3827 spec: {
Marcel van Lohuizenffd21e62020-03-05 14:01:53 +01003828 selector: {}
Marcel van Lohuizen1bb26d52019-06-11 23:17:30 +02003829 template: {
3830 metadata: {
3831 labels: {
3832 component: "proxy"
3833 app: string
3834 domain: "prod"
3835 }
3836 }
3837 spec: {
3838 containers: [{
3839 name: string
3840 ports: []
3841 }]
3842 }
3843 }
3844 }
Marcel van Lohuizen9b67c1a2019-06-12 00:44:09 +02003845}