#!/bin/bash # Load values from Chart.yaml chart_version=$(yq e '.dependencies[0].version' Chart.yaml) chart_name=$(yq e '.name' Chart.yaml) chart_repo=$(yq e '.dependencies[0].repository' Chart.yaml) chart_namespace=$(yq e '.annotations.namespace' Chart.yaml) # Check if chart_namespace is empty and default to chart_name if it is if [[ -z "$chart_namespace" ]]; then chart_namespace="$chart_name" fi # Determine the correct chart and repo values based on chart_repo if [[ $chart_repo == oci://* ]]; then chart="${chart_repo}/${chart_name}" else repo="$chart_repo" chart="$chart_name" fi # Load the raw content of values.yaml values_content=$(cat values.yaml) # Create HelmChart content in a variable helm_chart_yaml=$(yq eval -n ".apiVersion = \"helm.cattle.io/v1\" | .kind = \"HelmChart\" | .metadata.name = \"$chart_name\" | .metadata.namespace = \"$chart_namespace\" | .spec.chart = \"$chart\" | .spec.version = \"$chart_version\" | .spec.targetNamespace = \"$chart_namespace\" | .spec.valuesContent = \"$values_content\"") # If repo is set, add it to the spec if [[ -n "$repo" ]]; then helm_chart_yaml=$(echo "$helm_chart_yaml" | yq eval ".spec.repo = \"$repo\"") fi # Print the final YAML to stdout echo "$helm_chart_yaml"