Skip to content

Commit 63ae179

Browse files
committed
Makefile cleanup, etcd catalog example generation for auto-merge setup in CoC repo
1 parent 2ff8531 commit 63ae179

File tree

7 files changed

+365
-27
lines changed

7 files changed

+365
-27
lines changed

Makefile

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
OPERATOR_NAME = example-operator
2+
OPERATOR_NAME = etcd
33
VERSION ?= "latest"
44
INDEX_IMAGE = "quay.io/joelanford/example-operator-index:$(VERSION)"
55

@@ -11,21 +11,16 @@ catalog: bin/opm bin/yq veneer.yaml convert.sh
1111
echo "OWNERS" > catalog/$(OPERATOR_NAME)/.indexignore
1212

1313
.PHONY: sanity
14-
sanity: catalog bin/opm
14+
sanity: catalog bin/opm pretest
1515
bin/opm validate catalog
1616

17-
PNAME =
18-
19-
#.PHONY: pretest
20-
#pretest: catalog bin/yq
21-
# PNAME=$$(bin/yq "select(.schema == \"olm.package\") | .name" catalog/$(OPERATOR_NAME)/catalog.yaml)
22-
# @echo `bin/yq "select(.schema == \"olm.package\") | .name" catalog/$(OPERATOR_NAME)/catalog.yaml`
23-
# @export PNAME=$(shell bin/yq "select(.schema == \"olm.package\") | .name" catalog/$(OPERATOR_NAME)/catalog.yaml)
24-
# @echo package name is $(PNAME)
25-
# @if [ ${PNAME} != ${OPERATOR_NAME} ] \
26-
# then \
27-
# $(error "operator name in veneer and Makefile does not agree: Makefile(${OPERATOR_NAME}) Veneer:(${PNAME})")
28-
# fi
17+
.PHONY: pretest
18+
pretest: bin/yq catalog
19+
@./sanity.sh -n $(OPERATOR_NAME) -f catalog/$(OPERATOR_NAME)/catalog.yaml;
20+
@if [ $$? -ne 0 ] ; then \
21+
echo "operator name in veneer and Makefile do not agree"; \
22+
false; \
23+
fi
2924

3025
.PHONY: build
3126
build: catalog sanity bin/opm bin/yq

sanity.sh

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#! /bin/bash
2+
# PNAME=$$(bin/yq "select(.schema == \"olm.package\") | .name" catalog/$(OPERATOR_NAME)/catalog.yaml)
3+
# @echo `bin/yq "select(.schema == \"olm.package\") | .name" catalog/$(OPERATOR_NAME)/catalog.yaml`
4+
# @export PNAME=$(shell bin/yq "select(.schema == \"olm.package\") | .name" catalog/$(OPERATOR_NAME)/catalog.yaml)
5+
# @echo package name is $(PNAME)
6+
# @if [ ${PNAME} != ${OPERATOR_NAME} ] \
7+
# then \
8+
# $(error "operator name in veneer and Makefile does not agree: Makefile(${OPERATOR_NAME}) Veneer:(${PNAME})")
9+
# fi
10+
11+
function usage () {
12+
echo "usage: $0 -n package-name -f veneer-file-name"
13+
exit 1
14+
}
15+
16+
YQ=bin/yq
17+
18+
while getopts 'n:f:' arg;
19+
do
20+
case "$arg" in
21+
f) FILENAME=$OPTARG ;;
22+
n) PKGNAME=$OPTARG ;;
23+
h) usage ;;
24+
esac
25+
done
26+
shift `expr $OPTIND - 1`
27+
28+
#echo "FILENAME is $FILENAME"
29+
#echo "PKGNAME is $PKGNAME"
30+
31+
if [ -z $FILENAME ]
32+
then
33+
echo "veneer-file-name is empty"
34+
usage
35+
fi
36+
37+
if [ ! -e $FILENAME ]
38+
then
39+
echo "$FILENAME does not exist"
40+
exit 253
41+
fi
42+
43+
if [ -z $PKGNAME ]
44+
then
45+
echo "package-name is empty"
46+
usage
47+
fi
48+
49+
if [ ! -e $YQ ]
50+
then
51+
echo "unable to find yq binary: $YQ"
52+
exit 255
53+
fi
54+
55+
SCHEMA_PNAME=$($YQ "select(.schema == \"olm.package\") | .name" ${FILENAME})
56+
if [ $SCHEMA_PNAME != $PKGNAME ]
57+
then
58+
echo "operator name in veneer and Makefile do not agree:"
59+
echo " Makefile(${SCHEMA_PNAME})"
60+
echo " veneer( ${PKGNAME})"
61+
exit 254
62+
else
63+
echo "operator name match between veneer and Makefile"
64+
fi
65+
66+

veneer-examples/etcd/operator.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"schema": "olm.package",
3+
"name": "etcd",
4+
"defaultChannel": "alpha"
5+
}
6+
{
7+
"schema": "olm.bundle",
8+
"name": "etcdoperator-community.v0.6.1",
9+
"package": "etcd",
10+
"image": "docker.io/anik120/etcd:latest",
11+
"properties": [
12+
{
13+
"type": "olm.gvk",
14+
"value": {
15+
"group": "etcd.database.coreos.com",
16+
"kind": "EtcdCluster",
17+
"version": "v1beta2"
18+
}
19+
},
20+
{
21+
"type": "olm.package",
22+
"value": {
23+
"packageName": "etcd",
24+
"version": "0.6.1"
25+
}
26+
}
27+
]
28+
}
29+
{
30+
"schema": "olm.bundle",
31+
"name": "etcdoperator-community.v0.9.4",
32+
"package": "etcd",
33+
"image": "docker.io/anik120/etcd:v0.9.4",
34+
"properties": [
35+
{
36+
"type": "olm.gvk",
37+
"value": {
38+
"group": "etcd.database.coreos.com",
39+
"kind": "EtcdCluster",
40+
"version": "v1beta2"
41+
}
42+
},
43+
{
44+
"type": "olm.package",
45+
"value": {
46+
"packageName": "etcd",
47+
"version": "0.9.4"
48+
}
49+
}
50+
]
51+
}
52+
{
53+
"schema": "olm.channel",
54+
"name": "alpha",
55+
"package": "etcd",
56+
"entries": [
57+
{"name":"etcdoperator-community.v0.6.1"},
58+
{"name":"etcdoperator-community.v0.9.4", "replaces":"etcdoperator-community.v0.6.1"},
59+
]
60+
}

veneer-examples/etcd/operator.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
schema: olm.package
3+
name: etcd
4+
defaultChannel: alpha
5+
---
6+
schema: olm.bundle
7+
name: etcdoperator-community.v0.6.1
8+
package: etcd
9+
image: docker.io/anik120/etcd:latest
10+
properties:
11+
- type: olm.gvk
12+
value:
13+
group: etcd.database.coreos.com
14+
kind: EtcdCluster
15+
version: v1beta2
16+
- type: olm.package
17+
value:
18+
packageName: etcd
19+
version: 0.6.1
20+
---
21+
schema: olm.bundle
22+
name: etcdoperator-community.v0.9.4
23+
package: etcd
24+
image: docker.io/anik120/etcd:v0.9.4
25+
properties:
26+
- type: olm.gvk
27+
value:
28+
group: etcd.database.coreos.com
29+
kind: EtcdCluster
30+
version: v1beta2
31+
- type: olm.package
32+
value:
33+
packageName: etcd
34+
version: 0.9.4
35+
---
36+
schema: olm.channel
37+
name: alpha
38+
package: etcd
39+
entries:
40+
- name: etcdoperator-community.v0.6.1
41+
- name: etcdoperator-community.v0.9.4
42+
replaces: etcdoperator-community.v0.6.1
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{
2+
"schema": "olm.package",
3+
"name": "prometheus",
4+
"defaultChannel": "alpha"
5+
}
6+
{
7+
"schema": "olm.bundle",
8+
"name": "prometheus-operator.v0.14.0",
9+
"package": "etcd",
10+
"image": "docker.io/anik120/prometheus:v0.14.0",
11+
"properties": [
12+
{
13+
"type": "olm.gvk",
14+
"value": {
15+
"group": "prometheuses.monitoring.coreos.com",
16+
"kind": "Prometheus",
17+
"version": "v1beta1"
18+
}
19+
},
20+
"type": "olm.gvk",
21+
"value": {
22+
"group": "alertmanagers.monitoring.coreos.com",
23+
"kind": "Alertmanager",
24+
"version": "v1beta1"
25+
}
26+
},
27+
},
28+
"type": "olm.gvk",
29+
"value": {
30+
"group": "servicemonitors.monitoring.coreos.com",
31+
"kind": "ServiceMonitor",
32+
"version": "v1beta1"
33+
}
34+
},
35+
{
36+
"type": "olm.package",
37+
"value": {
38+
"packageName": "prometheus",
39+
"version": "0.14.0"
40+
}
41+
}
42+
]
43+
}
44+
{
45+
"schema": "olm.bundle",
46+
"name": "prometheus-operator.v0.15.0",
47+
"package": "etcd",
48+
"image": "docker.io/anik120/prometheus:v0.15.0",
49+
"properties": [
50+
"type": "olm.gvk",
51+
"value": {
52+
"group": "prometheuses.monitoring.coreos.com",
53+
"kind": "Prometheus",
54+
"version": "v1beta1"
55+
}
56+
},
57+
"type": "olm.gvk",
58+
"value": {
59+
"group": "alertmanagers.monitoring.coreos.com",
60+
"kind": "Alertmanager",
61+
"version": "v1beta1"
62+
}
63+
},
64+
},
65+
"type": "olm.gvk",
66+
"value": {
67+
"group": "servicemonitors.monitoring.coreos.com",
68+
"kind": "ServiceMonitor",
69+
"version": "v1beta1"
70+
}
71+
},
72+
{
73+
"type": "olm.package",
74+
"value": {
75+
"packageName": "prometheus",
76+
"version": "0.15.0"
77+
}
78+
}
79+
]
80+
}
81+
{
82+
"schema": "olm.channel",
83+
"name": "alpha",
84+
"package": "prometheus",
85+
"entries": [
86+
{"name":"prometheus-operator.v0.14.0"},
87+
{"name":"prometheus-operator.v0.15.0", "replaces":"prometheus-operator.v0.15.0"},
88+
]
89+
}
90+
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
schema: olm.package
3+
name: prometheus
4+
defaultChannel: alpha
5+
---
6+
schema: olm.channel
7+
name: alpha
8+
package: prometheus
9+
entries:
10+
- name: prometheus-operator.v0.14.0
11+
- name: prometheus-operator.v0.15.0
12+
replaces: prometheus-operator.v0.14.0
13+
---
14+
schema: olm.bundle
15+
name: prometheus-operator.v0.14.0
16+
package: prometheus
17+
image: quay.io/operator-framework/operator-bundle-prometheus:0.14.0
18+
properties:
19+
- type: olm.gvk
20+
value:
21+
group: prometheuses.monitoring.coreos.com
22+
kind: Prometheus
23+
version: v1beta1
24+
- type: olm.gvk
25+
value:
26+
group: alertmanagers.monitoring.coreos.com
27+
kind: Alertmanager
28+
version: v1beta1
29+
- type: olm.gvk
30+
value:
31+
group: servicemonitors.monitoring.coreos.com
32+
kind: ServiceMonitor
33+
version: v1beta1
34+
- type: olm.package
35+
value:
36+
packageName: prometheus
37+
version: 0.14.0
38+
---
39+
schema: olm.bundle
40+
name: prometheus-operator.v0.15.0
41+
package: prometheus
42+
image: quay.io/operator-framework/operator-bundle-prometheus:0.15.0
43+
properties:
44+
- type: olm.gvk
45+
value:
46+
group: prometheuses.monitoring.coreos.com
47+
kind: Prometheus
48+
version: v1beta1
49+
- type: olm.gvk
50+
value:
51+
group: alertmanagers.monitoring.coreos.com
52+
kind: Alertmanager
53+
version: v1beta1
54+
- type: olm.gvk
55+
value:
56+
group: servicemonitors.monitoring.coreos.com
57+
kind: ServiceMonitor
58+
version: v1beta1
59+
- type: olm.package
60+
value:
61+
packageName: prometheus
62+
version: 0.15.0

0 commit comments

Comments
 (0)