@@ -43,6 +43,11 @@ build image options:
4343 Flags:
4444 --get-prebuilt-image - Instead of building a 'node' image
4545 locally, download it from a container registry instead.
46+ --k8sver VERSION - The Kubernetes version, e.g. "1.32.0" or "1.32.1".
47+ A previous version cannot be built from scratch. This option
48+ must be used with '--get-prebuilt-image'. To build a previous
49+ version of kubernetes it must be built with a previous version
50+ of mok.
4651 --tailf - Show the build output whilst building.
4752
4853EnD
@@ -77,6 +82,10 @@ BI_process_options() {
7782 _BI[tailf]=" ${TRUE} "
7883 return " ${OK} "
7984 ;;
85+ --k8sver)
86+ _BI[k8sver]=" $2 "
87+ return " $( PA_shift) "
88+ ;;
8089 --get-prebuilt-image)
8190 _BI[useprebuiltimage]=" ${TRUE} "
8291 return " ${OK} "
@@ -124,6 +133,7 @@ _BI_new() {
124133 _BI[baseimagename]=" mok-image"
125134 _BI[useprebuiltimage]=" ${FALSE} "
126135 _BI[dockerbuildtmpdir]=
136+ _BI[k8sver]=" ${K8SVERSION} "
127137
128138 # Program the parser's state machine
129139 PA_add_state " COMMAND" " build" " SUBCOMMAND" " "
@@ -163,12 +173,15 @@ _BI_build_container_image() {
163173 _BI_create_docker_build_dir || return
164174
165175 buildargs=$( _BI_get_build_args_for_latest) || return
166- basename=" ${_BI[baseimagename]} _$( MA_ostype ) "
167- tagname=" ${K8SVERSION } "
176+ basename=" ${_BI[baseimagename]} _$( MA_arch ) "
177+ tagname=" ${_BI[k8sver] } "
168178
169179 local imgprefix
170180 imgprefix=$( CU_imgprefix) || err || return
171181 if [[ ${_BI[useprebuiltimage]} == " ${FALSE} " ]]; then
182+ # Each mok release can build the hardcoded version only
183+ # so reset the tagname to that version
184+ tagname=" ${K8SVERSION} "
172185 buildtype=" create"
173186 cmd=" docker build \
174187 -t " ${imgprefix} local/${basename} :${tagname} " \
@@ -177,6 +190,7 @@ _BI_build_container_image() {
177190 ${_BI[dockerbuildtmpdir]} /${_BI[baseimagename]} "
178191 text=" Creating"
179192 else
193+ # We can download and run any available version
180194 buildtype=" download"
181195 cmd=" docker pull docker.io/myownkind/${basename} :${tagname} "
182196 text=" Downloading"
@@ -254,7 +268,7 @@ _BI_modify_container_image() {
254268 # Write image
255269 local imgprefix tagname basename
256270 imgprefix=$( CU_imgprefix) || err || return
257- basename=" ${_BI[baseimagename]} _$( MA_ostype ) "
271+ basename=" ${_BI[baseimagename]} _$( MA_arch ) "
258272 tagname=" ${K8SVERSION} "
259273 docker commit mok-build-modify " ${imgprefix} local/${basename} :${tagname} " || err || return
260274
0 commit comments