From fb90d1429cde1a0d96e9500f9050c60231a383a6 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 5 Dec 2019 15:31:41 -0800 Subject: [PATCH] Permissions fix for etcd restore with custom uid/gid --- services/etcd.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/services/etcd.go b/services/etcd.go index 6ea4e837..9ec43bcc 100644 --- a/services/etcd.go +++ b/services/etcd.go @@ -23,13 +23,12 @@ import ( ) const ( - EtcdSnapshotPath = "/opt/rke/etcd-snapshots/" - EtcdRestorePath = "/opt/rke/etcd-snapshots-restore/" - EtcdDataDir = "/var/lib/rancher/etcd/" - EtcdInitWaitTime = 10 - EtcdSnapshotWaitTime = 5 - EtcdSnapshotCompressedExtension = "zip" - EtcdPermFixContainerName = "etcd-fix-perm" + EtcdSnapshotPath = "/opt/rke/etcd-snapshots/" + EtcdRestorePath = "/opt/rke/etcd-snapshots-restore/" + EtcdDataDir = "/var/lib/rancher/etcd/" + EtcdInitWaitTime = 10 + EtcdSnapshotWaitTime = 5 + EtcdPermFixContainerName = "etcd-fix-perm" ) func RunEtcdPlane( @@ -379,7 +378,6 @@ func RunEtcdSnapshotSave(ctx context.Context, etcdHost *hosts.Host, prsMap map[s } func DownloadEtcdSnapshotFromS3(ctx context.Context, etcdHost *hosts.Host, prsMap map[string]v3.PrivateRegistry, etcdSnapshotImage string, name string, es v3.ETCDService) error { - log.Infof(ctx, "[etcd] Get snapshot [%s] on host [%s]", name, etcdHost.Address) s3Backend := es.BackupConfig.S3BackupConfig if len(s3Backend.Endpoint) == 0 || len(s3Backend.BucketName) == 0 { @@ -741,7 +739,11 @@ func setEtcdPermissions(ctx context.Context, etcdHost *hosts.Host, prsMap map[st hostCfg := &container.HostConfig{ Binds: []string{dataBind}, } - return docker.DoRunOnetimeContainer(ctx, etcdHost.DClient, imageCfg, hostCfg, EtcdPermFixContainerName, etcdHost.Address, ETCDRole, prsMap) + if err := docker.DoRunOnetimeContainer(ctx, etcdHost.DClient, imageCfg, hostCfg, EtcdPermFixContainerName, + etcdHost.Address, ETCDRole, prsMap); err != nil { + return err + } + return docker.DoRemoveContainer(ctx, etcdHost.DClient, EtcdPermFixContainerName, etcdHost.Address) } func getSanitizedSnapshotCmd(imageCfg *container.Config, bc *v3.BackupConfig) string {