enable calico mesh if no peers in input
[yaml_builds.git] / site_type / sriov / templates / software / charts / kubernetes / etcd / etcd.j2
1 ---
2 ##############################################################################
3 # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.        #
4 #                                                                            #
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
6 # not use this file except in compliance with the License.                   #
7 #                                                                            #
8 # You may obtain a copy of the License at                                    #
9 #       http://www.apache.org/licenses/LICENSE-2.0                           #
10 #                                                                            #
11 # Unless required by applicable law or agreed to in writing, software        #
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
14 # See the License for the specific language governing permissions and        #
15 # limitations under the License.                                             #
16 ##############################################################################
17
18 schema: armada/Chart/v1
19 metadata:
20   schema: metadata/Document/v1
21   name: kubernetes-etcd
22   layeringDefinition:
23     abstract: false
24     layer: site
25     parentSelector:
26       name: kubernetes-etcd-global
27     actions:
28       - method: merge
29         path: .
30   storagePolicy: cleartext
31   substitutions:
32
33   # Chart source
34     - src:
35         schema: pegleg/SoftwareVersions/v1
36         name: software-versions
37         path: .charts.kubernetes.etcd
38       dest:
39         path: .source
40
41     # Images
42     - src:
43         schema: pegleg/SoftwareVersions/v1
44         name: software-versions
45         path: .images.kubernetes.etcd
46       dest:
47         path: .values.images.tags
48
49     # IP addresses
50     - src:
51         schema: pegleg/CommonAddresses/v1
52         name: common-addresses
53         path: .kubernetes.etcd_service_ip
54       dest:
55         path: .values.service.ip
56     - src:
57         schema: pegleg/CommonAddresses/v1
58         name: common-addresses
59         path: .kubernetes.etcd_service_ip
60       dest:
61         path: .values.anchor.etcdctl_endpoint
62
63     # CAs
64     - src:
65         schema: deckhand/CertificateAuthority/v1
66         name: kubernetes-etcd
67         path: .
68       dest:
69         path: .values.secrets.tls.client.ca
70     - src:
71         schema: deckhand/CertificateAuthority/v1
72         name: kubernetes-etcd-peer
73         path: .
74       dest:
75         path: .values.secrets.tls.peer.ca
76
77     - src:
78         schema: deckhand/Certificate/v1
79         name: kubernetes-etcd-anchor
80         path: .
81       dest:
82         path: .values.secrets.anchor.tls.cert
83     - src:
84         schema: deckhand/CertificateKey/v1
85         name: kubernetes-etcd-anchor
86         path: .
87       dest:
88         path: .values.secrets.anchor.tls.key
89
90     # Node names
91 {% set count = [0] %}
92 {% for server in yaml.masters %}
93     - src:
94         schema: pegleg/CommonAddresses/v1
95         name: common-addresses
96         path: .masters[{{count[0]}}].hostname
97       dest:
98         path: .values.nodes[{{count[0]}}].name
99       {% if count.append(count.pop() + 1) %}{% endif %}
100 {% endfor %}
101     - src:
102         schema: pegleg/CommonAddresses/v1
103         name: common-addresses
104         path: .genesis.hostname
105       dest:
106         path: .values.nodes[{{count[0]}}].name
107
108     # Server certs
109 {% set count = [0] %}
110 {% for server in yaml.masters %}
111     - src:
112         schema: deckhand/Certificate/v1
113         name: kubernetes-etcd-{{server.name}}
114         path: .
115       dest:
116         path: .values.nodes[{{count[0]}}].tls.client.cert
117     - src:
118         schema: deckhand/CertificateKey/v1
119         name: kubernetes-etcd-{{server.name}}
120         path: .
121       dest:
122         path: .values.nodes[{{count[0]}}].tls.client.key
123     - src:
124         schema: deckhand/Certificate/v1
125         name: kubernetes-etcd-{{server.name}}-peer
126         path: .
127       dest:
128         path: .values.nodes[{{count[0]}}].tls.peer.cert
129     - src:
130         schema: deckhand/CertificateKey/v1
131         name: kubernetes-etcd-{{server.name}}-peer
132         path: .
133       dest:
134         path: .values.nodes[{{count[0]}}].tls.peer.key
135       {% if count.append(count.pop() + 1) %}{% endif %}
136 {% endfor %}
137
138     # Genesis node
139     - src:
140         schema: deckhand/Certificate/v1
141         name: kubernetes-etcd-genesis
142         path: .
143       dest:
144         path: .values.nodes[{{count[0]}}].tls.client.cert
145     - src:
146         schema: deckhand/CertificateKey/v1
147         name: kubernetes-etcd-genesis
148         path: .
149       dest:
150         path: .values.nodes[{{count[0]}}].tls.client.key
151     - src:
152         schema: deckhand/Certificate/v1
153         name: kubernetes-etcd-genesis-peer
154         path: .
155       dest:
156         path: .values.nodes[{{count[0]}}].tls.peer.cert
157     - src:
158         schema: deckhand/CertificateKey/v1
159         name: kubernetes-etcd-genesis-peer
160         path: $
161       dest:
162         path: .values.nodes[{{count[0]}}].tls.peer.key
163
164 data: {}
165 ...