Helm - Automation gaps in Release process - Phase 2
-
Refactored helm-charts-azure pipeline to use the latest tag image on demand. (Build pipelines to update Service Group helm chart's version for any increment in patch version.)
- Script
incremental_app_parse.bash
will parse version on each osdu-azure apps based in the latests tags of each service, if not found will not parse anything and keep version configured. - Each time the release branch runs a pipeline, the tag generator will parse the latest found tag of each service.
- To avoid confusion, it is used the 1.16.0-r version for helm chart, if tag is created will be used tag version I.E (1.16.2).
- This have advantage to have the latest "r" version (1.16.0-r), and not overwrite the 0.16.0 version.
- Job of app parsing example: 1349052
- Script
-
Create Service Groups in Helm charts structure to be able to deploy multiple services using single helm chart.
- Refactored gitlab pipeline to build dependency for subCharts in osdu-azure azure-helm.yml
osdu-core_services osdu-security_compliance osdu-reference_helper osdu-partition_base osdu-ingest_enrich
- Created those as well as dependencies and pushed to the publish repo.
- Line in action for osdu-azure package job: 1349052#L207
-
If the release or the tag cannot be parsed by default it will use 0.0.0-latest (To avoid overwritten of published charts).
-
Pipeline to deploy helm charts on demand
-
Conditionally deploy individual services
- Created pipeline in azure devops to conditionally deploy based on each environment, it can deploy any service on demand by configuring pipeline.
- Deploy base, istio, osdu-azure, and standard-ddms's (wellbore, seismic, reservoir, well-delivery)
- Full example working in dev
- To be implemented in ship and demo if approved.
- This pipeline will not use but values generator script in the helm-charts-azure repository, instead will use published and stable helm-charts.
- Used multienvironment approach (same pipeline for many environments)
Pipeline screenshot:
If we want to deploy specific service:
I.E. (For specific service and overwriting default values for pipeline) I.E Storage, and partition_services
stages:
- template: /scripts/pipelines/tasks/helm-osdu-stages.yml@HelmChartsAzure
parameters:
checkoutRepo: HelmChartsAzure
environments:
- dev
# Already setup by default releases to fully install osdu helm-charts-azure OR
# Setup your custom releases
releases:
- releaseName: test-storage
chartVersion: 1.16.2
ociRepo: oci://msosdu.azurecr.io/helm/osdu-azure
namespace: osdu-azure
valuesFunction: ''
subCharts:
- releaseName: partition-services
chartPath: osdu-azure/osdu-partition_base
# storage
- releaseName: test-storage
chartPath: osdu-azure/storage
extraHelmOpts: $(HELM_OPTS)
Be aware that pipeline will grab the published charts from the oci://msosdu
or any other repo which is specified. (No authentication as for now)