18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/dapp/kube/dapp/command/chart_create.rb', line 18
def kube_create_chart_samples
kube_tmp_chart_path(name, 'secret-values.yaml').tap { |f| FileUtils.touch(f) unless f.file? }
kube_tmp_chart_path(name, kube_chart_secret_dir_name).tap { |dir| FileUtils.mkdir(dir) unless dir.directory? }
kube_tmp_chart_path(name, 'templates', '_envs.tpl').tap do |f|
f.write begin
"{{- define \"common_envs\" }}\n- name: A\n value: value\n{{- if eq .Values.global.env \"production\" }}\n- name: B\n value: value\n{{- else }}\n- name: B\n value: value2\n{{- if or (eq .Values.global.env \"staging\") (eq .Values.global.env \"testing\") }}\n- name: C\n value: value3\n{{- end }}\n{{- end }}\n{{- end }}\n EOF\n end unless f.file?\n end\n kube_tmp_chart_path(name, 'templates', 'backend.yaml').tap do |f|\n f.write begin\n <<-EOF\napiVersion: extensions/v1beta1\nkind: Deployment\nmetadata:\n name: {{ .Chart.Name }}-backend\n labels:\n service: {{ .Chart.Name }}-backend\nspec:\n minReadySeconds: 60\n strategy:\n type: RollingUpdate\n replicas: 2\n template:\n metadata:\n labels:\n service: {{ .Chart.Name }}-backend\n spec:\n volumes:\n - name: {{ .Chart.Name }}-backend\n secret:\nsecretName: {{ .Chart.Name }}-backend\n containers:\n - command: [ '/bin/bash', '-l', '-c', 'bundle exec ctl start' ]\n image: {{ tuple . 'specific_name' | include \"dimg\" }} # or nameless dimg {{ tuple . | include \"dimg\" }}\n imagePullPolicy: Always\n name: {{ .Chart.Name }}-backend\n livenessProbe:\nhttpGet:\n path: /assets/logo.png\n port: 8080\n scheme: HTTP\ninitialDelaySeconds: 10\nperiodSeconds: 3\n ports:\n - containerPort: 8080\nname: http\nprotocol: TCP\n env:\n{{- include \"common_envs\" . | indent 8 }}\n---\napiVersion: v1\nkind: Service\nmetadata:\n name: {{ .Chart.Name }}-backend\nspec:\n type: ClusterIP\n selector:\n service: {{ .Chart.Name }}-backend\n ports:\n - name: http\n port: 8080\n protocol: TCP\n EOF\n end unless f.file?\n end\nend\n"
|