Skip to content

Commit 9deb619

Browse files
phantomjinxtadayosi
authored andcommitted
Improvements for generating bundle index
* Checks for yq prior to executing bundle index building * ShellChecks fixes: * Handle backslashes when using read * Fixes trap to not expand before executed
1 parent 0bb62e1 commit 9deb619

File tree

4 files changed

+32
-9
lines changed

4 files changed

+32
-9
lines changed

go.mod

+7
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,12 @@ require (
9393
github.com/docker/docker-credential-helpers v0.6.4 // indirect
9494
github.com/docker/go-units v0.4.0 // indirect
9595
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
96+
github.com/fatih/color v1.13.0 // indirect
9697
github.com/fsnotify/fsnotify v1.5.4 // indirect
9798
github.com/go-kit/log v0.2.0 // indirect
9899
github.com/go-logfmt/logfmt v0.5.1 // indirect
99100
github.com/go-logr/zapr v1.2.0 // indirect
101+
github.com/goccy/go-yaml v1.8.1 // indirect
100102
github.com/gogo/protobuf v1.3.2 // indirect
101103
github.com/golang-jwt/jwt/v4 v4.3.0 // indirect
102104
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
@@ -115,8 +117,12 @@ require (
115117
github.com/json-iterator/go v1.1.12 // indirect
116118
github.com/kelseyhightower/envconfig v1.4.0 // indirect
117119
github.com/klauspost/compress v1.14.4 // indirect
120+
github.com/kylelemons/godebug v1.1.0 // indirect
118121
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
122+
github.com/mattn/go-colorable v0.1.12 // indirect
123+
github.com/mattn/go-isatty v0.0.14 // indirect
119124
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
125+
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37 // indirect
120126
github.com/moby/spdystream v0.2.0 // indirect
121127
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
122128
github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -152,6 +158,7 @@ require (
152158
google.golang.org/grpc v1.46.2 // indirect
153159
google.golang.org/protobuf v1.28.1 // indirect
154160
gopkg.in/ini.v1 v1.67.0 // indirect
161+
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 // indirect
155162
gopkg.in/yaml.v3 v3.0.1 // indirect
156163
k8s.io/component-base v0.23.8 // indirect
157164
k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf // indirect

go.sum

+7
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv
511511
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
512512
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
513513
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
514+
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
514515
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
515516
github.com/fatih/set v0.2.1 h1:nn2CaJyknWE/6txyUDGwysr3G5QC6xWB/PtVjPBbeaA=
516517
github.com/fatih/set v0.2.1/go.mod h1:+RKtMCH+favT2+3YecHGxcc0b4KyVWA1QWWJUs4E0CI=
@@ -643,6 +644,7 @@ github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7
643644
github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc=
644645
github.com/gobuffalo/flect v0.2.4/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8=
645646
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
647+
github.com/goccy/go-yaml v1.8.1 h1:JuZRFlqLM5cWF6A+waL8AKVuCcqvKOuhJtUQI+L3ez0=
646648
github.com/goccy/go-yaml v1.8.1/go.mod h1:wS4gNoLalDSJxo/SpngzPQ2BN4uuZVLCmbM4S3vd4+Y=
647649
github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
648650
github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
@@ -992,6 +994,7 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
992994
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
993995
github.com/kulti/thelper v0.4.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U=
994996
github.com/kunwardeep/paralleltest v1.0.3/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4=
997+
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
995998
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
996999
github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg=
9971000
github.com/ldez/gomoddirectives v0.2.2/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0=
@@ -1035,13 +1038,15 @@ github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
10351038
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
10361039
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
10371040
github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
1041+
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
10381042
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
10391043
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
10401044
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
10411045
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
10421046
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
10431047
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
10441048
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
1049+
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
10451050
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
10461051
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
10471052
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
@@ -1067,6 +1072,7 @@ github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WT
10671072
github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
10681073
github.com/mikefarah/yaml/v2 v2.4.0/go.mod h1:ahVqZF4n1W4NqwvVnZzC4es67xsW9uR/RRf2RRxieJU=
10691074
github.com/mikefarah/yq/v2 v2.4.1/go.mod h1:i8SYf1XdgUvY2OFwSqGAtWOOgimD2McJ6iutoxRm4k0=
1075+
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37 h1:lPmsut5Sk7eK2BmDXuvNEvMbT7MkAJBu64Yxr7iJ6nk=
10701076
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37/go.mod h1:dYWq+UWoFCDY1TndvFUQuhBbIYmZpjreC8adEAx93zE=
10711077
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
10721078
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
@@ -2328,6 +2334,7 @@ gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
23282334
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
23292335
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
23302336
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
2337+
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 h1:6D+BvnJ/j6e222UW8s2qTSe3wGBtvo0MbVQG/c5k8RE=
23312338
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473/go.mod h1:N1eN2tsCx0Ydtgjl4cqmbRCsY4/+z4cYDeqwZTk6zog=
23322339
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
23332340
gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=

script/Makefile

+10-2
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,14 @@ else
565565
OPM=$(shell command -v opm 2> /dev/null)
566566
endif
567567

568+
yq:
569+
ifeq (, $(shell command -v yq 2> /dev/null))
570+
@GO111MODULE=on go install github.com/mikefarah/yq/v3
571+
YQ=$(GOBIN)/yq
572+
else
573+
YQ=$(shell command -v yq 2> /dev/null)
574+
endif
575+
568576
.PHONY: generate-crd $(BUNDLE_CAMEL_APIS) pre-bundle bundle bundle-build
569577

570578
# - Have to copy pkg/apis since it is a module in its own right
@@ -646,8 +654,8 @@ bundle-push: bundle-build
646654
#
647655
# Builds a test catalog index for installing the operator via an OLM
648656
#
649-
bundle-index: opm
650-
BUNDLE_INDEX=$(BUNDLE_INDEX) INDEX_DIR=$(INDEX_DIR) PACKAGE=$(PACKAGE) \
657+
bundle-index: opm yq
658+
BUNDLE_INDEX=$(BUNDLE_INDEX) INDEX_DIR=$(INDEX_DIR) PACKAGE=$(PACKAGE) YQ=$(YQ) \
651659
OPM=$(OPM) BUNDLE_IMAGE=$(BUNDLE_IMAGE_NAME):$(CUSTOM_VERSION) CSV_NAME=$(CSV_PRODUCTION_NAME) \
652660
CSV_SKIPS=$(CSV_SKIP_RANGE) CSV_REPLACES=$(CSV_REPLACES) CHANNELS="$(CHANNELS)" \
653661
./script/build_bundle_index.sh

script/build_bundle_index.sh

+8-7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ check_env_var "BUNDLE_INDEX" ${BUNDLE_INDEX}
1111
check_env_var "INDEX_DIR" ${INDEX_DIR}
1212
check_env_var "PACKAGE" ${PACKAGE}
1313
check_env_var "OPM" ${OPM}
14+
check_env_var "YQ" ${YQ}
1415
check_env_var "BUNDLE_IMAGE" ${BUNDLE_IMAGE}
1516
check_env_var "CSV_NAME" ${CSV_NAME}
1617
check_env_var "CSV_REPLACES" ${CSV_REPLACES}
@@ -80,7 +81,7 @@ fi
8081
#
8182
# Extract the camel-k channels
8283
#
83-
yq eval ". | select(.package == \"${PACKAGE}\" and .schema == \"olm.channel\")" ${INDEX_BASE_YAML} > ${CHANNELS_YAML}
84+
${YQ} eval ". | select(.package == \"${PACKAGE}\" and .schema == \"olm.channel\")" ${INDEX_BASE_YAML} > ${CHANNELS_YAML}
8485
if [ $? != 0 ] || [ ! -f "${CHANNELS_YAML}" ]; then
8586
echo "ERROR: Failed to extract camel-k entries from bundle catalog"
8687
exit 1
@@ -89,7 +90,7 @@ fi
8990
#
9091
# Filter out the channels in the bundles file
9192
#
92-
yq -i eval ". | select(.package != \"${PACKAGE}\" or .schema != \"olm.channel\")" ${INDEX_BASE_YAML}
93+
${YQ} -i eval ". | select(.package != \"${PACKAGE}\" or .schema != \"olm.channel\")" ${INDEX_BASE_YAML}
9394
if [ $? != 0 ]; then
9495
echo "ERROR: Failed to remove camel-k channel entries from bundles catalog"
9596
exit 1
@@ -100,11 +101,11 @@ fi
100101
#
101102
IFS=','
102103
#Read the split words into an array based on comma delimiter
103-
read -a CHANNEL_ARR <<< "${CHANNELS}"
104+
read -r -a CHANNEL_ARR <<< "${CHANNELS}"
104105

105106
for channel in "${CHANNEL_ARR[@]}";
106107
do
107-
channel_props=$(yq eval ". | select(.name == \"${channel}\")" ${CHANNELS_YAML})
108+
channel_props=$(${YQ} eval ". | select(.name == \"${channel}\")" ${CHANNELS_YAML})
108109

109110
entry="{ \"name\": \"${CSV_NAME}\""
110111
if [ -n "${CSV_REPLACES}" ]; then
@@ -123,8 +124,8 @@ do
123124
object="{ \"entries\": [${entry}], \"name\": \"${channel}\", \"package\": \"${PACKAGE}\", \"schema\": \"olm.channel\" }"
124125

125126
channel_file=$(mktemp ${channel}-channel-XXX.yaml)
126-
trap "rm -f ${channel_file}" EXIT
127-
yq -n eval "${object}" > ${channel_file}
127+
trap 'rm -f ${channel_file}' EXIT
128+
${YQ} -n eval "${object}" > ${channel_file}
128129

129130
echo "---" >> ${CHANNELS_YAML}
130131
cat ${channel_file} >> ${CHANNELS_YAML}
@@ -133,7 +134,7 @@ do
133134
# Channel already exists so insert entry
134135
#
135136
echo "Inserting channel ${channel} ..."
136-
yq -i eval "(. | select(.name == \"${channel}\") | .entries) += ${entry}" ${CHANNELS_YAML}
137+
${YQ} -i eval "(. | select(.name == \"${channel}\") | .entries) += ${entry}" ${CHANNELS_YAML}
137138
fi
138139
done
139140

0 commit comments

Comments
 (0)