-
Notifications
You must be signed in to change notification settings - Fork 61
Copying MCAD CRDs in Kustomize config instead of referencing them #357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 5 commits
fd00167
07f6abf
81400ae
2dffc9e
b2966ee
80835d3
72524ca
e1f3759
79159cd
29d544e
f6fdbc3
97efe89
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -146,9 +146,13 @@ defaults: | |
|
||
gofmt -w $(DEFAULTS_TEST_FILE) | ||
|
||
# this encounters sed issues on MacOS, quick fix is to use gsed or to escape the parentheses i.e. \( \) | ||
.PHONY: manifests | ||
manifests: controller-gen ## Generate RBAC objects. | ||
manifests: controller-gen kustomize ## Generate RBAC objects. | ||
$(CONTROLLER_GEN) rbac:roleName=manager-role webhook paths="./..." | ||
$(SED) -i -E "s|(- )\${MCAD_REPO}.*|\1\${MCAD_CRD}|" config/crd/mcad/kustomization.yaml | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. here too |
||
$(KUSTOMIZE) build config/crd/mcad > config/crd/mcad.yaml && make split_yaml FILE=config/crd/mcad.yaml | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. dont call this |
||
git restore config/* | ||
Fiona-Waters marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
.PHONY: fmt | ||
fmt: ## Run go fmt against code. | ||
|
@@ -192,19 +196,16 @@ endif | |
|
||
.PHONY: install | ||
install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config. | ||
$(SED) -i -E "s|(- )\${MCAD_REPO}.*|\1\${MCAD_CRD}|" config/crd/mcad/kustomization.yaml | ||
$(KUSTOMIZE) build config/crd | kubectl apply -f - | ||
git restore config/* | ||
|
||
.PHONY: uninstall | ||
uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion. | ||
$(SED) -i -E "s|(- )\${MCAD_REPO}.*|\1\${MCAD_CRD}|" config/crd/mcad/kustomization.yaml | ||
$(KUSTOMIZE) build config/crd | kubectl delete --ignore-not-found=$(ignore-not-found) -f - | ||
git restore config/* | ||
|
||
.PHONY: deploy | ||
deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. | ||
$(SED) -i -E "s|(- )\${MCAD_REPO}.*|\1\${MCAD_CRD}|" config/crd/mcad/kustomization.yaml | ||
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} | ||
$(KUSTOMIZE) build config/${ENV} | kubectl apply -f - | ||
git restore config/* | ||
|
@@ -284,7 +285,6 @@ validate-bundle: install-operator-sdk | |
.PHONY: bundle | ||
bundle: defaults manifests kustomize install-operator-sdk ## Generate bundle manifests and metadata, then validate generated files. | ||
$(OPERATOR_SDK) generate kustomize manifests -q | ||
$(SED) -i -E "s|(- )\${MCAD_REPO}.*|\1\${MCAD_CRD}|" config/crd/mcad/kustomization.yaml | ||
cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG) | ||
cd config/manifests && $(KUSTOMIZE) edit add patch --patch '[{"op":"add", "path":"/metadata/annotations/containerImage", "value": "$(IMG)" }]' --kind ClusterServiceVersion | ||
cd config/manifests && $(KUSTOMIZE) edit add patch --patch '[{"op":"add", "path":"/spec/replaces", "value": "codeflare-operator.$(PREVIOUS_VERSION)" }]' --kind ClusterServiceVersion | ||
|
@@ -388,3 +388,32 @@ verify-imports: openshift-goimports ## Run import verifications. | |
.PHONY: scorecard-bundle | ||
scorecard-bundle: install-operator-sdk ## Run scorecard tests on bundle image. | ||
$(OPERATOR_SDK) scorecard bundle | ||
|
||
|
||
FILE ?= input.yaml # Default value, it isn't a file, but the make cmds fill hang for longer without it | ||
temp_dir := temp_split | ||
output_dir := 'config/crd/' | ||
|
||
.PHONY: check_yq | ||
check_yq: | ||
@command -v yq >/dev/null 2>&1 || (echo "Installing wget..."; yum install -y wget) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this should be |
||
@command -v yq >/dev/null 2>&1 || (echo "Installing yq..."; wget https://github.com/mikefarah/yq/releases/download/v4.2.0/yq_linux_amd64.tar.gz -O - |\ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this needs to be YQ |
||
tar xz && mv yq_linux_amd64 /usr/bin/yq) | ||
|
||
# this works on a MacOS by replacing awk with gawk | ||
.PHONY: split_yaml | ||
split_yaml: | ||
@$(MAKE) check_yq | ||
@mkdir -p $(temp_dir) | ||
@awk '/apiVersion: /{if (x>0) close("$(temp_dir)/section_" x ".yaml"); x++}{print > "$(temp_dir)/section_"x".yaml"}' $(FILE) | ||
@$(MAKE) process_sections | ||
|
||
.PHONY: process_sections | ||
process_sections: | ||
@mkdir -p $(output_dir) | ||
@for section_file in $(temp_dir)/section_*; do \ | ||
metadata_name=$$(yq e '.metadata.name' $$section_file); \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here you're calling YQ |
||
file_name=$$(echo $$metadata_name | awk -F'.' '{print $$2"."$$3"_"$$1".yaml"}'); \ | ||
mv $$section_file $(output_dir)/$$file_name; \ | ||
done | ||
@rm -r $(temp_dir) |
Uh oh!
There was an error while loading. Please reload this page.