forked from gardenlinux/gardenlinux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
127 lines (90 loc) · 5.71 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
SNAPSHOT_DATE=`bin/garden-version --date`
VERSION=`bin/garden-version`
IMAGE_BASENAME=garden-linux
PUBLIC=true
AWS_DISTRIBUTE=
BUILDDIR=.build
BUILDKEY="[email protected]"
signature:
@mkdir -p $(BUILDDIR)
@gpg --list-secret-keys $(BUILDKEY) > /dev/null || echo "No secret key for $(BUILDKEY) exists, signing disabled"
@gpg --export --armor $(BUILDKEY) > $(BUILDDIR)/sign.pub
@diff $(BUILDDIR)/sign.pub gardenlinux.pub || echo "Not using the official key"
docker:
@docker build -t gardenlinux/build-image:$(VERSION) .
all: all_dev all_prod
all_prod: ali aws gcp azure openstack vmware kvm
all_dev: ali-dev aws-dev gcp-dev azure-dev openstack-dev vmware-dev
ALI_IMAGE_NAME=$(IMAGE_BASENAME)-ali-$(VERSION)
ali: docker signature
./build.sh --no-build --features server,cloud,gardener,ali $(BUILDDIR)/ali $(SNAPSHOT_DATE)
ali-upload:
aliyun oss cp $(BUILDDIR)/ali/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.qcow2 oss://gardenlinux-development/gardenlinux/$(ALI_IMAGE_NAME).qcow2
ALI_DEV_IMAGE_NAME=$(IMAGE_BASENAME)-dev-ali-$(VERSION)
ali-dev: docker signature
./build.sh --no-build --features server,cloud,gardener,ali,_dev $(BUILDDIR)/ali-dev $(SNAPSHOT_DATE)
ali-dev-upload:
aliyun oss cp $(BUILDDIR)/ali-dev/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.qcow2 oss://gardenlinux-development/gardenlinux/$(ALI_DEV_IMAGE_NAME).qcow2
AWS_IMAGE_NAME=$(IMAGE_BASENAME)-aws-$(VERSION)
aws: docker signature
./build.sh --no-build --features server,cloud,gardener,aws $(BUILDDIR)/aws $(SNAPSHOT_DATE)
aws-upload:
./bin/make-ec2-ami --bucket gardenlinux --region eu-central-1 --image-name=$(AWS_IMAGE_NAME) $(BUILDDIR)/aws/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.raw --permission-public "$(PUBLIC)" --distribute "$(AWS_DISTRIBUTE)"
AWS_DEV_IMAGE_NAME=$(IMAGE_BASENAME)-dev-aws-$(VERSION)
aws-dev: docker signature
./build.sh --no-build --features server,cloud,gardener,aws,_dev $(BUILDDIR)/aws-dev $(SNAPSHOT_DATE)
aws-dev-upload:
./bin/make-ec2-ami --bucket ami-debian-image-test --region eu-central-1 --image-name=$(AWS_DEV_IMAGE_NAME) $(BUILDDIR)/aws-dev/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.raw --permission-public "$(PUBLIC)" --distribute "$(AWS_DISTRIBUTE)"
GCP_IMAGE_NAME=$(IMAGE_BASENAME)-gcp-$(VERSION)
gcp: docker signature
./build.sh --no-build --features server,cloud,gardener,gcp $(BUILDDIR)/gcp $(SNAPSHOT_DATE)
gcp-upload:
./bin/make-gcp-ami --bucket gardenlinux-images --image-name $(GCP_IMAGE_NAME) --raw-image-path $(BUILDDIR)/gcp/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs-gcpimage.tar.gz --permission-public "$(PUBLIC)"
GCP_DEV_IMAGE_NAME=$(IMAGE_BASENAME)-dev-gcp-$(VERSION)
gcp-dev: docker signature
./build.sh --no-build --features server,cloud,gardener,gcp,_dev $(BUILDDIR)/gcp-dev $(SNAPSHOT_DATE)
gcp-dev-upload:
./bin/make-gcp-ami --bucket garden-linux-test --image-name $(GCP_DEV_IMAGE_NAME) --raw-image-path $(BUILDDIR)/gcp-dev/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs-gcpimage.tar.gz --permission-public "$(PUBLIC)"
AZURE_IMAGE_NAME=$(IMAGE_BASENAME)-az-$(VERSION)
azure: docker signature
./build.sh --no-build --features server,cloud,gardener,azure $(BUILDDIR)/azure $(SNAPSHOT_DATE)
azure-upload:
./bin/make-azure-ami --resource-group garden-linux --storage-account-name gardenlinux --image-path=$(BUILDDIR)/azure/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.vhd --image-name=$(AZURE_IMAGE_NAME)
AZURE_DEV_IMAGE_NAME=$(IMAGE_BASENAME)-dev-az-$(VERSION)
azure-dev: docker signature
./build.sh --no-build --features server,cloud,gardener,azure,_dev $(BUILDDIR)/azure-dev $(SNAPSHOT_DATE)
azure-dev-upload:
./bin/make-azure-ami --resource-group garden-linux --storage-account-name gardenlinux --image-path=$(BUILDDIR)/azure-dev/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.vhd --image-name=$(AZURE_DEV_IMAGE_NAME)
OPENSTACK_IMAGE_NAME=$(IMAGE_BASENAME)-openstack-$(VERSION)
openstack: docker signature
./build.sh --no-build --features server,cloud,gardener,openstack $(BUILDDIR)/openstack $(SNAPSHOT_DATE)
openstack-upload:
./bin/upload-openstack $(BUILDDIR)/openstack/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.vmdk $(OPENSTACK_IMAGE_NAME)
OPENSTACK_DEV_IMAGE_NAME=$(IMAGE_BASENAME)-openstack-dev-$(VERSION)
openstack-dev: docker signature
./build.sh --no-build --features server,cloud,gardener,openstack,_dev $(BUILDDIR)/openstack-dev $(SNAPSHOT_DATE)
openstack-dev-upload:
./bin/upload-openstack $(BUILDDIR)/openstack-dev/$(SNAPSHOT_DATE)/amd64/bullseye/rootfs.vmdk $(OPENSTACK_DEV_IMAGE_NAME)
VMWARE_DEV_IMAGE_NAME=$(IMAGE_BASENAME)-vmware-dev-$(VERSION)
vmware-dev: docker signature
./build.sh --no-build --features server,cloud,gardener,vmware,_dev $(BUILDDIR)/vmware-dev $(SNAPSHOT_DATE)
vmware: docker signature
./build.sh --no-build --features server,cloud,gardener,vmware $(BUILDDIR)/vmware $(SNAPSHOT_DATE)
cloud: docker signature
./build.sh --no-build --features server,cloud $(BUILDDIR)/cloud $(SNAPSHOT_DATE)
kvm: docker signature
./build.sh --no-build --features server,cloud,kvm,_dev $(BUILDDIR)/kvm $(SNAPSHOT_DATE)
anvil: docker signature
./build.sh --no-build --features server,cloud-anvil,kvm,_dev $(BUILDDIR)/anvil $(SNAPSHOT_DATE)
onmetal: metal
metal: docker signature
./build.sh --no-build --features server,metal $(BUILDDIR)/metal $(SNAPSHOT_DATE)
metal-dev: docker signature
./build.sh --no-build --features server,metal,_dev $(BUILDDIR)/metal $(SNAPSHOT_DATE)
clean:
@echo "emptying $(BUILDDIR)"
@rm -rf $(BUILDDIR)
@echo "deleting all containers running gardenlinux/build-image"
@-docker container rm $$(docker container ls -a | awk '{ print $$1,$$2 }' | grep gardenlinux/build-image: | awk '{ print $$1 }') 2> /dev/null || true
@echo "deleting all images of gardenlinux/build-image"
@-docker image rm --force $$(docker image ls -a | awk '{ print $$1,$$3 }' | grep gardenlinux/build-image | awk '{ print $$2 }' | sort -u) 2> /dev/null || true