
Istio Operator mechanism has been deprecated and is discouraged from Istio v1.23 As part of Istio App Maintenance, We are moving away from Istio Operator dependency and handling all the required charts using helm and fluxCD framework. Following are the steps taken for migration - *********************************************** 3 Verticals - helm/upstream Python-k8s-istio stx-istio-helm helm/upstream -> (debian/deb_folder and Makefile to be created for below Images) istio-base (handles CRDS required for istio application) istio-cni (Installs required CNI and sets iptable rules) istio-pilot (Istio discovery service) istio-proxyv2 - Ingress (Ingress Gateway) istio-proxyv2 - Egress (Egress Gateway) python-k8s-istio -> 1. python3-k8sapp-istio/k8sapp_istio/k8sapp_istio/helm/ The files below are to be created for handling Individual Base Helm charts. istio-base.py istio-cni.py istio-pilot.py istio-proxyv2-Ingress.py istio-proxyv2-Egress.py and remove (python3-k8sapp-istio/k8sapp_istio/k8sapp_istio/helm/istio_operator.py) 2. lifecycle_istio.py changes - post_apply (should apply all charts) pre_remove (remove code related to istio-operator) post_remove(remove code related to istio-operator) _get_helm_user_overrides (Handled with istio-base chart) stx-istio-helm -> FluxCD Manifest update for below - eg:- (helmrelease, istio-cni-static-overrides/system-overrides, kustomization.yaml) istio-base istio-cni istio-pilot istio-proxyv2 - Ingress istio-proxyv2 - Egress Istio-operator charts to be removed. *********************************************** Test Plan: PASSED: build-pkgs, results in proper helm charts with appropriate versions. PASSED: build deb Image without any errors PASSED: Istio App LifeCycle tests - (Upload, Apply, Update, Remove, Delete) PASSED: Istio App crds, cni daemonset, and other services are deployed properly. PASSED: App update from pre-operator-deprecation to post-operator-deprecation works seamlessly. PASSED: Autoversioning of all separate Helm charts is handled. PASSED: Lifecycle fetches necessary overrides from helm properly. Story: 2011403 Task: 52501 Change-Id: If72774cf081821c72fe720cf35a7b6c20f2c1ab8 Signed-off-by: Aman Pandae <AmanPandae.Mothukuri@windriver.com>
34 lines
1.0 KiB
Makefile
Executable File
34 lines
1.0 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# export DH_VERBOSE = 1
|
|
|
|
export ROOT = debian/tmp
|
|
export CHART_FOLDER = $(ROOT)/usr/lib/helm
|
|
|
|
export DEB_VERSION = $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
|
|
export PATCH_VERSION = $(shell echo $(DEB_VERSION) | cut -f 4 -d '.')
|
|
export CHART_BASE_VERSION = $(shell echo $(DEB_VERSION) | sed 's/-/./' | cut -d '.' -f 1-3)
|
|
export CHART_VERSION = $(CHART_BASE_VERSION)+STX.$(PATCH_VERSION)
|
|
|
|
%:
|
|
dh $@
|
|
|
|
override_dh_auto_build:
|
|
|
|
mkdir -p istio-ingressgateway
|
|
|
|
# We are picking the istio-ingress chart from istio repository.
|
|
# Other plugins directly have their own tgz to pull
|
|
# istio-ingress and egress don't have it
|
|
# For more clarity look at meta_data.yaml
|
|
cp -r manifests/charts/gateways/istio-ingress/* istio-ingressgateway
|
|
|
|
# Create the TGZ file.
|
|
make CHART_VERSION=$(CHART_VERSION) istio-ingressgateway
|
|
|
|
override_dh_auto_install:
|
|
# Install the app tar file.
|
|
install -d -m 755 $(CHART_FOLDER)
|
|
install -p -D -m 755 istio-ingress*.tgz $(CHART_FOLDER)
|
|
|
|
override_dh_auto_test:
|