77# This script converts the upstream dynamic-plugins.default.yaml
88# into a Kubernetes ConfigMap that can be applied to the cluster.
99#
10+ generate_configmap () {
11+ set -euo pipefail
1012
11- set -euo pipefail
13+ SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
14+ PROJECT_ROOT=" $( dirname " $SCRIPT_DIR " ) "
15+ NAMESPACE=" ${1:- } "
1216
13- SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
14- PROJECT_ROOT=" $( dirname " $SCRIPT_DIR " ) "
15- NAMESPACE=" ${1:- } "
17+ INPUT_FILE=" $PROJECT_ROOT /resources/rhdh/dynamic-plugins.default.yaml"
18+ OUTPUT_FILE=" $PROJECT_ROOT /resources/rhdh/dynamic-plugins-configmap.yaml"
1619
17- INPUT_FILE=" $PROJECT_ROOT /resources/rhdh/dynamic-plugins.default.yaml"
18- OUTPUT_FILE=" $PROJECT_ROOT /resources/rhdh/dynamic-plugins-configmap.yaml"
20+ # Validate input file exists
21+ if [[ ! -f " $INPUT_FILE " ]]; then
22+ echo " ERROR: Input file not found: $INPUT_FILE "
23+ echo " "
24+ echo " Make sure dynamic-plugins.default.yaml exists in resources/rhdh/"
25+ echo " You can sync it from upstream by running:"
26+ echo " curl -sL https://raw.githubusercontent.com/redhat-developer/rhdh/main/dynamic-plugins.default.yaml \\ "
27+ echo " -o resources/rhdh/dynamic-plugins.default.yaml"
28+ exit 1
29+ fi
1930
20- # Validate input file exists
21- if [[ ! -f " $INPUT_FILE " ]]; then
22- echo " ERROR: Input file not found: $INPUT_FILE "
23- echo " "
24- echo " Make sure dynamic-plugins.default.yaml exists in resources/rhdh/"
25- echo " You can sync it from upstream by running:"
26- echo " curl -sL https://raw.githubusercontent.com/redhat-developer/rhdh/main/dynamic-plugins.default.yaml \\ "
27- echo " -o resources/rhdh/dynamic-plugins.default.yaml"
28- exit 1
29- fi
30-
31- # Generate ConfigMap header
32- cat > " $OUTPUT_FILE " << 'EOF '
31+ # Generate ConfigMap header
32+ cat > " $OUTPUT_FILE " << 'EOF '
3333# AUTO-GENERATED - Do not edit directly
3434# Source: dynamic-plugins.default.yaml from upstream RHDH
3535# To regenerate: ./scripts/generate-configmap.sh
@@ -42,31 +42,37 @@ metadata:
4242 name: rhdh-dynamic-plugins
4343EOF
4444
45- # Add namespace if provided
46- if [[ -n " $NAMESPACE " ]]; then
47- echo " namespace: $NAMESPACE " >> " $OUTPUT_FILE "
48- fi
45+ # Add namespace if provided
46+ if [[ -n " $NAMESPACE " ]]; then
47+ echo " namespace: $NAMESPACE " >> " $OUTPUT_FILE "
48+ fi
4949
50- cat >> " $OUTPUT_FILE " << 'EOF '
50+ cat >> " $OUTPUT_FILE " << 'EOF '
5151 labels:
5252 backstage.io/kubernetes-id: developer-hub
5353data:
5454 dynamic-plugins.yaml: |
5555EOF
5656
57- # Indent the YAML content (6 spaces for ConfigMap data block) and Remove leading spaces only from comment lines before 'plugins:'
58- awk '
59- /^[[:space:]]*plugins:/ { found=1 }
60- !found && /^[[:space:]]*#/ { sub(/^[[:space:]]+/, "") }
61- { print " " $0 }
62- ' " $INPUT_FILE " >> " $OUTPUT_FILE "
57+ # Indent the YAML content (6 spaces for ConfigMap data block) and Remove leading spaces only from comment lines before 'plugins:'
58+ awk '
59+ /^[[:space:]]*plugins:/ { found=1 }
60+ !found && /^[[:space:]]*#/ { sub(/^[[:space:]]+/, "") }
61+ { print " " $0 }
62+ ' " $INPUT_FILE " >> " $OUTPUT_FILE "
63+
64+ # Summary
65+ PLUGIN_COUNT=$( grep -c " ^- package:" " $INPUT_FILE " 2> /dev/null || echo " 0" )
66+ echo " Generated: $OUTPUT_FILE "
67+ echo " - Plugins: $PLUGIN_COUNT entries"
68+ if [[ -n " $NAMESPACE " ]]; then
69+ echo " - Namespace: $NAMESPACE "
70+ else
71+ echo " - Namespace: (not set - will use default or kubectl context)"
72+ fi
73+ }
6374
64- # Summary
65- PLUGIN_COUNT=$( grep -c " ^- package:" " $INPUT_FILE " 2> /dev/null || echo " 0" )
66- echo " Generated: $OUTPUT_FILE "
67- echo " - Plugins: $PLUGIN_COUNT entries"
68- if [[ -n " $NAMESPACE " ]]; then
69- echo " - Namespace: $NAMESPACE "
70- else
71- echo " - Namespace: (not set - will use default or kubectl context)"
75+ # Only run if executed directly, not sourced
76+ if [[ " ${BASH_SOURCE[0]} " == " ${0} " ]]; then
77+ generate_configmap " $@ "
7278fi
0 commit comments