Skip to content

Commit

Permalink
fix: do not fail on pvc names longer than 63 characters (#150)
Browse files Browse the repository at this point in the history
Signed-off-by: Utku Ozdemir <uoz@protonmail.com>
  • Loading branch information
utkuozdemir committed Feb 4, 2022
1 parent 0148788 commit 5db63d8
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 19 deletions.
4 changes: 2 additions & 2 deletions helm/pv-migrate/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: pv-migrate
description: The helm chart of pv-migrate
type: application
version: 0.2.0
appVersion: 0.2.0
version: 0.2.1
appVersion: 0.2.1
home: https://github.com/utkuozdemir/pv-migrate
keywords:
- pv-migrate
Expand Down
16 changes: 8 additions & 8 deletions helm/pv-migrate/templates/rsync/job.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ spec:
resources:
{{- toYaml .Values.rsync.resources | nindent 12 }}
volumeMounts:
{{- range .Values.rsync.pvcMounts }}
- mountPath: {{ .mountPath }}
name: {{ .name }}
readOnly: {{ default false .readOnly }}
{{- range $index, $mount := .Values.rsync.pvcMounts }}
- mountPath: {{ $mount.mountPath }}
name: vol-{{ $index }}
readOnly: {{ default false $mount.readOnly }}
{{- end }}
{{- if .Values.rsync.privateKeyMount }}
- mountPath: {{ .Values.rsync.privateKeyMountPath }}
Expand All @@ -79,11 +79,11 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
volumes:
{{- range .Values.rsync.pvcMounts }}
- name: {{ .name }}
{{- range $index, $mount := .Values.rsync.pvcMounts }}
- name: vol-{{ $index }}
persistentVolumeClaim:
claimName: {{ required ".Values.rsync.pvcMounts[*].pvcName is required!" .name }}
readOnly: {{ default false .readOnly }}
claimName: {{ required ".Values.rsync.pvcMounts[*].pvcName is required!" $mount.name }}
readOnly: {{ default false $mount.readOnly }}
{{- end }}
{{- if .Values.rsync.privateKeyMount }}
- name: private-key
Expand Down
16 changes: 8 additions & 8 deletions helm/pv-migrate/templates/sshd/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ spec:
resources:
{{- toYaml .Values.sshd.resources | nindent 12 }}
volumeMounts:
{{- range .Values.sshd.pvcMounts }}
- mountPath: {{ .mountPath }}
name: {{ .name }}
readOnly: {{ default false .readOnly }}
{{- range $index, $mount := .Values.sshd.pvcMounts }}
- mountPath: {{ $mount.mountPath }}
name: vol-{{ $index }}
readOnly: {{ default false $mount.readOnly }}
{{- end }}
{{- if .Values.sshd.publicKeyMount }}
- mountPath: {{ .Values.sshd.publicKeyMountPath }}
Expand All @@ -69,11 +69,11 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
volumes:
{{- range .Values.sshd.pvcMounts }}
- name: {{ .name }}
{{- range $index, $mount := .Values.sshd.pvcMounts }}
- name: vol-{{ $index }}
persistentVolumeClaim:
claimName: {{ required ".Values.sshd.pvcMounts[*].pvcName is required!" .name }}
readOnly: {{ default false .readOnly }}
claimName: {{ required ".Values.sshd.pvcMounts[*].pvcName is required!" $mount.name }}
readOnly: {{ default false $mount.readOnly }}
{{- end }}
{{- if or .Values.sshd.publicKeyMount .Values.sshd.privateKeyMount }}
- name: keys
Expand Down
65 changes: 65 additions & 0 deletions internal/integrationtest/app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ const (
dataFilePath = "/volume/file.txt"
extraDataFilePath = "/volume/extra_file.txt"
generateDataContent = "DATA"

longSourcePvcName = "source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source-source"
longDestPvcName = "dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest-dest"
)

var (
Expand Down Expand Up @@ -299,6 +302,28 @@ func TestLocal(t *testing.T) {
assert.NoError(t, err)
}

func TestLongPVCNames(t *testing.T) {
_, err := execInPod(mainClusterCli, ns1, "long-dest", clearDataShellCommand)
assert.NoError(t, err)

cmd := fmt.Sprintf("--log-level debug m -i -n %s -N %s %s %s",
ns1, ns1, longSourcePvcName, longDestPvcName)
assert.NoError(t, runCliApp(cmd))

stdout, err := execInPod(mainClusterCli, ns1, "long-dest", printDataUidGidContentShellCommand)
assert.NoError(t, err)

parts := strings.Split(stdout, "\n")
assert.Equal(t, len(parts), 3)
if len(parts) < 3 {
return
}

assert.Equal(t, dataFileUid, parts[0])
assert.Equal(t, dataFileGid, parts[1])
assert.Equal(t, generateDataContent, parts[2])
}

func setup() error {
homeDir, err := userHomeDir()
if err != nil {
Expand Down Expand Up @@ -342,6 +367,11 @@ func setup() error {
return err
}

err = setupPVCsWithLongName()
if err != nil {
return err
}

_, err = createPVC(mainClusterCli, ns1, "source")
if err != nil {
return err
Expand Down Expand Up @@ -426,6 +456,41 @@ func setup() error {
return err
}

func setupPVCsWithLongName() error {
_, err := createPVC(mainClusterCli, ns1, longSourcePvcName)
if err != nil {
return err
}

_, err = createPVC(mainClusterCli, ns1, longDestPvcName)
if err != nil {
return err
}

_, err = createPod(mainClusterCli, ns1, "long-source", longSourcePvcName)
if err != nil {
return err
}

_, err = createPod(mainClusterCli, ns1, "long-dest", longDestPvcName)
if err != nil {
return err
}

err = waitUntilPodIsRunning(mainClusterCli, ns1, "long-source")
if err != nil {
return err
}

err = waitUntilPodIsRunning(mainClusterCli, ns1, "long-dest")
if err != nil {
return err
}

_, err = execInPod(mainClusterCli, ns1, "long-source", generateDataShellCommand)
return err
}

func teardown() error {
var result *multierror.Error
err := deleteNs(mainClusterCli, ns1)
Expand Down
2 changes: 1 addition & 1 deletion internal/migrator/migrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
"helm.sh/helm/v3/pkg/chart/loader"
)

//go:embed pv-migrate-0.2.0.tgz
//go:embed pv-migrate-0.2.1.tgz
var chartBytes []byte

type (
Expand Down
Binary file removed internal/migrator/pv-migrate-0.2.0.tgz
Binary file not shown.
Binary file added internal/migrator/pv-migrate-0.2.1.tgz
Binary file not shown.

0 comments on commit 5db63d8

Please sign in to comment.