From c309a7df3f43749953539932c98dc83c20c0b526 Mon Sep 17 00:00:00 2001 From: Giana Francisco Date: Mon, 25 Apr 2022 15:11:13 -0300 Subject: [PATCH] Add app support for FluxCD: snmp Add new manifest files to the snmp app to enable FluxCD support. Test Plan: - build, ISO image includes in progress fluxcd commits - verify the armada app version of snmp - verify the fluxcd app version of snmp - test snmpwalk for 2c and 3 snmp version - debian: build-pkgs -p stx-snmp-helm Story: 2009138 Task: 45143 Signed-off-by: Giana Francisco Change-Id: I4a895274caeb41d9121c6e5ab9a03565263cc5a9 --- centos_iso_image.inc | 1 + stx-snmp-helm/centos/stx-snmp-helm.spec | 40 +++++++++++++++++-- .../fluxcd-manifests/base/helmrepository.yaml | 13 ++++++ .../fluxcd-manifests/base/kustomization.yaml | 8 ++++ .../fluxcd-manifests/base/namespace.yaml | 10 +++++ .../fluxcd-manifests/kustomization.yaml | 11 +++++ .../fluxcd-manifests/snmp/helmrelease.yaml | 36 +++++++++++++++++ .../fluxcd-manifests/snmp/kustomization.yaml | 18 +++++++++ .../snmp/snmp-static-overrides.yaml | 6 +++ .../snmp/snmp-system-overrides.yaml | 6 +++ 10 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/helmrepository.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/kustomization.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/namespace.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/kustomization.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/helmrelease.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/kustomization.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-static-overrides.yaml create mode 100644 stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-system-overrides.yaml diff --git a/centos_iso_image.inc b/centos_iso_image.inc index b6438ac..0f31907 100644 --- a/centos_iso_image.inc +++ b/centos_iso_image.inc @@ -1 +1,2 @@ stx-snmp-helm +stx-snmp-helm-fluxcd diff --git a/stx-snmp-helm/centos/stx-snmp-helm.spec b/stx-snmp-helm/centos/stx-snmp-helm.spec index 6cbeb8a..7ee05e6 100644 --- a/stx-snmp-helm/centos/stx-snmp-helm.spec +++ b/stx-snmp-helm/centos/stx-snmp-helm.spec @@ -31,6 +31,14 @@ BuildRequires: python-k8sapp-snmp-wheels %description StarlingX SNMP Helm Charts +%package fluxcd +Summary: StarlingX SNMP FluxCD Helm Charts +Group: base +License: Apache-2.0 + +%description fluxcd +StarlingX SNMP FluxCD Helm Charts + %prep %setup -n helm-charts-snmp-0-1-0-1.0.0 @@ -38,11 +46,14 @@ StarlingX SNMP Helm Charts cd helm-charts make + +# switch back to source root cd - # Create a chart tarball compliant with sysinv kube-app.py %define app_staging %{_builddir}/staging %define app_tarball %{app_name}-%{version}-%{tis_patch_ver}.tgz +%define app_tarball_fluxcd %{app_name}-fluxcd-%{version}-%{tis_patch_ver}.tgz # Setup staging mkdir -p %{app_staging} @@ -50,9 +61,9 @@ cp files/metadata.yaml %{app_staging} cp manifests/*.yaml %{app_staging} mkdir -p %{app_staging}/charts cp helm-charts/*.tgz %{app_staging}/charts -cd %{app_staging} # Populate metadata +cd %{app_staging} sed -i 's/@APP_NAME@/%{app_name}/g' %{app_staging}/metadata.yaml sed -i 's/@APP_VERSION@/%{version}-%{tis_patch_ver}/g' %{app_staging}/metadata.yaml sed -i 's/@HELM_REPO@/%{helm_repo}/g' %{app_staging}/metadata.yaml @@ -61,17 +72,40 @@ sed -i 's/@HELM_REPO@/%{helm_repo}/g' %{app_staging}/metadata.yaml mkdir -p %{app_staging}/plugins cp /plugins/%{app_name}/*.whl %{app_staging}/plugins -# package it up +# calculate checksum of all files in app_staging find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5 +# package it up tar -zcf %{_builddir}/%{app_tarball} -C %{app_staging}/ . +# switch back to source root +cd - + +# Prepare app_staging for fluxcd package +rm -f %{app_staging}/snmp_manifest.yaml + +cp -R fluxcd-manifests %{app_staging}/ + +# calculate checksum of all files in app_staging +cd %{app_staging} +find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5 +# package fluxcd app +tar -zcf %{_builddir}/%{app_tarball_fluxcd} -C %{app_staging}/ . + +# switch back to source root +cd - + # Cleanup staging rm -fr %{app_staging} %install install -d -m 755 %{buildroot}/%{app_folder} install -p -D -m 755 %{_builddir}/%{app_tarball} %{buildroot}/%{app_folder} +install -p -D -m 755 %{_builddir}/%{app_tarball_fluxcd} %{buildroot}/%{app_folder} %files %defattr(-,root,root,-) -%{app_folder}/* +%{app_folder}/%{app_tarball} + +%files fluxcd +%defattr(-,root,root,-) +%{app_folder}/%{app_tarball_fluxcd} diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/helmrepository.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/helmrepository.yaml new file mode 100644 index 0000000..4c4adfe --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/helmrepository.yaml @@ -0,0 +1,13 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# + +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: HelmRepository +metadata: + name: stx-platform +spec: + url: http://192.168.206.1:8080/helm_charts/stx-platform + interval: 60m diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/kustomization.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/kustomization.yaml new file mode 100644 index 0000000..c0f37cd --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/kustomization.yaml @@ -0,0 +1,8 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# + +resources: + - helmrepository.yaml diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/namespace.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/namespace.yaml new file mode 100644 index 0000000..6726614 --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/base/namespace.yaml @@ -0,0 +1,10 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# + +apiVersion: v1 +kind: Namespace +metadata: + name: kube-system diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/kustomization.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/kustomization.yaml new file mode 100644 index 0000000..17a8e54 --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/kustomization.yaml @@ -0,0 +1,11 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kube-system +resources: + - base + - snmp diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/helmrelease.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/helmrelease.yaml new file mode 100644 index 0000000..d4eb411 --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/helmrelease.yaml @@ -0,0 +1,36 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# + +apiVersion: "helm.toolkit.fluxcd.io/v2beta1" +kind: HelmRelease +metadata: + name: snmp + labels: + chart_group: snmp +spec: + releaseName: ns-snmp + chart: + spec: + chart: snmp + version: 1.0.0 + sourceRef: + kind: HelmRepository + name: stx-platform + interval: 5m + timeout: 30m + test: + enable: false + install: + disableHooks: false + upgrade: + disableHooks: false + valuesFrom: + - kind: Secret + name: snmp-static-overrides + valuesKey: snmp-static-overrides.yaml + - kind: Secret + name: snmp-system-overrides + valuesKey: snmp-system-overrides.yaml diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/kustomization.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/kustomization.yaml new file mode 100644 index 0000000..293b18d --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/kustomization.yaml @@ -0,0 +1,18 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# + +namespace: kube-system +resources: + - helmrelease.yaml +secretGenerator: + - name: snmp-static-overrides + files: + - snmp-static-overrides.yaml + - name: snmp-system-overrides + files: + - snmp-system-overrides.yaml +generatorOptions: + disableNameSuffixHash: true diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-static-overrides.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-static-overrides.yaml new file mode 100644 index 0000000..7e93270 --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-static-overrides.yaml @@ -0,0 +1,6 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# + diff --git a/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-system-overrides.yaml b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-system-overrides.yaml new file mode 100644 index 0000000..7e93270 --- /dev/null +++ b/stx-snmp-helm/stx-snmp-helm/fluxcd-manifests/snmp/snmp-system-overrides.yaml @@ -0,0 +1,6 @@ +# +# Copyright (c) 2022 Wind River Systems, Inc. +# +# SPDX-License-Identifier: Apache-2.0 +# +