linsk/constants/image.go

51 lines
1.4 KiB
Go
Raw Normal View History

2023-08-30 12:39:38 +01:00
package constants
import (
"runtime"
"github.com/AlexSSD7/linsk/utils"
)
const baseAlpineVersionMajor = "3.18"
const baseAlpineVersionMinor = "3"
const baseAlpineVersionCombined = baseAlpineVersionMajor + "." + baseAlpineVersionMinor
const LinskVMImageVersion = "1"
var baseAlpineArch string
var baseImageURL string
var alpineBaseImageHash []byte
func init() {
baseAlpineArch = "x86_64"
alpineBaseImageHash = utils.MustDecodeHex("925f6bc1039a0abcd0548d2c3054d54dce31cfa03c7eeba22d10d85dc5817c98")
if runtime.GOOS == "arm64" {
baseAlpineArch = "aarch64"
alpineBaseImageHash = utils.MustDecodeHex("c94593729e4577650d9e73ada28e3cbe56964ab2a27240364f8616e920ed6d4e")
}
baseImageURL = "https://dl-cdn.alpinelinux.org/alpine/v" + baseAlpineVersionMajor + "/releases/" + baseAlpineArch + "/alpine-virt-" + baseAlpineVersionCombined + "-" + baseAlpineArch + ".iso"
}
func GetAlpineBaseImageURL() string {
return baseImageURL
}
func GetAlpineBaseImageTags() string {
return baseAlpineVersionCombined + "-" + baseAlpineArch
}
func GetVMImageTags() string {
return GetAlpineBaseImageTags() + "-linsk" + LinskVMImageVersion
}
func GetAlpineBaseImageFileName() string {
return "alpine-" + GetAlpineBaseImageTags() + ".img"
}
func GetAlpineBaseImageHash() []byte {
// Making a copy so that remote caller cannot modify the original variable.
tmp := make([]byte, len(alpineBaseImageHash))
copy(tmp, alpineBaseImageHash)
return tmp
}