1
0
mirror of https://github.com/rancher/rke.git synced 2025-07-15 08:02:56 +00:00

Permissions fix for etcd restore with custom uid/gid

This commit is contained in:
Alena Prokharchyk 2019-12-05 15:31:41 -08:00
parent 6b68be717a
commit fb90d1429c

View File

@ -23,13 +23,12 @@ import (
) )
const ( const (
EtcdSnapshotPath = "/opt/rke/etcd-snapshots/" EtcdSnapshotPath = "/opt/rke/etcd-snapshots/"
EtcdRestorePath = "/opt/rke/etcd-snapshots-restore/" EtcdRestorePath = "/opt/rke/etcd-snapshots-restore/"
EtcdDataDir = "/var/lib/rancher/etcd/" EtcdDataDir = "/var/lib/rancher/etcd/"
EtcdInitWaitTime = 10 EtcdInitWaitTime = 10
EtcdSnapshotWaitTime = 5 EtcdSnapshotWaitTime = 5
EtcdSnapshotCompressedExtension = "zip" EtcdPermFixContainerName = "etcd-fix-perm"
EtcdPermFixContainerName = "etcd-fix-perm"
) )
func RunEtcdPlane( 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 { 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) log.Infof(ctx, "[etcd] Get snapshot [%s] on host [%s]", name, etcdHost.Address)
s3Backend := es.BackupConfig.S3BackupConfig s3Backend := es.BackupConfig.S3BackupConfig
if len(s3Backend.Endpoint) == 0 || len(s3Backend.BucketName) == 0 { 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{ hostCfg := &container.HostConfig{
Binds: []string{dataBind}, 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 { func getSanitizedSnapshotCmd(imageCfg *container.Config, bc *v3.BackupConfig) string {