Skip to content

Commit f9b5847

Browse files
authored
chore: add custom values.yaml for OLM bundles (#118)
* chore: add custom values.yaml for OLM bundles * fixes for the listener op * fixes for the listener op * fix values.yaml for secret op * add values.yaml for all other ops * build-manifests.py: remove hello world op support
1 parent 3389275 commit f9b5847

18 files changed

Lines changed: 167 additions & 21 deletions

File tree

olm/build-manifests.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,14 @@ def generate_csv(
442442
def generate_helm_templates(args: argparse.Namespace) -> list[dict]:
443443
logging.debug(f"start generate_helm_templates for {args.repo_operator}")
444444
template_path = args.repo_operator / "deploy" / "helm" / args.repo_operator.name
445-
helm_template_cmd = ["helm", "template", args.op_name, template_path]
445+
# Path to the default values.yaml used in the operator Helm charts.
446+
helm_values_path = template_path / "values.yaml"
447+
# Path to the custom values for OLM.
448+
olm_values_path = pathlib.Path(__file__).parent / "resources" / "values" / args.repo_operator.name / "values.yaml"
449+
helm_template_cmd = ["helm", "template", args.op_name,
450+
"--values", helm_values_path,
451+
"--values", olm_values_path,
452+
template_path]
446453
try:
447454
logging.debug("start generate_helm_templates")
448455
logging.info(f"Running {helm_template_cmd}")
@@ -538,6 +545,7 @@ def quay_image(images: list[tuple[str, str]]) -> list[dict[str, str]]:
538545
tag_url = (
539546
f"https://quay.io/api/v1/repository/stackable/{image}/tag?{release_tag}"
540547
)
548+
logging.debug(f"Fetching image manifest from {tag_url}")
541549
with urllib.request.urlopen(tag_url) as response:
542550
data = json.load(response)
543551
if not data["tags"]:
@@ -605,25 +613,18 @@ def write_metadata(args: argparse.Namespace) -> None:
605613

606614

607615
def main(argv) -> int:
608-
ret = 0
609-
try:
610-
opts = parse_args(argv[1:])
611-
logging.basicConfig(encoding="utf-8", level=opts.log_level)
612-
613-
# logging.debug(f"Options: {opts}")
616+
opts = parse_args(argv[1:])
617+
logging.basicConfig(encoding="utf-8", level=opts.log_level)
614618

615-
manifests = generate_manifests(opts)
619+
manifests = generate_manifests(opts)
616620

617-
logging.info(f"Removing directory {opts.dest_dir}")
618-
if opts.dest_dir.exists():
619-
shutil.rmtree(opts.dest_dir)
621+
logging.info(f"Removing directory {opts.dest_dir}")
622+
if opts.dest_dir.exists():
623+
shutil.rmtree(opts.dest_dir)
620624

621-
write_manifests(opts, manifests)
622-
write_metadata(opts)
623-
except Exception as e:
624-
logging.error(e)
625-
ret = 1
626-
return ret
625+
write_manifests(opts, manifests)
626+
write_metadata(opts)
627+
return 0
627628

628629

629630
CSV_DISPLAY_NAME = {
@@ -632,11 +633,11 @@ def main(argv) -> int:
632633
"druid": "Stackable Operator for Apache Druid",
633634
"hbase": "Stackable Operator for Apache HBase",
634635
"hdfs": "Stackable Operator for Apache Hadoop HDFS",
635-
"hello-world": "Stackable Hello World Operator",
636636
"hive": "Stackable Operator for Apache Hive",
637637
"kafka": "Stackable Operator for Apache Kafka",
638638
"nifi": "Stackable Operator for Apache NiFi",
639639
"opa": "Stackable Operator for the Open Policy Agent",
640+
"opensearch": "Stackable Operator for OpenSearch",
640641
"spark-k8s": "Stackable Operator for Apache Spark",
641642
"superset": "Stackable Operator for Apache Superset",
642643
"trino": "Stackable Operator for Trino",

olm/build-manifests.sh

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ OPERATOR=""
3838
MANIFESTS_DIR=""
3939
METADATA_DIR=""
4040

41+
# Location of the stackable-utils repo.
42+
# Needed to build path to custom OLM values.yaml files.
43+
UTILS_REPO_DIR=$(pwd)
44+
4145
generate_metadata() {
4246

4347
# generate metadata
@@ -56,7 +60,7 @@ annotations:
5660
operators.operatorframework.io.bundle.metadata.v1: metadata/
5761
operators.operatorframework.io.bundle.package.v1: stackable-${OPERATOR}
5862
59-
com.redhat.openshift.versions: v4.11-v4.19
63+
com.redhat.openshift.versions: v4.18-v4.20
6064
ANNOS
6165

6266
popd
@@ -75,8 +79,14 @@ generate_manifests() {
7579
cat "$OP_ROOT/deploy/helm/$OPERATOR/crds/crds.yaml" | yq -s '.spec.names.kind'
7680
fi
7781

78-
# expand config map, roles, service account, etc.
79-
helm template "$OPERATOR" "$OP_ROOT/deploy/helm/$OPERATOR" | yq -s '.metadata.name'
82+
# Expand the Helm chart to individual files by applying both the default values.yaml
83+
# and the OLM specific values.yaml.
84+
# Each document is saved in file named "{.kind}-{.metadata.name}.yaml" to reduce the number of
85+
# name collisions when multiple objects share the same name.
86+
helm template "$OPERATOR" \
87+
--values "$OP_ROOT/deploy/helm/$OPERATOR/values.yaml" \
88+
--values "$UTILS_REPO_DIR/olm/resources/values/$OPERATOR/values.yaml" \
89+
"$OP_ROOT/deploy/helm/$OPERATOR" | yq -s '(.kind // "kind-unknown") + "-" + (.metadata.name // "name-unknown")'
8090
popd
8191
}
8292

@@ -110,6 +120,12 @@ parse_inputs() {
110120
OPERATOR="$PRODUCT-operator"
111121
MANIFESTS_DIR="$OPENSHIFT_ROOT/operators/stackable-$OPERATOR/$RELEASE_VERSION/manifests"
112122
METADATA_DIR="$OPENSHIFT_ROOT/operators/stackable-$OPERATOR/$RELEASE_VERSION/metadata"
123+
124+
if [ "stackable-utils" != $(basename "$UTILS_REPO_DIR") ]; then
125+
echo "ERROR: Looks like you are not calling this script from the base [stackable-utils] repository."
126+
echo "ERROR: This is required to properly reference files under the [resources] folder."
127+
exit 1
128+
fi
113129
}
114130

115131
maybe_print_help() {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 256Mi
4+
requests:
5+
memory: 256Mi
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 1024Mi
4+
requests:
5+
memory: 1024Mi
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 256Mi
4+
requests:
5+
memory: 256Mi
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 256Mi
4+
requests:
5+
memory: 256Mi
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 256Mi
4+
requests:
5+
memory: 256Mi
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 256Mi
4+
requests:
5+
memory: 256Mi
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
limits:
3+
memory: 256Mi
4+
requests:
5+
memory: 256Mi
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
csiProvisioner:
2+
controllerService:
3+
resources:
4+
limits:
5+
memory: 256Mi
6+
requests:
7+
memory: 256Mi
8+
9+
externalProvisioner:
10+
resources:
11+
requests:
12+
memory: 128Mi
13+
limits:
14+
memory: 128Mi
15+
16+
csiNodeDriver:
17+
nodeService:
18+
resources:
19+
limits:
20+
memory: 256Mi
21+
requests:
22+
memory: 256Mi
23+
24+
nodeDriverRegistrar:
25+
resources:
26+
requests:
27+
memory: 128Mi
28+
limits:
29+
memory: 128Mi

0 commit comments

Comments
 (0)