@@ -401,6 +401,14 @@ e2e: chainsaw
401401e2e-sidecar : chainsaw
402402 $(CHAINSAW ) test --test-dir ./tests/e2e-sidecar --report-name e2e-sidecar $(CHAINSAW_SELECTOR )
403403
404+ # End-to-end tests for ClusterObservability. The CRD is not bundled, so install
405+ # it directly from config/crd/bases/. --parallel 1 because only the oldest
406+ # active ClusterObservability CR reconciles.
407+ .PHONY : e2e-clusterobservability
408+ e2e-clusterobservability : chainsaw
409+ kubectl apply -f config/crd/bases/opentelemetry.io_clusterobservabilities.yaml
410+ $(CHAINSAW ) test --test-dir ./tests/e2e-clusterobservability --report-name e2e-clusterobservability --parallel 1
411+
404412# end-to-end-test for testing automatic RBAC creation
405413.PHONY : e2e-automatic-rbac
406414e2e-automatic-rbac : chainsaw
@@ -521,6 +529,16 @@ prepare-e2e: chainsaw set-image-controller add-image-targetallocator add-image-o
521529prepare-e2e-no-crds : chainsaw set-image-controller add-image-targetallocator add-image-opampbridge start-kind cert-manager install-metrics-server install-targetallocator-prometheus-crds load-image-all deploy-no-crds
522530 @mkdir -p ./.testresults/e2e
523531
532+ # ClusterObservability needs the kubelet to serve a cluster-CA-signed cert so
533+ # the bundled kubeletstats receiver can verify it via the SA-token CA bundle.
534+ # Override KIND_CONFIG to a kubelet-config that enables serverTLSBootstrap; the
535+ # kubelet-serving CSR is then approved as part of start-kind.
536+ .PHONY : prepare-e2e-clusterobservability
537+ prepare-e2e-clusterobservability : KIND_CONFIG = kind-clusterobservability-$(KUBE_VERSION ) .yaml
538+ prepare-e2e-clusterobservability : add-rbac-permissions-to-operator
539+ @$(MAKE ) add-operator-arg OPERATOR_ARG=--feature-gates=+operator.clusterobservability
540+ @$(MAKE ) prepare-e2e
541+
524542# Run operator-sdk scorecard tests for bundles
525543.PHONY : scorecard-tests
526544scorecard-tests : operator-sdk
@@ -619,8 +637,15 @@ container-instrumentation-all: container-instrumentation-java container-instrume
619637start-kind : kind
620638ifeq (true,$(START_KIND_CLUSTER ) )
621639 $(KIND) create cluster --name $(KIND_CLUSTER_NAME) --config $(KIND_CONFIG) || true
640+ @$(MAKE) approve-kubelet-csrs
622641endif
623642
643+ # Approve any kubelet-serving CSRs created via serverTLSBootstrap. No-op for
644+ # kind configs that do not enable bootstrap.
645+ .PHONY : approve-kubelet-csrs
646+ approve-kubelet-csrs :
647+ @kubectl get csr -o jsonpath=' {range .items[?(@.spec.signerName=="kubernetes.io/kubelet-serving")]}{.metadata.name}{" "}{end}' | xargs -r kubectl certificate approve
648+
624649# Stop kind cluster
625650.PHONY : stop-kind
626651stop-kind : kind
0 commit comments