mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-02-14 10:00:11 +00:00
Some checks failed
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m40s
Post / coverage (push) Failing after 35m43s
Post / images (amd64) (push) Failing after 8m36s
Post / images (arm64) (push) Failing after 8m8s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Close stale issues and PRs / stale (push) Successful in 48s
* Import OCM API changes for workload conditions Signed-off-by: Ben Perry <bhperry94@gmail.com> * Implement condition rule evaluator Signed-off-by: Ben Perry <bhperry94@gmail.com> * Evaluate manifest condition rules after apply Signed-off-by: Ben Perry <bhperry94@gmail.com> * note to self Signed-off-by: Ben Perry <bhperry94@gmail.com> * Cleanup Signed-off-by: Ben Perry <bhperry94@gmail.com> * Return config option if rules are set Signed-off-by: Ben Perry <bhperry94@gmail.com> * update api Signed-off-by: Ben Perry <bhperry94@gmail.com> * Always return an error to inform user about the state of their condition rule Signed-off-by: Ben Perry <bhperry94@gmail.com> * Condition rule errors should not result in retrying apply Signed-off-by: Ben Perry <bhperry94@gmail.com> * Test condition rule reconciliation Signed-off-by: Ben Perry <bhperry94@gmail.com> * Return condition status Unknown when an internal CEL error occurs Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update api Signed-off-by: Ben Perry <bhperry94@gmail.com> * Switch to common CEL lib Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update to simplified celExpressions format Signed-off-by: Ben Perry <bhperry94@gmail.com> * Formatting Signed-off-by: Ben Perry <bhperry94@gmail.com> * tidy Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update ocm api Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update sdk-go Signed-off-by: Ben Perry <bhperry94@gmail.com> * Switch to sdk-go ConditionLib Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update API Signed-off-by: Ben Perry <bhperry94@gmail.com> * Switch to WellKnownConditions with required Condition field Signed-off-by: Ben Perry <bhperry94@gmail.com> * Support CEL evaluation budget Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update sdk-go Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update API Signed-off-by: Ben Perry <bhperry94@gmail.com> * lint Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update go.mod Signed-off-by: Ben Perry <bhperry94@gmail.com> * Tests and comments Signed-off-by: Ben Perry <bhperry94@gmail.com> * Move condition reader to status controller for more frequent updates Signed-off-by: Ben Perry <bhperry94@gmail.com> * Ignore missing WellKnownCondition Signed-off-by: Ben Perry <bhperry94@gmail.com> * Fix test Signed-off-by: Ben Perry <bhperry94@gmail.com> * Update condition tests Signed-off-by: Ben Perry <bhperry94@gmail.com> --------- Signed-off-by: Ben Perry <bhperry94@gmail.com>
132 lines
4.6 KiB
Makefile
132 lines
4.6 KiB
Makefile
SHELL :=/bin/bash
|
|
|
|
all: build
|
|
.PHONY: all
|
|
|
|
# Include the library makefile
|
|
include $(addprefix ./vendor/github.com/openshift/build-machinery-go/make/, \
|
|
golang.mk \
|
|
targets/openshift/deps.mk \
|
|
targets/openshift/images.mk \
|
|
targets/openshift/yaml-patch.mk\
|
|
lib/tmp.mk\
|
|
)
|
|
|
|
# Include the integration/e2e setup makefile.
|
|
include ./test/integration-test.mk
|
|
include ./test/e2e-test.mk
|
|
include ./test/olm-test.mk
|
|
|
|
OPERATOR_SDK?=$(PERMANENT_TMP_GOPATH)/bin/operator-sdk
|
|
OPERATOR_SDK_VERSION?=v1.32.0
|
|
operatorsdk_gen_dir:=$(dir $(OPERATOR_SDK))
|
|
|
|
HELM?=$(PERMANENT_TMP_GOPATH)/bin/helm
|
|
HELM_VERSION?=v3.14.0
|
|
helm_gen_dir:=$(dir $(HELM))
|
|
|
|
# RELEASED_CSV_VERSION indicates the last released operator version.
|
|
# can find the released operator version from
|
|
# https://github.com/k8s-operatorhub/community-operators/tree/main/operators/cluster-manager
|
|
# https://github.com/k8s-operatorhub/community-operators/tree/main/operators/klusterlet
|
|
RELEASED_CSV_VERSION?=0.14.0
|
|
export RELEASED_CSV_VERSION
|
|
|
|
# CSV_VERSION is used to generate latest CSV manifests
|
|
CSV_VERSION?=9.9.9
|
|
export CSV_VERSION
|
|
|
|
OPERATOR_SDK_ARCHOS:=linux_amd64
|
|
HELM_ARCHOS:=linux-amd64
|
|
ifeq ($(GOHOSTOS),darwin)
|
|
ifeq ($(GOHOSTARCH),amd64)
|
|
OPERATOR_SDK_ARCHOS:=darwin_amd64
|
|
HELM_ARCHOS:=darwin-amd64
|
|
endif
|
|
ifeq ($(GOHOSTARCH),arm64)
|
|
OPERATOR_SDK_ARCHOS:=darwin_arm64
|
|
HELM_ARCHOS:=darwin-arm64
|
|
endif
|
|
endif
|
|
|
|
# Add packages to do unit test
|
|
GO_TEST_PACKAGES :=./pkg/...
|
|
GO_TEST_FLAGS := -race -coverprofile=coverage.out
|
|
|
|
IMAGE_REGISTRY?=quay.io/open-cluster-management
|
|
IMAGE_TAG?=latest
|
|
|
|
OPERATOR_IMAGE_NAME ?= $(IMAGE_REGISTRY)/registration-operator:$(IMAGE_TAG)
|
|
# WORK_IMAGE can be set in the env to override calculated value
|
|
WORK_IMAGE ?= $(IMAGE_REGISTRY)/work:$(IMAGE_TAG)
|
|
# REGISTRATION_IMAGE can be set in the env to override calculated value
|
|
REGISTRATION_IMAGE ?= $(IMAGE_REGISTRY)/registration:$(IMAGE_TAG)
|
|
# PLACEMENT_IMAGE can be set in the env to override calculated value
|
|
PLACEMENT_IMAGE ?= $(IMAGE_REGISTRY)/placement:$(IMAGE_TAG)
|
|
# ADDON_MANAGER_IMAGE can be set in the env to override calculated value
|
|
ADDON_MANAGER_IMAGE ?= $(IMAGE_REGISTRY)/addon-manager:$(IMAGE_TAG)
|
|
|
|
$(call build-image,registration,$(REGISTRATION_IMAGE),./build/Dockerfile.registration,.)
|
|
$(call build-image,work,$(WORK_IMAGE),./build/Dockerfile.work,.)
|
|
$(call build-image,placement,$(PLACEMENT_IMAGE),./build/Dockerfile.placement,.)
|
|
$(call build-image,registration-operator,$(OPERATOR_IMAGE_NAME),./build/Dockerfile.registration-operator,.)
|
|
$(call build-image,addon-manager,$(ADDON_MANAGER_IMAGE),./build/Dockerfile.addon,.)
|
|
|
|
copy-crd:
|
|
bash -x hack/copy-crds.sh $(YAML_PATCH)
|
|
|
|
update: copy-crd update-csv
|
|
|
|
test-unit: ensure-kubebuilder-tools
|
|
|
|
update-csv: ensure-operator-sdk ensure-helm
|
|
bash -x hack/update-csv.sh
|
|
|
|
verify-crds:
|
|
bash -x hack/verify-crds.sh $(YAML_PATCH)
|
|
|
|
verify-gocilint:
|
|
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.6
|
|
golangci-lint run --timeout=5m --modules-download-mode vendor ./...
|
|
|
|
install-golang-gci:
|
|
go install github.com/daixiang0/gci@v0.13.6
|
|
|
|
fmt-imports: install-golang-gci
|
|
gci write --skip-generated -s standard -s default -s "prefix(open-cluster-management.io)" -s "prefix(open-cluster-management.io/ocm)" cmd pkg test dependencymagnet
|
|
|
|
verify-fmt-imports: install-golang-gci
|
|
@output=$$(gci diff --skip-generated -s standard -s default -s "prefix(open-cluster-management.io)" -s "prefix(open-cluster-management.io/ocm)" cmd pkg test dependencymagnet); \
|
|
if [ -n "$$output" ]; then \
|
|
echo "Diff output is not empty: $$output"; \
|
|
echo "Please run 'make fmt-imports' to format the golang files imports automatically."; \
|
|
exit 1; \
|
|
else \
|
|
echo "Diff output is empty"; \
|
|
fi
|
|
|
|
verify: verify-fmt-imports verify-crds verify-gocilint
|
|
|
|
ensure-operator-sdk:
|
|
ifeq "" "$(wildcard $(OPERATOR_SDK))"
|
|
$(info Installing operator-sdk into '$(OPERATOR_SDK)')
|
|
mkdir -p '$(operatorsdk_gen_dir)'
|
|
curl -s -f -L https://github.com/operator-framework/operator-sdk/releases/download/$(OPERATOR_SDK_VERSION)/operator-sdk_$(OPERATOR_SDK_ARCHOS) -o '$(OPERATOR_SDK)'
|
|
chmod +x '$(OPERATOR_SDK)';
|
|
else
|
|
$(info Using existing operator-sdk from "$(OPERATOR_SDK)")
|
|
endif
|
|
|
|
ensure-helm:
|
|
ifeq "" "$(wildcard $(HELM))"
|
|
$(info Installing helm into '$(HELM)')
|
|
mkdir -p '$(helm_gen_dir)'
|
|
curl -s -f -L https://get.helm.sh/helm-$(HELM_VERSION)-$(HELM_ARCHOS).tar.gz -o '$(helm_gen_dir)$(HELM_VERSION)-$(HELM_ARCHOS).tar.gz'
|
|
tar -zvxf '$(helm_gen_dir)/$(HELM_VERSION)-$(HELM_ARCHOS).tar.gz' -C $(helm_gen_dir)
|
|
mv $(helm_gen_dir)/$(HELM_ARCHOS)/helm $(HELM)
|
|
rm -rf $(helm_gen_dir)/$(HELM_ARCHOS)
|
|
chmod +x '$(HELM)';
|
|
else
|
|
$(info Using existing helm from "$(HELM)")
|
|
endif
|