Skip to content

Commit 2428df9

Browse files
josvazgs-urbaniak
authored andcommitted
CLOUDP-358677: Embed CRDs
1 parent 972914a commit 2428df9

File tree

5 files changed

+2221
-1
lines changed

5 files changed

+2221
-1
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ x509-cert: ## Create X.509 cert at path tmp/x509/ (see docs/x509-user.md)
500500
clean: ## Clean built binaries
501501
rm -rf bin/*
502502
rm -rf config/manifests/bases/
503-
rm config/generated/crd/bases/crds.yaml
503+
rm -f config/generated/crd/bases/crds.yaml
504504
rm -f config/crd/bases/*.yaml
505505
rm -f config/rbac/clusterwide/role.yaml
506506
rm -f config/rbac/namespaced/role.yaml
@@ -886,6 +886,7 @@ gen-crds: tools/openapi2crd/bin/openapi2crd
886886
$(MAKE) -C tools/openapi2crd build
887887
$(OPENAPI2CRD) --config config/openapi2crd.yaml \
888888
--output $(realpath .)/config/generated/crd/bases/crds.yaml $(OPENAPI2CRD_OVERRIDE)
889+
cp $(realpath .)/config/generated/crd/bases/crds.yaml $(realpath .)/internal/generated/crds/crds.yaml
889890

890891
gen-go-types:
891892
@echo "==> Generating Go models from CRDs..."

internal/generated/crds/crds.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package crds
2+
3+
import (
4+
"bufio"
5+
"bytes"
6+
"fmt"
7+
8+
_ "embed"
9+
10+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
11+
)
12+
13+
//go:embed crds.yaml
14+
var crdsYAML []byte
15+
16+
// EmbeddedCRD tried to load the given kind from a set of embedded CRDs
17+
func EmbeddedCRD(kind string) (*apiextensionsv1.CustomResourceDefinition, error) {
18+
for {
19+
crd, err := ParseCRD(bufio.NewScanner(bytes.NewBuffer(crdsYAML)))
20+
if err != nil {
21+
return nil, fmt.Errorf("failed to parse CRDs YAML for %q: %w", kind, err)
22+
}
23+
if crd.Spec.Names.Kind == kind {
24+
return crd, nil
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)