about summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2021-04-15 19:40:00 -0700
committerFranck Cuny <franck@fcuny.net>2022-06-11 13:57:41 -0700
commitf0d3cb4797e9613dc565782b14ef19ab6e494ffb (patch)
tree0348ccc404811335057b02066030251c7f3065b2 /users
parentpull a container into a namespace (diff)
downloadworld-f0d3cb4797e9613dc565782b14ef19ab6e494ffb.tar.gz
add a lease to the Go context
This will ensure that our container will not be deleted while we work on
it. In addition, a default expiry of 24 hours will be set on it once the
lease is released (once the program is completed).

See [1] for more details.

[1] https://github.com/containerd/containerd/blob/261c107ffc4ff681bc73988f64e3f60c32233b37/docs/garbage-collection.md

Signed-off-by: Franck Cuny <franck@fcuny.net>
Diffstat (limited to 'users')
-rw-r--r--users/fcuny/exp/containerd-to-vm/cmd/c2vm/main.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/users/fcuny/exp/containerd-to-vm/cmd/c2vm/main.go b/users/fcuny/exp/containerd-to-vm/cmd/c2vm/main.go
index 4d0968b..5e9fbb0 100644
--- a/users/fcuny/exp/containerd-to-vm/cmd/c2vm/main.go
+++ b/users/fcuny/exp/containerd-to-vm/cmd/c2vm/main.go
@@ -42,6 +42,12 @@ func main() {
 	defer client.Close()
 
 	ctx := namespaces.WithNamespace(context.Background(), defaultNamespace)
+	ctx, done, err := client.WithLease(ctx)
+	if err != nil {
+		log.Fatalf("failed to get a lease: %v", err)
+	}
+	defer done(ctx)
+
 	image, err := client.Pull(ctx, *containerName, containerd.WithPlatformMatcher(platform))
 	if err != nil {
 		log.Fatalf("failed to pull the container %s: %v\n", *containerName, err)