| |
| SUMMARY = "StarlingX Openstack Application Helm charts" |
| DESCRIPTION = "StarlingX Openstack Application Helm charts" |
| |
| LICENSE = "Apache-2.0" |
| LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" |
| |
| DEPENDS += " \ |
| helm-native \ |
| openstack-helm \ |
| openstack-helm-infra \ |
| stx-platform-helm \ |
| " |
| |
| PROTOCOL = "https" |
| BRANCH = "r/stx.3.0" |
| SRCREV = "863f4b9733d3d4f4fd490606a94b84cfdaf2df2c" |
| |
| SRC_URI = "git://opendev.org/starlingx/openstack-armada-app;protocol=${PROTOCOL};branch=${BRANCH}" |
| |
| S = "${WORKDIR}/git/stx-openstack-helm/stx-openstack-helm" |
| |
| inherit allarch |
| |
| helm_folder = "${nonarch_libdir}/helm" |
| armada_folder = "${nonarch_libdir}/armada" |
| app_folder = "${nonarch_libdir}/application" |
| toolkit_version = "0.1.0" |
| helmchart_version = "0.1.0" |
| |
| do_configure[noexec] = "1" |
| |
| do_compile () { |
| # initialize helm and build the toolkit |
| # helm init --client-only does not work if there is no networking |
| # The following commands do essentially the same as: helm init |
| export HOME="${B}/${USER}" |
| export helm_home="${B}/${USER}/.helm" |
| rm -rf ${helm_home} |
| |
| mkdir -p ${helm_home} |
| mkdir ${helm_home}/repository |
| mkdir ${helm_home}/repository/cache |
| mkdir ${helm_home}/repository/local |
| mkdir ${helm_home}/plugins |
| mkdir ${helm_home}/starters |
| mkdir ${helm_home}/cache |
| mkdir ${helm_home}/cache/archive |
| |
| # Stage a repository file that only has a local repo |
| cp ${S}/files/repositories.yaml ${helm_home}/repository/repositories.yaml |
| |
| # Stage a local repo index that can be updated by the build |
| cp ${S}/files/index.yaml ${helm_home}/repository/local/index.yaml |
| |
| # Stage helm-toolkit in the local repo |
| cp ${RECIPE_SYSROOT}${helm_folder}/helm-toolkit-${toolkit_version}.tgz . |
| |
| # Host a server for the charts |
| helm serve --repo-path . & |
| sleep 1 |
| helm repo rm local |
| helm repo add local http://localhost:8879/charts |
| |
| # Make the charts. These produce a tgz file |
| cd ${S}/helm-charts |
| make nova-api-proxy |
| make garbd |
| make keystone-api-proxy |
| make fm-rest-api |
| make nginx-ports-control |
| make dcdbsync |
| cd - |
| |
| # terminate helm server (the last backgrounded task) |
| kill $! |
| rm -rf ${helm_home} |
| |
| # Remove the helm-toolkit tarball |
| rm helm-toolkit-${toolkit_version}.tgz |
| } |
| |
| do_install () { |
| install -d -m 755 ${D}${app_folder} |
| install -p -D -m 755 ${S}/files/metadata.yaml ${D}${app_folder} |
| install -d -m 755 ${D}${helm_folder} |
| install -p -D -m 755 ${S}/helm-charts/*.tgz ${D}${helm_folder} |
| install -d -m 755 ${D}${armada_folder} |
| install -p -D -m 755 ${S}/manifests/*.yaml ${D}${armada_folder} |
| } |
| |
| FILES_${PN} = " \ |
| ${app_folder} \ |
| ${helm_folder} \ |
| ${armada_folder} \ |
| " |
| |
| RDEPENDS_${PN} = " \ |
| helm \ |
| openstack-helm \ |
| openstack-helm-infra \ |
| " |