-
Notifications
You must be signed in to change notification settings - Fork 2
Build: Add convert-to-ami and Multi container image build
#4
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 4 commits
902625f
6b2bd32
bc3b834
fa5d890
14b1306
cbc77be
a91d293
fb1edb6
dc8f185
f2d7b50
283c1c7
6060834
756906d
1bc1b31
75121c1
f9bcee8
c70e2f0
1b7b994
8dd80eb
143ec0a
b7e9273
2135799
3c9bb37
dd298b1
bb6d9da
19145be
9715928
3388235
13c0188
2bc6267
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 |
|---|---|---|
|
|
@@ -11,11 +11,16 @@ ROOTFS ?= btrfs | |
| ARCH ?= amd64 | ||
| BIB_CONTAINER ?= quay.io/centos-bootc/bootc-image-builder@sha256:ba8c4bee758b4b816ce0c3a605f55389412edab034918f56982e7893e0b08532 | ||
| GIT_COMMIT_HASH ?= $(shell git rev-parse HEAD) | ||
| AWS_ACCESS_KEY_ID ?= your_aws_access_key_id | ||
| AWS_SECRET_ACCESS_KEY ?= your_aws_secret_access_key | ||
| AWS_AMI_NAME ?= immutable-os-bootc-$(GIT_COMMIT_HASH:0:8) | ||
| AWS_S3_BUCKET ?= immutable-os-bootc | ||
| AWS_REGION ?= us-east-1 | ||
|
||
|
|
||
| .PHONY: build-oci-bootc-image | ||
| build-oci-bootc-image: | ||
| docker build \ | ||
| --build-arg GIT_COMMIT_HASH=$(GIT_COMMIT_HASH) \ | ||
| --build-arg GIT_COMMIT_HASH=${GIT_COMMIT_HASH} \ | ||
| -t ${OCI_REGISTRY}/${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} \ | ||
| . | ||
|
|
||
|
|
@@ -27,35 +32,53 @@ lint-dockerfile: | |
|
|
||
| .PHONY: login-public-oci-registry | ||
| login-public-oci-registry: | ||
| docker login -u=$(OCI_REGISTRY_USERNAME) -p=$(OCI_REGISTRY_PASSWORD) $(OCI_REGISTRY) | ||
| docker login -u=${OCI_REGISTRY_USERNAME} -p=${OCI_REGISTRY_PASSWORD} ${OCI_REGISTRY} | ||
|
|
||
| .PHONY: save-image-as-tar | ||
| save-image-as-tar: | ||
| docker save -o image-${GIT_COMMIT_HASH:0:8}.tar ${OCI_REGISTRY}/${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} | ||
|
|
||
| .PHONY: push-oci-image | ||
| push-oci-image: | ||
| docker push $(OCI_REGISTRY)/$(OCI_IMAGE_REPO):${OCI_IMAGE_TAG} | ||
| docker push ${OCI_REGISTRY}/${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} | ||
|
|
||
| .PHONY: pull-oci-image | ||
| pull-oci-image: | ||
| docker pull $(OCI_REGISTRY)/$(OCI_IMAGE_REPO):${OCI_IMAGE_TAG} | ||
| docker pull ${OCI_REGISTRY}/${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} | ||
|
|
||
| # See https://github.com/osbuild/bootc-image-builder | ||
| .PHONY: convert-to-disk-image | ||
| convert-to-disk-image: | ||
| .PHONY: convert-to-iso | ||
| convert-to-iso: | ||
| sudo podman load -i image-${GIT_COMMIT_HASH:0:8}.tar | ||
| sed -i "s|{DEFAULT_DISK}|${DEFAULT_DISK}|g" config.toml | ||
| sed -i "s|{DEFAULT_USER_NAME}|${DEFAULT_USER_NAME}|g" config.toml && \ | ||
| sed -i "s|{DEFAULT_USER_PASSWD}|${DEFAULT_USER_PASSWD}|g" config.toml && \ | ||
| sed -i "s|{DEFAULT_USER_NAME}|${DEFAULT_USER_NAME}|g" config.toml | ||
| sed -i "s|{DEFAULT_USER_PASSWD}|${DEFAULT_USER_PASSWD}|g" config.toml | ||
| sudo docker run --rm \ | ||
| --privileged \ | ||
| --security-opt label=type:unconfined_t \ | ||
| -v ./image-builder-output:/output \ | ||
| -v /var/lib/containers/storage:/var/lib/containers/storage \ | ||
| -v ./config.toml:/config.toml:ro \ | ||
| $(BIB_CONTAINER) \ | ||
| --type $(DISK_FORMAT) \ | ||
| ${BIB_CONTAINER} \ | ||
| --type ${DISK_FORMAT} \ | ||
| --use-librepo=True \ | ||
| --rootfs $(ROOTFS) \ | ||
| $(OCI_REGISTRY)/$(OCI_IMAGE_REPO):${OCI_IMAGE_TAG} | ||
| --rootfs ${ROOTFS} \ | ||
| ${OCI_REGISTRY}/${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} | ||
|
|
||
| # See https://github.com/osbuild/bootc-image-builder?tab=readme-ov-file#amazon-machine-images-amis | ||
| .PHONY: convert-to-ami | ||
| convert-to-ami: | ||
| sudo podman load -i image-${GIT_COMMIT_HASH:0:8}.tar | ||
| sudo docker run --rm \ | ||
| --privileged \ | ||
| --security-opt label=type:unconfined_t \ | ||
| -v /var/lib/containers/storage:/var/lib/containers/storage \ | ||
| --env AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} \ | ||
| --env AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} \ | ||
| ${BIB_CONTAINER} \ | ||
| --type ${DISK_FORMAT} \ | ||
| --rootfs ${ROOTFS} \ | ||
| --aws-ami-name ${AWS_AMI_NAME} \ | ||
| --aws-bucket ${AWS_S3_BUCKET} \ | ||
| --aws-region ${AWS_REGION} \ | ||
| ${OCI_REGISTRY}/${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} | ||
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just made user run single make subcommand.
No need to define/install/fix something except Makefile