1
- .PHONY : build image clean connector/connector.plugin.storage.qiniu.com plugin/plugin.storage.qiniu.com
1
+ include common.mk
2
2
3
- VERSION = $(shell git describe --tags HEAD)
4
- COMMITID = $(shell git rev-parse --short HEAD || echo "HEAD")
5
- BUILDTIME = $(shell date -u '+% Y-% m-% dT% H:% M:% SZ')
3
+ .PHONY : all
4
+ all : build
6
5
7
- build : image
8
- connector/connector.plugin.storage.qiniu.com :
6
+ .PHONY : build
7
+ build : connector/$(CONNECTOR_FILENAME ) plugin/$(PLUGIN_FILENAME )
8
+
9
+ connector/$(CONNECTOR_FILENAME ) :
9
10
cd connector && \
10
- go build -ldflags " -X main.VERSION=$( VERSION) -X main.COMMITID=$( COMMITID) -X main.BUILDTIME=$( BUILDTIME) " -o connector.plugin.storage.qiniu.com
11
- plugin/plugin.storage.qiniu.com :
11
+ go build -ldflags \
12
+ " -X main.VERSION=$( VERSION) -X main.COMMITID=$( COMMIT_ID) -X main.BUILDTIME=$( BUILD_TIME) " \
13
+ -o $(CONNECTOR_FILENAME )
14
+
15
+ plugin/$(PLUGIN_FILENAME ) :
12
16
cd plugin && \
13
- go build -ldflags " -X main.VERSION=$( VERSION) -X main.COMMITID=$( COMMITID) -X main.BUILDTIME=$( BUILDTIME) " -o plugin.storage.qiniu.com
14
- image : connector/connector.plugin.storage.qiniu.com plugin/plugin.storage.qiniu.com
15
- cp plugin/plugin.storage.qiniu.com docker/
16
- cp connector/connector.plugin.storage.qiniu.com docker/
17
- docker build --pull -t=" kodoproduct/csi-plugin.storage.qiniu.com:${VERSION} " docker/
18
- docker push " kodoproduct/csi-plugin.storage.qiniu.com:${VERSION} "
17
+ go build -ldflags \
18
+ " -X main.VERSION=$( VERSION) -X main.COMMITID=$( COMMIT_ID) -X main.BUILDTIME=$( BUILD_TIME) " \
19
+ -o $(PLUGIN_FILENAME )
20
+
21
+ .PHONY : clean
19
22
clean :
20
- rm -f connector/connector.plugin.storage.qiniu.com plugin/plugin.storage.qiniu.com docker/plugin.storage.qiniu.com docker/connector.plugin.storage.qiniu.com
23
+ rm -f connector/$(CONNECTOR_FILENAME ) \
24
+ plugin/$(PLUGIN_FILENAME )
25
+ rm -f k8s/kodo.yaml k8s/kodofs.yaml
26
+ rm -f docker/rclone docker/kodofs
27
+
28
+ k8s/kodo.yaml : k8s/kodo/kodo-plugin.yaml k8s/kodo/kodo-rbac.yaml k8s/kodo/kodo-provisioner.yaml common.mk
29
+ @cat k8s/kodo/kodo-plugin.yaml \
30
+ | sed ' s/$${DOCKERHUB_ORGANIZATION}/$(subst /,\/,$(DOCKERHUB_ORGANIZATION))/g' \
31
+ | sed ' s/$${DOCKERHUB_IMAGE}/$(DOCKERHUB_IMAGE)/g' \
32
+ | sed ' s/$${DOCKERHUB_TAG}/$(DOCKERHUB_TAG)/g' \
33
+ >> k8s/kodo.yaml
34
+ @echo --- >> k8s/kodo.yaml
35
+ @cat k8s/kodo/kodo-rbac.yaml >> k8s/kodo.yaml
36
+ @echo --- >> k8s/kodo.yaml
37
+ @cat k8s/kodo/kodo-provisioner.yaml >> k8s/kodo.yaml
38
+
39
+ k8s/kodofs.yaml : k8s/kodofs/kodofs-plugin.yaml k8s/kodofs/kodofs-rbac.yaml k8s/kodofs/kodofs-provisioner.yaml common.mk
40
+ @cat k8s/kodofs/kodofs-plugin.yaml \
41
+ | sed ' s/$${DOCKERHUB_ORGANIZATION}/$(subst /,\/,$(DOCKERHUB_ORGANIZATION))/g' \
42
+ | sed ' s/$${DOCKERHUB_IMAGE}/$(DOCKERHUB_IMAGE)/g' \
43
+ | sed ' s/$${DOCKERHUB_TAG}/$(DOCKERHUB_TAG)/g' \
44
+ >> k8s/kodofs.yaml
45
+ @echo --- >> k8s/kodofs.yaml
46
+ @cat k8s/kodofs/kodofs-rbac.yaml >> k8s/kodofs.yaml
47
+ @echo --- >> k8s/kodofs.yaml
48
+ @cat k8s/kodofs/kodofs-provisioner.yaml >> k8s/kodofs.yaml
49
+
50
+ .PHONY : combine_csi_driver_yaml
51
+ combine_csi_driver_yaml : k8s/kodo.yaml k8s/kodofs.yaml
52
+
53
+ .PHONY : install_kodo_csi_driver
54
+ install_kodo_csi_driver : k8s/kodo.yaml
55
+ kubectl apply -f $<
56
+
57
+ .PHONY : install_kodofs_csi_driver
58
+ install_kodofs_csi_driver : k8s/kodofs.yaml
59
+ kubectl apply -f $<
60
+
61
+ .PHONY : delete_kodo_csi_driver
62
+ delete_kodo_csi_driver : k8s/kodo.yaml
63
+ kubectl delete -f $<
64
+
65
+ .PHONY : delete_kodofs_csi_driver
66
+ delete_kodofs_csi_driver : k8s/kodofs.yaml
67
+ kubectl delete -f $<
68
+
69
+ .PHONY : install_plugins
70
+ install_plugins : install_kodo_csi_driver install_kodofs_csi_driver
71
+
72
+ .PHONY : delete_plugins
73
+ delete_plugins : delete_kodo_csi_driver delete_kodofs_csi_driver
74
+
75
+ docker/rclone :
76
+ curl -LJO# https://github.com/rclone/rclone/releases/download/$(RCLONE_VERSION ) /rclone-$(RCLONE_VERSION ) -linux-amd64.zip
77
+ unzip rclone-$(RCLONE_VERSION ) -linux-amd64.zip
78
+ mv rclone-$(RCLONE_VERSION ) -linux-amd64/rclone docker/rclone
79
+ rm rclone-$(RCLONE_VERSION ) -linux-amd64.zip
80
+ rm -rf rclone-$(RCLONE_VERSION ) -linux-amd64
81
+
82
+ # 下载kodofs二进制文件,由于kodofs是私有仓库,所以需要携带 Github API Token 才能下载
83
+ docker/kodofs :
84
+ @if [ -z $$ GITHUB_API_TOKEN ]; \
85
+ then \
86
+ echo " Please configure environment GITHUB_API_TOKEN" ; \
87
+ exit 1; \
88
+ fi
89
+ cd scripts && bash get_gh_asset.sh qbox kodofs $(KODOFS_VERSION ) kodofs
90
+ mv scripts/kodofs docker/kodofs
91
+
92
+
93
+ .PHONY : build_image
94
+ build_image : docker/rclone docker/kodofs
95
+ docker build --pull \
96
+ -t=" $( DOCKERHUB_ORGANIZATION) /$( DOCKERHUB_IMAGE) :$( VERSION) " \
97
+ -f Dockerfile .
98
+
99
+ .PHONY : push_image
100
+ push_image : build_image
101
+ docker push " $( DOCKERHUB_ORGANIZATION) /$( DOCKERHUB_IMAGE) :$( VERSION) "
102
+
103
+ .PHONY : install_kodo_static_example
104
+ install_kodo_static_example : k8s/kodo.yaml
105
+ kubectl apply -f k8s/kodo.yaml
106
+ kubectl apply -f examples/kodo/static-provisioning/
107
+ kubectl apply -f examples/kodo/deploy.yaml
108
+
109
+ .PHONY : delete_kodo_static_example
110
+ delete_kodo_static_example :
111
+ kubectl delete -f examples/kodo/deploy.yaml || true
112
+ kubectl delete -f examples/kodo/static-provisioning/ || true
113
+ kubectl delete -f k8s/kodo.yaml || true
114
+
115
+ .PHONY : install_kodo_dynamic_example
116
+ install_kodo_dynamic_example : k8s/kodo.yaml
117
+ kubectl apply -f k8s/kodo.yaml
118
+ kubectl apply -f examples/kodo/dynamic-provisioning/
119
+ kubectl apply -f examples/kodo/deploy.yaml
120
+
121
+ .PHONY : delete_kodo_dynamic_example
122
+ delete_kodo_dynamic_example :
123
+ kubectl delete -f examples/kodo/deploy.yaml || true
124
+ kubectl delete -f examples/kodo/dynamic-provisioning/ || true
125
+ kubectl delete -f k8s/kodo.yaml || true
126
+
127
+ .PHONY : install_kodofs_static_example
128
+ install_kodofs_static_example : k8s/kodofs.yaml
129
+ kubectl apply -f k8s/kodofs.yaml
130
+ kubectl apply -f examples/kodofs/static-provisioning/
131
+ kubectl apply -f examples/kodofs/deploy.yaml
132
+
133
+ .PHONY : delete_kodofs_static_example
134
+ delete_kodofs_static_example :
135
+ kubectl delete -f examples/kodofs/deploy.yaml || true
136
+ kubectl delete -f examples/kodofs/static-provisioning/ || true
137
+ kubectl delete -f k8s/kodofs.yaml || true
138
+
139
+ .PHONY : install_kodofs_dynamic_example
140
+ install_kodofs_dynamic_example : k8s/kodofs.yaml
141
+ kubectl apply -f k8s/kodofs.yaml
142
+ kubectl apply -f examples/kodofs/dynamic-provisioning/
143
+ kubectl apply -f examples/kodofs/deploy.yaml
144
+
145
+ .PHONY : delete_kodofs_dynamic_example
146
+ delete_kodofs_dynamic_example :
147
+ kubectl delete -f examples/kodofs/deploy.yaml || true
148
+ kubectl delete -f examples/kodofs/dynamic-provisioning/ || true
149
+ kubectl delete -f k8s/kodofs.yaml || true
0 commit comments