diff --git a/pkg/cidata/cidata.TEMPLATE.d/meta-data b/pkg/cidata/cidata.TEMPLATE.d/meta-data index ad609c5103e..6d34c47b2bf 100644 --- a/pkg/cidata/cidata.TEMPLATE.d/meta-data +++ b/pkg/cidata/cidata.TEMPLATE.d/meta-data @@ -1 +1,2 @@ +instance-id: {{.IID}} local-hostname: lima-{{.Name}} diff --git a/pkg/cidata/cidata.go b/pkg/cidata/cidata.go index 9deff32702d..e53ab4fd945 100644 --- a/pkg/cidata/cidata.go +++ b/pkg/cidata/cidata.go @@ -10,6 +10,7 @@ import ( "path/filepath" "strconv" "strings" + "time" "github.com/lima-vm/lima/pkg/downloader" "github.com/lima-vm/lima/pkg/iso9660util" @@ -57,6 +58,9 @@ func GenerateISO9660(instDir, name string, y *limayaml.LimaYAML) error { Env: y.Env, } + // change instance id on every boot so network config will be processed again + args.IID = fmt.Sprintf("iid-%d", time.Now().Unix()) + pubKeys, err := sshutil.DefaultPubKeys(*y.SSH.LoadDotSSHPubKeys) if err != nil { return err diff --git a/pkg/cidata/template.go b/pkg/cidata/template.go index 5c92482c759..91659652e04 100644 --- a/pkg/cidata/template.go +++ b/pkg/cidata/template.go @@ -29,6 +29,7 @@ type Network struct { } type TemplateArgs struct { Name string // instance name + IID string // instance id User string // user name UID int SSHPubKeys []string