Add initial meta-stx to support StarlingX build
[pti/rtp.git] / meta-stx / recipes-support / puppet / stx-puppet_git.bb
1 #
2 ## Copyright (C) 2019 Wind River Systems, Inc.
3 #
4 #  Licensed under the Apache License, Version 2.0 (the "License");
5 #  you may not use this file except in compliance with the License.
6 #  You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #  Unless required by applicable law or agreed to in writing, software
11 #  distributed under the License is distributed on an "AS IS" BASIS,
12 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #  See the License for the specific language governing permissions and
14 #  limitations under the License.
15
16 DESCRIPTION = "stx-puppet modules"
17
18 STABLE = "starlingx/master"
19 PROTOCOL = "https"
20 SRCNAME = "stx-puppet"
21 BRANCH = "r/stx.3.0"
22 SRCREV = "678fe78b72b70e213eae32b1932afe97cc8c16b4"
23 S = "${WORKDIR}/git"
24 PV = "1.0.0"
25
26 LICENSE = "Apache-2.0"
27
28 LIC_FILES_CHKSUM = " \
29         file://modules/puppet-dcdbsync/src/LICENSE;md5=0e5ccf641e613489e66aa98271dbe798 \
30         file://modules/puppet-dcmanager/src/LICENSE;md5=0e5ccf641e613489e66aa98271dbe798 \
31         file://modules/puppet-dcorch/src/LICENSE;md5=0e5ccf641e613489e66aa98271dbe798 \
32         file://modules/puppet-fm/src/LICENSE;md5=0e5ccf641e613489e66aa98271dbe798 \
33         file://modules/puppet-mtce/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
34         file://modules/puppet-nfv/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
35         file://modules/puppet-patching/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
36         file://modules/puppet-smapi/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
37         file://modules/puppet-sshd/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
38         file://modules/puppet-sysinv/src/LICENSE;md5=0e5ccf641e613489e66aa98271dbe798 \
39         file://puppet-manifests/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
40         "
41
42 #       file://${BPN}/use-cast-operator.patch 
43 SRC_URI = " \
44         git://opendev.org/starlingx/${SRCNAME}.git;protocol=${PROTOCOL};rev=${SRCREV};branch=${BRANCH} \
45         file://${BPN}/0001-puppet-manifest-apply-rebase-adjust-path.patch \
46         file://${BPN}/0002-puppet-manifests-port-Adjust-path-default-bindir.patch \
47         file://${BPN}/0003-puppet-dcmanager-updates-for-poky-stx.patch \
48         file://${BPN}/0004-puppet-dcorch-updates-for-poky-stx.patch \
49         file://${BPN}/0005-puppet-sysinv-updates-for-poky-stx.patch \
50         file://${BPN}/0006-puppet-manifest-apply-do-not-treat-warnings-as-block.patch \
51         file://${BPN}/0007-puppet-manifests-etcd-override-typo-and-journalctl.patch \
52         file://${BPN}/0008-puppet-manifests-keystone-include-platform-client.patch \
53         file://${BPN}/0009-puppet-manifests-lvm-remove-lvmetad.patch \
54         file://${BPN}/0010-puppet-manifest-apply-workaround-to-ignore-known-err.patch \
55         file://${BPN}/get-boot-device-from-cmdline.patch \
56         file://${BPN}/poky-specific-apply-network-config-script.patch \
57         file://${BPN}/apply_network_config_poky.sh \
58         "
59
60 RDEPENDS_${PN} += " \
61         bash puppet \
62         e2fsprogs-resize2fs \
63         hiera \
64         kpartx \
65         multipath-tools \
66         multipath-tools-libs \
67         ntpdate \
68         puppet-staging \
69         puppet-oslo \
70         puppetlabs-apache \
71         puppetlabs-mysql \
72         "
73
74 # WRS puppet modules
75 RDEPENDS_puppet-manifests += " \
76         puppet-dcorch \
77         puppet-dcmanager \
78         puppet-mtce \
79         puppet-nfv \
80         puppet-patching \
81         puppet-sysinv \
82         puppet-sshd \
83         puppet-smapi \
84         puppet-fm \
85         puppet-dcdbsync \
86         "
87 # Openstack puppet modules
88 RDEPENDS_puppet-manifests += " \
89         puppet-barbican \
90         puppet-ceph \
91         puppet-horizon \
92         puppet-keystone \
93         puppet-openstacklib \
94         puppet-vswitch \
95         puppet-memcached \
96         "
97
98 # Puppetlabs puppet modules 
99 RDEPENDS_puppet-manifests += " \
100         puppetlabs-concat \
101         puppetlabs-create-resources \
102         puppet-drbd \
103         puppetlabs-firewall \
104         puppetlabs-haproxy \
105         puppetlabs-inifile \
106         puppetlabs-lvm \
107         puppetlabs-postgresql \
108         puppetlabs-rabbitmq \
109         puppetlabs-stdlib \
110         puppet-sysctl \
111         puppet-etcd \
112         "
113
114 # 3rd party puppet modules
115 RDEPENDS_puppet-manifests += " \
116         puppet-boolean \
117         puppet-certmonger \
118         puppet-dnsmasq \
119         puppet-filemapper \
120         puppet-kmod \
121         puppet-ldap \
122         puppet-network \
123         puppet-nslcd \
124         puppet-nssdb \
125         puppet-puppi \
126         puppet-vlan \
127         puppet-collectd \
128         "
129
130
131  
132 RDEPENDS_puppet-mtce += " puppet"
133 RDEPENDS_puppet-dcdbsync += " puppet" 
134 RDEPENDS_puppet-dcmanager += " puppet"
135 RDEPENDS_puppet-dcorch += " puppet"
136 RDEPENDS_puppet-fm += " puppet"
137 RDEPENDS_puppet-nfv += " puppet"
138 RDEPENDS_puppet-patching += " puppet"
139 RDEPENDS_puppet-smapi += " puppet"
140 RDEPENDS_puppet-sshd += " puppet"
141 RDEPENDS_puppet-sysinv += " puppet"
142
143 PACKAGES += " puppet-dcdbsync"
144 PACKAGES += " puppet-dcmanager"
145 PACKAGES += " puppet-dcorch"
146 PACKAGES += " puppet-fm"
147 PACKAGES += " puppet-mtce"
148 PACKAGES += " puppet-nfv"
149 PACKAGES += " puppet-patching"
150 PACKAGES += " puppet-smapi"
151 PACKAGES += " puppet-sshd"
152 PACKAGES += " puppet-sysinv"
153 PACKAGES += " puppet-manifests"
154
155 do_install() {
156
157         install -d -m 0755 ${D}/${datadir}/puppet/modules/dcdbsync
158         cp -R ${S}/modules/puppet-dcdbsync/src/dcdbsync ${D}/${datadir}/puppet/modules
159
160         install -d -m 0755 ${D}/${datadir}/puppet/modules/dcmanager
161         cp -R ${S}/modules/puppet-dcmanager/src/dcmanager ${D}/${datadir}/puppet/modules
162
163         install -d -m 0755 ${D}/${datadir}/puppet/modules/dcorch
164         cp -R ${S}/modules/puppet-dcorch/src/dcorch/ ${D}/${datadir}/puppet/modules/
165
166         install -d -m 0755 ${D}/${datadir}/puppet/modules/fm
167         cp -R ${S}/modules/puppet-fm/src/fm ${D}/${datadir}/puppet/modules
168
169         install -d -m 0755 ${D}/${datadir}/puppet/modules/mtce
170         cp -R ${S}/modules/puppet-mtce/src/mtce ${D}/${datadir}/puppet/modules
171
172         install -d -m 0755 ${D}/${datadir}/puppet/modules/nfv
173         cp -R ${S}/modules/puppet-nfv/src/nfv ${D}/${datadir}/puppet/modules
174
175         install -d -m 0755 ${D}/${datadir}/puppet/modules/patching
176         cp -R ${S}/modules/puppet-patching/src/patching ${D}/${datadir}/puppet/modules
177
178         install -d -m 0755 ${D}/${datadir}/puppet/modules/smapi
179         cp -R ${S}/modules/puppet-smapi/src/smapi ${D}/${datadir}/puppet/modules
180
181         install -d -m 0755 ${D}/${datadir}/puppet/modules/sshd
182         cp -R ${S}/modules/puppet-sshd/src/sshd ${D}/${datadir}/puppet/modules
183
184         install -d -m 0755 ${D}/${datadir}/puppet/modules/sysinv
185         cp -R ${S}/modules/puppet-sysinv/src/sysinv ${D}/${datadir}/puppet/modules
186
187         cd ${S}/puppet-manifests/src
188         oe_runmake BINDIR=${D}/${bindir} \
189                 CONFIGDIR=${D}/${sysconfdir}/puppet/ \
190                 MODULEDIR=${D}/${datadir}/puppet/modules -f Makefile install
191
192         # fix the path for systemctl
193         sed -i -e 's|${bindir}/systemctl|${base_bindir}/systemctl|' ${D}/${datadir}/puppet/modules/platform/manifests/*.pp
194         sed -i -e 's|${bindir}|${bindir}:${base_bindir}|' ${D}/${datadir}/puppet/modules/sysinv/manifests/api.pp
195
196         # fix the path for mount and awk
197         sed -i -e 's|${bindir}|${bindir}:${base_bindir}|' ${D}/${datadir}/puppet/modules/platform/manifests/filesystem.pp
198
199         # fix the path for slapd.conf
200         sed -i -e '/\/usr\/lib64\/openldap/d' ${D}/${datadir}/puppet/modules/platform/manifests/ldap.pp
201
202         # fix the libdir for collectd
203         sed -i -e 's|/usr/lib64|${libdir}|' ${D}/${datadir}/puppet/modules/platform/templates/collectd.conf.erb
204
205         install -m 0755 ${WORKDIR}/${PN}/apply_network_config_poky.sh  ${D}/${bindir}/apply_network_config_poky.sh
206 }
207
208 FILES_puppet-sysinv += " \
209         ${datadir}/puppet/modules/sysinv \
210         "
211
212 FILES_puppet-sshd += " \
213         ${datadir}/puppet/modules/sshd \
214         "
215
216 FILES_puppet-smapi += " \
217         ${datadir}/puppet/modules/smapi \
218         "
219 FILES_puppet-patching += " \
220         ${datadir}/puppet/modules/patching \
221         "
222
223 FILES_puppet-nfv += " \
224         ${datadir}/puppet/modules/nfv \
225         "
226
227 FILES_puppet-mtce = "\
228         ${datadir}/puppet/modules/mtce \
229         "
230
231 FILES_puppet-manifests = "\
232         ${sysconfdir}/puppet/hiera.yaml \
233         ${sysconfdir}/puppet/hieradata \
234         ${sysconfdir}/puppet/hieradata/worker.yaml \
235         ${sysconfdir}/puppet/hieradata/storage.yaml \
236         ${sysconfdir}/puppet/hieradata/global.yaml \
237         ${sysconfdir}/puppet/hieradata/controller.yaml \
238         ${sysconfdir}/puppet/manifests/worker.pp \
239         ${sysconfdir}/puppet/manifests/ansible_bootstrap.pp \
240         ${sysconfdir}/puppet/manifests/bootstrap.pp \
241         ${sysconfdir}/puppet/manifests/runtime.pp \
242         ${sysconfdir}/puppet/manifests/storage.pp \
243         ${sysconfdir}/puppet/manifests/upgrade.pp \
244         ${sysconfdir}/puppet/manifests/controller.pp \
245         ${datadir}/puppet/modules/openstack/manifests \
246         ${datadir}/puppet/modules/openstack/templates \
247         ${datadir}/puppet/modules/platform/manifests \
248         ${datadir}/puppet/modules/platform/templates \
249         ${datadir}/puppet/modules/platform/files \
250         ${datadir}/puppet/modules/platform/lib/facter \
251         ${datadir}/puppet/modules/platform/lib/puppet \
252         ${bindir}/puppet-manifest-apply.sh \
253         ${bindir}/apply_network_config.sh \
254         ${bindir}/apply_network_config_poky.sh \
255         "
256 FILES_puppet-fm += " \
257         ${datadir}/puppet/modules/fm \
258         "
259
260 FILES_puppet-dcorch += " \
261         ${datadir}/puppet/modules/dcorch \
262         "
263
264 FILES_puppet-dcmanager += " \
265         ${datadir}/puppet/modules/dcmanager \
266         "
267
268 FILES_puppet-dcdbsync += " \
269         ${datadir}/puppet/modules/dcdbsync \
270         "
271
272 inherit openssl10