forked from openshift-knative/serverless-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdockerfile.sh
More file actions
executable file
·87 lines (71 loc) · 3.59 KB
/
Copy pathdockerfile.sh
File metadata and controls
executable file
·87 lines (71 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env bash
set -Eeuo pipefail
template="${1:?Provide template file as arg[1]}"
target="${2:?Provide a target Dockerfile file as arg[2]}"
# shellcheck disable=SC1091,SC1090
source "$(dirname "${BASH_SOURCE[0]}")/../lib/__sources__.bash"
default_serverless_operator_images
declare -A values
values[NAME]="$(metadata.get project.name)"
values[LATEST_VERSIONED_CHANNEL]="$(metadata.get 'olm.channels.list[1]')"
values[DEFAULT_CHANNEL]="$(metadata.get olm.channels.default)"
values[VERSION]="$(metadata.get project.version)"
values[SERVING_VERSION]="$(metadata.get dependencies.serving)"
values[EVENTING_VERSION]="$(metadata.get dependencies.eventing)"
values[EVENTING_KAFKA_BROKER_VERSION]="$(metadata.get dependencies.eventing_kafka_broker)"
values[EVENTING_ISTIO_VERSION]="$(metadata.get dependencies.eventing_istio)"
values[GOLANG_VERSION]="$(metadata.get requirements.golang)"
values[NODEJS_VERSION]="$(metadata.get requirements.nodejs)"
values[OCP_TARGET_VLIST]="$(metadata.get 'requirements.ocpVersion.label')"
values[OCP_MAX_VERSION]="$(metadata.get 'requirements.ocpVersion.list[-1]')"
values[PREVIOUS_VERSION]="$(metadata.get olm.replaces)"
values[BUNDLE]="${SERVERLESS_BUNDLE}"
if [[ "$template" =~ index.Dockerfile ]]; then
cp "$template" "$target"
for before in "${!values[@]}"; do
echo "Value: ${before} -> ${values[$before]}"
sed --in-place "s|__${before}__|${values[${before}]}|" "$target"
done
current_version=$(metadata.get 'project.version')
major=$(versions.major "$current_version")
minor=$(versions.minor "$current_version")
micro=$(versions.micro "$current_version")
# One is already added in template
num_csvs=$(( INDEX_IMAGE_NUM_CSVS-1 ))
# TODO gradually migrate other bundle images to Konflux-based ones as we build more minor versions with Konflux
# Generate additional entries
for i in $(seq $num_csvs); do
current_minor=$(( minor-i ))
# If the current version is a z-stream then the following entries will
# start with the same "minor" version.
if [[ "$micro" != "0" ]]; then
current_minor=$(( current_minor+1 ))
fi
current_version="${major}.${current_minor}.0"
sed --in-place "/opm render/a registry.ci.openshift.org/knative/release-${current_version}:serverless-bundle \\\\" "$target"
done
# Hacks. Should gradually go away with next versions.
# Workaround for https://issues.redhat.com/browse/SRVCOM-3207
# Use a manually built image for 1.32.0.
# TODO: Remove this when 1.32.0 is not included in index. This is a problem only for 1.32.0.
sed --in-place "s|registry.ci.openshift.org/knative/release-1.32.0:serverless-bundle|quay.io/openshift-knative/serverless-bundle:release-1.32.0|" "$target"
# Replace the old format for 1.31.0 and older.
sed --in-place "s|registry.ci.openshift.org/knative/release-1.31.0:serverless-bundle|registry.ci.openshift.org/knative/openshift-serverless-v1.31.0:serverless-bundle|" "$target"
elif [[ "$template" =~ catalog.Dockerfile ]]; then
while IFS=$'\n' read -r ocp_version; do
values[OCP_VERSION]="${ocp_version}"
mkdir -p "${target}/v${ocp_version}"
target_dockerfile="${target}/v${ocp_version}/Dockerfile"
cp "$template" "${target_dockerfile}"
for before in "${!values[@]}"; do
echo "Value: ${before} -> ${values[$before]}"
sed --in-place "s|__${before}__|${values[${before}]}|" "${target_dockerfile}"
done
done < <(metadata.get 'requirements.ocpVersion.list[*]')
else
cp "$template" "$target"
for before in "${!values[@]}"; do
echo "Value: ${before} -> ${values[$before]}"
sed --in-place "s|__${before}__|${values[${before}]}|" "$target"
done
fi