Skip to content

Commit 3db7729

Browse files
committed
OLS-1829: Detect change in specified BYOK images
1 parent fbf0f3b commit 3db7729

File tree

16 files changed

+1127
-13
lines changed

16 files changed

+1127
-13
lines changed

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,18 @@ OS_CONSOLE_PLUGIN_CRD_URL = https://raw.githubusercontent.com/openshift/api/refs
131131
OCP_CLUSTER_VERSION_CRD_URL = https://raw.githubusercontent.com/openshift/api/refs/heads/release-4.18/config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yaml
132132
MONITORING_CRD_URL = https://raw.githubusercontent.com/openshift/prometheus-operator/master/bundle.yaml
133133
OCP_APISERVER_CRD_URL = https://raw.githubusercontent.com/openshift/api/refs/heads/release-4.18/payload-manifests/crds/0000_10_config-operator_01_apiservers.crd.yaml
134+
# generated with `controller-gen crd paths=./image/... output:crd:dir=./crd` from https://github.com/openshift/api
135+
OCP_IMAGESTREAM_CRD_URL = ./config/crd/ocp/image.openshift.io_imagestreams.yaml
134136
TEST_CRD_DIR = .testcrds
135137
OS_CONSOLE_CRD_FILE = $(TEST_CRD_DIR)/openshift-console-crd.yaml
136138
OS_CONSOLE_PLUGIN_CRD_FILE = $(TEST_CRD_DIR)/openshift-console-plugin-crd.yaml
137139
OCP_CLUSTER_VERSION_CRD_FILE = $(TEST_CRD_DIR)/openshift-config-clusterversion-crd.yaml
138140
MONITORING_CRD_FILE = $(TEST_CRD_DIR)/monitoring-crd.yaml
139141
OCP_APISERVER_CRD_FILE = $(TEST_CRD_DIR)/openshift-apiserver-crd.yaml
142+
OCP_IMAGESTREAM_CRD_FILE = $(TEST_CRD_DIR)/image.openshift.io_imagestreams.yaml
140143

141144
.PHONY: test-crds
142-
test-crds: $(TEST_CRD_DIR) $(OS_CONSOLE_CRD_FILE) $(OS_CONSOLE_PLUGIN_CRD_FILE) $(MONITORING_CRD_FILE) $(OCP_CLUSTER_VERSION_CRD_FILE) $(OCP_APISERVER_CRD_FILE) ## Test Dependencies CRDs
145+
test-crds: $(TEST_CRD_DIR) $(OS_CONSOLE_CRD_FILE) $(OS_CONSOLE_PLUGIN_CRD_FILE) $(MONITORING_CRD_FILE) $(OCP_CLUSTER_VERSION_CRD_FILE) $(OCP_APISERVER_CRD_FILE) $(OCP_IMAGESTREAM_CRD_FILE) ## Test Dependencies CRDs
143146

144147
$(TEST_CRD_DIR):
145148
mkdir -p $(TEST_CRD_DIR)
@@ -159,6 +162,9 @@ $(OCP_CLUSTER_VERSION_CRD_FILE): $(TEST_CRD_DIR)
159162
$(OCP_APISERVER_CRD_FILE): $(TEST_CRD_DIR)
160163
wget -O $(OCP_APISERVER_CRD_FILE) $(OCP_APISERVER_CRD_URL)
161164

165+
$(OCP_IMAGESTREAM_CRD_FILE): $(TEST_CRD_DIR)
166+
cp $(OCP_IMAGESTREAM_CRD_URL) $(OCP_APISERVER_CRD_FILE)
167+
162168

163169
.PHONY: test-e2e
164170
test-e2e: ## Run e2e tests with an Openshift cluster. Requires KUBECONFIG and LLM_TOKEN environment variables.

cmd/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
_ "k8s.io/client-go/plugin/pkg/client/auth"
3333

3434
consolev1 "github.com/openshift/api/console/v1"
35+
imagev1 "github.com/openshift/api/image/v1"
3536
openshiftv1 "github.com/openshift/api/operator/v1"
3637
corev1 "k8s.io/api/core/v1"
3738
"k8s.io/apimachinery/pkg/runtime"
@@ -75,6 +76,7 @@ var (
7576
func init() {
7677
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
7778
utilruntime.Must(consolev1.AddToScheme(scheme))
79+
utilruntime.Must(imagev1.AddToScheme(scheme))
7880
utilruntime.Must(openshiftv1.AddToScheme(scheme))
7981
utilruntime.Must(monv1.AddToScheme(scheme))
8082
utilruntime.Must(configv1.AddToScheme(scheme))

config/crd/ocp/image.openshift.io_imagestreams.yaml

Lines changed: 301 additions & 0 deletions
Large diffs are not rendered by default.

config/rbac/role.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,18 @@ rules:
8787
- delete
8888
- get
8989
- update
90+
- apiGroups:
91+
- image.openshift.io
92+
resources:
93+
- imagestreams
94+
verbs:
95+
- create
96+
- delete
97+
- get
98+
- list
99+
- patch
100+
- update
101+
- watch
90102
- apiGroups:
91103
- monitoring.coreos.com
92104
resources:

go.mod

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,36 @@ require (
1616
)
1717

1818
require (
19+
dario.cat/mergo v1.0.2 // indirect
20+
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
21+
github.com/BurntSushi/toml v1.5.0 // indirect
1922
github.com/Masterminds/semver/v3 v3.4.0 // indirect
23+
github.com/Microsoft/go-winio v0.6.2 // indirect
24+
github.com/Microsoft/hcsshim v0.13.0 // indirect
25+
github.com/VividCortex/ewma v1.2.0 // indirect
26+
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d // indirect
2027
github.com/blang/semver/v4 v4.0.0 // indirect
28+
github.com/containerd/cgroups/v3 v3.0.5 // indirect
29+
github.com/containerd/errdefs v1.0.0 // indirect
30+
github.com/containerd/errdefs/pkg v0.3.0 // indirect
31+
github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect
32+
github.com/containerd/typeurl/v2 v2.2.3 // indirect
33+
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
34+
github.com/containers/ocicrypt v1.2.1 // indirect
35+
github.com/containers/storage v1.59.1 // indirect
36+
github.com/cyberphone/json-canonicalization v0.0.0-20241213102144-19d51d7fe467 // indirect
37+
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
38+
github.com/distribution/reference v0.6.0 // indirect
39+
github.com/docker/distribution v2.8.3+incompatible // indirect
40+
github.com/docker/docker v28.3.2+incompatible // indirect
41+
github.com/docker/docker-credential-helpers v0.9.3 // indirect
42+
github.com/docker/go-connections v0.5.0 // indirect
43+
github.com/docker/go-units v0.5.0 // indirect
44+
github.com/felixge/httpsnoop v1.0.4 // indirect
2145
github.com/fsnotify/fsnotify v1.9.0 // indirect
2246
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
47+
github.com/go-jose/go-jose/v4 v4.0.5 // indirect
48+
github.com/go-logr/stdr v1.2.2 // indirect
2349
github.com/go-openapi/swag/cmdutils v0.25.1 // indirect
2450
github.com/go-openapi/swag/conv v0.25.1 // indirect
2551
github.com/go-openapi/swag/fileutils v0.25.1 // indirect
@@ -32,25 +58,74 @@ require (
3258
github.com/go-openapi/swag/typeutils v0.25.1 // indirect
3359
github.com/go-openapi/swag/yamlutils v0.25.1 // indirect
3460
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
61+
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
62+
github.com/golang/protobuf v1.5.4 // indirect
3563
github.com/google/btree v1.1.3 // indirect
64+
github.com/google/go-containerregistry v0.20.3 // indirect
65+
github.com/google/go-intervals v0.0.2 // indirect
66+
github.com/gorilla/mux v1.8.1 // indirect
3667
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
68+
github.com/klauspost/compress v1.18.0 // indirect
69+
github.com/klauspost/pgzip v1.2.6 // indirect
70+
github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec // indirect
71+
github.com/mattn/go-runewidth v0.0.16 // indirect
72+
github.com/mattn/go-sqlite3 v1.14.28 // indirect
73+
github.com/miekg/pkcs11 v1.1.1 // indirect
74+
github.com/mistifyio/go-zfs/v3 v3.0.1 // indirect
75+
github.com/moby/docker-image-spec v1.3.1 // indirect
3776
github.com/moby/spdystream v0.5.0 // indirect
77+
github.com/moby/sys/capability v0.4.0 // indirect
78+
github.com/moby/sys/mountinfo v0.7.2 // indirect
79+
github.com/moby/sys/user v0.4.0 // indirect
3880
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
81+
github.com/opencontainers/go-digest v1.0.0 // indirect
82+
github.com/opencontainers/image-spec v1.1.1 // indirect
83+
github.com/opencontainers/runtime-spec v1.2.1 // indirect
84+
github.com/opencontainers/selinux v1.12.0 // indirect
3985
github.com/pkg/errors v0.9.1 // indirect
86+
github.com/proglottis/gpgme v0.1.4 // indirect
87+
github.com/rivo/uniseg v0.4.7 // indirect
88+
github.com/secure-systems-lab/go-securesystemslib v0.9.0 // indirect
89+
github.com/sigstore/fulcio v1.6.6 // indirect
90+
github.com/sigstore/protobuf-specs v0.4.1 // indirect
91+
github.com/sigstore/sigstore v1.9.5 // indirect
92+
github.com/sirupsen/logrus v1.9.3 // indirect
93+
github.com/smallstep/pkcs7 v0.1.1 // indirect
94+
github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 // indirect
95+
github.com/sylabs/sif/v2 v2.21.1 // indirect
96+
github.com/tchap/go-patricia/v2 v2.3.3 // indirect
97+
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
98+
github.com/ulikunitz/xz v0.5.12 // indirect
99+
github.com/vbatts/tar-split v0.12.1 // indirect
100+
github.com/vbauerster/mpb/v8 v8.10.2 // indirect
40101
github.com/x448/float16 v0.8.4 // indirect
102+
go.opencensus.io v0.24.0 // indirect
103+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
104+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect
105+
go.opentelemetry.io/otel v1.35.0 // indirect
106+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
107+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
41108
go.uber.org/automaxprocs v1.6.0 // indirect
42109
go.yaml.in/yaml/v2 v2.4.3 // indirect
43110
go.yaml.in/yaml/v3 v3.0.4 // indirect
111+
golang.org/x/crypto v0.43.0 // indirect
44112
golang.org/x/mod v0.29.0 // indirect
45113
golang.org/x/sync v0.17.0 // indirect
46114
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
115+
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
116+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
117+
google.golang.org/grpc v1.72.2 // indirect
47118
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
119+
gopkg.in/yaml.v3 v3.0.1 // indirect
48120
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
49121
sigs.k8s.io/randfill v1.0.0 // indirect
50122
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
51123
)
52124

53-
require github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.85.0
125+
require (
126+
github.com/containers/image/v5 v5.36.2
127+
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.85.0
128+
)
54129

55130
require (
56131
github.com/beorn7/perks v1.0.1 // indirect

0 commit comments

Comments
 (0)