kruise/scripts/generate_helm_crds.sh

48 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Check if yq command is installed, otherwise install it
if ! command -v yq &> /dev/null; then
echo "yq command not found. You need install yq first."
exit 0
fi
rm -rf bin/templates
mkdir bin/templates
# Get the current directory
current_dir=$(pwd)
echo $current_dir
# Create a temporary directory
temp_dir=$(mktemp -d)
echo $temp_dir
kustomize build config/crd > $temp_dir/crds.yaml
cd $temp_dir
awk 'BEGIN {RS="\n---\n"} {print > ("output-" NR ".yaml")}' crds.yaml
rm -f crds.yaml
# Process each file in the directory
for file in *; do
# Parse the YAML file and extract the value of the desired fields
group=$(yq eval '.spec.group' $file)
plural=$(yq eval '.spec.names.plural' $file)
# Remove leading and trailing whitespace from the field values
group=$(echo $group | sed -e 's/^ *//' -e 's/ *$//')
plural=$(echo $plural | sed -e 's/^ *//' -e 's/ *$//')
sed -i '.bak' '1i\
{{- if .Values.crds.managed }}\
\
---
' $file
rm -f $file.bak
echo "{{- end }}" >> $file
# Rename the file using the extracted field values
mv $file "$current_dir/bin/templates/${group}_${plural}.yaml"
done
# Clean up the temporary directory
cd ..
rm -rf $temp_dir