Skip to content

Commit 4e80757

Browse files
committed
Add a script generating files for OperatorHub.io
Make a few adjustements to the base CSVs.
1 parent a16e9a0 commit 4e80757

File tree

4 files changed

+90
-10
lines changed

4 files changed

+90
-10
lines changed

CONTRIBUTING.md

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ Add one `Describe` section per method or function that you are unit testing:
4242
Within a `Describe`, use one `It` section per test case.
4343
If several `It` sections are similar, consider refactoring them in a `DescribeTable` construct with varying inputs.
4444

45+
### Generating bundles for OperatorHub.io
46+
47+
Use `hack/release-operator-hub` to generate bundles to be imported in
48+
[Operator Hub](https://github.com/k8s-operatorhub/community-operators).
49+
4550
### Kubernetes resources
4651

4752
- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests

config/manifests-hub/bases/kernel-module-management-hub.clusterserviceversion.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ metadata:
55
alm-examples: '[]'
66
capabilities: Basic Install
77
categories: Drivers and plugins
8+
repository: https://github.com/kubernetes-sigs/kernel-module-management
89
name: kernel-module-management-hub.v0.0.0
910
namespace: placeholder
1011
spec:
@@ -42,8 +43,6 @@ spec:
4243
- module
4344
- modules
4445
links:
45-
- name: GitHub repository
46-
url: https://github.com/kubernetes-sigs/kernel-module-management
4746
- name: Documentation
4847
url: https://kmm.sigs.k8s.io
4948
- name: Slack
@@ -52,6 +51,7 @@ spec:
5251
5352
name: Kernel Module Management
5453
maturity: stable
54+
minKubeVersion: 1.24.0
5555
provider:
5656
name: Kubernetes SIG Node
5757
url: https://github.com/kubernetes-sigs/kernel-module-management

config/manifests/bases/kernel-module-management.clusterserviceversion.yaml

+3-8
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,13 @@ metadata:
55
alm-examples: '[]'
66
capabilities: Basic Install
77
categories: Drivers and plugins
8-
name: kmm-operator.v0.0.0
8+
repository: https://github.com/kubernetes-sigs/kernel-module-management
9+
name: kernel-module-management.v0.0.0
910
namespace: placeholder
1011
spec:
1112
apiservicedefinitions: {}
1213
customresourcedefinitions:
1314
owned:
14-
- description: Module is the Schema for the modules API
15-
displayName: Module
16-
kind: Module
17-
name: modules.kmm.sigs.x-k8s.io
18-
version: v1alpha1
1915
- description: Module describes how to load a module on different kernel versions
2016
displayName: Module
2117
kind: Module
@@ -52,8 +48,6 @@ spec:
5248
- module
5349
- modules
5450
links:
55-
- name: GitHub repository
56-
url: https://github.com/kubernetes-sigs/kernel-module-management
5751
- name: Documentation
5852
url: https://kmm.sigs.k8s.io
5953
- name: Slack
@@ -62,6 +56,7 @@ spec:
6256
6357
name: Kernel Module Management
6458
maturity: stable
59+
minKubeVersion: 1.24.0
6560
provider:
6661
name: Kubernetes SIG Node
6762
url: https://github.com/kubernetes-sigs/kernel-module-management

hack/release-operator-hub

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#!/usr/bin/env bash
2+
3+
# This script generates bundle directories to be imported into OperatorHub.io.s
4+
5+
set -euo pipefail
6+
7+
output_dir=''
8+
9+
make_output_dir () {
10+
if ! [ -d "$output_dir" ]; then
11+
mkdir "$output_dir"
12+
else
13+
rm -fr "${output_dir:?}"/*
14+
fi
15+
}
16+
17+
created_at=$(date +'%Y-%m-%d %H:%M:%S')
18+
readonly created_at
19+
container_image=''
20+
csv_path=''
21+
deployment_name=''
22+
23+
replace_csv () {
24+
yq -i "
25+
.metadata.annotations.containerImage = \"$container_image\" |
26+
.metadata.annotations.createdAt = \"$created_at\" |
27+
(.spec.install.spec.deployments[]
28+
| select(.name == \"$deployment_name\")
29+
| .spec.template.spec.containers[]
30+
| select(.name == \"manager\").image) = \"$container_image\" |
31+
(.spec.install.spec.deployments[]
32+
| select(.name == \"$deployment_name\")
33+
| .spec.template.spec.containers[]
34+
| select(.name == \"manager\").env[]
35+
| select(.name == \"RELATED_IMAGES_SIGN\").value) = \"$SIGN_IMG\"
36+
" "$csv_path"
37+
}
38+
39+
: "$VERSION"
40+
: "$KMM_CONTAINER_IMG"
41+
: "$KMM_HUB_CONTAINER_IMG"
42+
: "$SIGN_IMG"
43+
44+
# KMM
45+
46+
output_dir="kmm-operatorhub-$VERSION"
47+
48+
echo "Generating KMM bundle files for OperatorHub in $output_dir"
49+
50+
make bundle VERSION="$VERSION"
51+
52+
make_output_dir
53+
54+
cp -r bundle/* "$output_dir"
55+
56+
container_image=$KMM_CONTAINER_IMG
57+
csv_path=$output_dir/manifests/kernel-module-management.clusterserviceversion.yaml
58+
deployment_name=kmm-operator-controller-manager
59+
60+
replace_csv
61+
62+
# KMM-Hub
63+
64+
output_dir="kmm-hub-operatorhub-$VERSION"
65+
66+
echo "Generating KMM-Hub bundle files for OperatorHub in $output_dir"
67+
68+
make bundle-hub VERSION="$VERSION"
69+
70+
make_output_dir
71+
72+
cp -r bundle/* "$output_dir"
73+
74+
container_image=$KMM_HUB_CONTAINER_IMG
75+
csv_path=$output_dir/manifests/kernel-module-management-hub.clusterserviceversion.yaml
76+
deployment_name=kmm-operator-hub-controller-manager
77+
78+
replace_csv
79+
80+
echo 'Done.'

0 commit comments

Comments
 (0)