Skip to content

✨ Add SBOM to release target #6

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1118,6 +1118,7 @@ release-binary: $(RELEASE_DIR)
release-staging: ## Build and push container images to the staging bucket
REGISTRY=$(STAGING_REGISTRY) $(MAKE) docker-build-all
REGISTRY=$(STAGING_REGISTRY) $(MAKE) docker-image-verify
$(MAKE) attach-sbom-all
REGISTRY=$(STAGING_REGISTRY) $(MAKE) docker-push-all
REGISTRY=$(STAGING_REGISTRY) $(MAKE) release-alias-tag
# Set the manifest image to the staging bucket.
Expand Down Expand Up @@ -1280,6 +1281,46 @@ set-manifest-image:
$(info Updating kustomize image patch file for manager resource)
sed -i'' -e 's@image: .*@image: '"${MANIFEST_IMG}:$(MANIFEST_TAG)"'@' $(TARGET_RESOURCE)

## --------------------------------------
## cosign SBOM
## --------------------------------------

.PHONY: attach-sbom-all
attach-sbom-all: $(addprefix attach-sbom-,$(ALL_ARCH)) ## Generate and attach SBOM for all container images

attach-sbom-%:
$(MAKE) ARCH=$* attach-sbom

.PHONY: attach-sbom-core
attach-sbom-core: ## Generate and sign SBOM for core image
cosign generate-attestation --predicate-type=spdx $(CONTROLLER_IMG)-$(ARCH):$(TAG) > sbom-core-$(ARCH).spdx.json
cosign sign-attestation --predicate sbom-core-$(ARCH).spdx.json $(CONTROLLER_IMG)-$(ARCH):$(TAG)

.PHONY: attach-sbom-kubeadm-bootstrap
attach-sbom-kubeadm-bootstrap: ## Generate and sign SBOM for kubeadm bootstrap image
cosign generate-attestation --predicate-type=spdx $(KUBEADM_BOOTSTRAP_CONTROLLER_IMG)-$(ARCH):$(TAG) > sbom-bootstrap-$(ARCH).spdx.json
cosign sign-attestation --predicate sbom-bootstrap-$(ARCH).spdx.json $(KUBEADM_BOOTSTRAP_CONTROLLER_IMG)-$(ARCH):$(TAG)

.PHONY: attach-sbom-kubeadm-control-plane
attach-sbom-kubeadm-control-plane: ## Generate and sign SBOM for kubeadm control plane image
cosign generate-attestation --predicate-type=spdx $(KUBEADM_CONTROL_PLANE_CONTROLLER_IMG)-$(ARCH):$(TAG) > sbom-control-plane-$(ARCH).spdx.json
cosign sign-attestation --predicate sbom-control-plane-$(ARCH).spdx.json $(KUBEADM_CONTROL_PLANE_CONTROLLER_IMG)-$(ARCH):$(TAG)

.PHONY: attach-sbom-docker-infrastructure
attach-sbom-docker-infrastructure: ## Generate and sign SBOM for docker infrastructure image
cosign generate-attestation --predicate-type=spdx $(CAPD_CONTROLLER_IMG)-$(ARCH):$(TAG) > sbom-docker-infra-$(ARCH).spdx.json
cosign sign-attestation --predicate sbom-docker-infra-$(ARCH).spdx.json $(CAPD_CONTROLLER_IMG)-$(ARCH):$(TAG)

.PHONY: attach-sbom-test-extension
attach-sbom-test-extension: ## Generate and sign SBOM for test extension image
cosign generate-attestation --predicate-type=spdx $(TEST_EXTENSION_IMG)-$(ARCH):$(TAG) > sbom-test-extension-$(ARCH).spdx.json
cosign sign-attestation --predicate sbom-test-extension-$(ARCH).spdx.json $(TEST_EXTENSION_IMG)-$(ARCH):$(TAG)

.PHONY: attach-sbom-clusterctl
attach-sbom-clusterctl: ## Generate and sign SBOM for clusterctl image
cosign generate-attestation --predicate-type=spdx $(CLUSTERCTL_IMG)-$(ARCH):$(TAG) > sbom-clusterctl-$(ARCH).spdx.json
cosign sign-attestation --predicate sbom-clusterctl-$(ARCH).spdx.json $(CLUSTERCTL_IMG)-$(ARCH):$(TAG)

## --------------------------------------
## Cleanup / Verification
## --------------------------------------
Expand Down
Loading