Skip to content

Commit 92a7a3b

Browse files
committed
fix: sort other volume maps and use cleaner string check on subdir job name
1 parent b33e542 commit 92a7a3b

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

api/product/volumes.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,14 @@ type MultiContainerVolumeFactory struct {
2929
}
3030

3131
func (m *MultiContainerVolumeFactory) InitContainers() []corev1.Container {
32-
containers := []corev1.Container{}
33-
for k, s := range m.InitContainerDefs {
32+
keys := make([]string, 0, len(m.InitContainerDefs))
33+
for k := range m.InitContainerDefs {
34+
keys = append(keys, k)
35+
}
36+
sort.Strings(keys)
37+
containers := make([]corev1.Container, 0, len(keys))
38+
for _, k := range keys {
39+
s := m.InitContainerDefs[k]
3440
containers = append(containers, corev1.Container{
3541
Name: k,
3642
Image: s.Image,
@@ -45,8 +51,14 @@ func (m *MultiContainerVolumeFactory) InitContainers() []corev1.Container {
4551
}
4652

4753
func (m *MultiContainerVolumeFactory) Sidecars() []corev1.Container {
48-
containers := []corev1.Container{}
49-
for k, s := range m.SidecarDefs {
54+
keys := make([]string, 0, len(m.SidecarDefs))
55+
for k := range m.SidecarDefs {
56+
keys = append(keys, k)
57+
}
58+
sort.Strings(keys)
59+
containers := make([]corev1.Container, 0, len(keys))
60+
for _, k := range keys {
61+
s := m.SidecarDefs[k]
5062
containers = append(containers, corev1.Container{
5163
Name: k,
5264
Image: s.Image,

internal/controller/core/subdir.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"math/rand"
7+
"strings"
78

89
"github.com/posit-dev/team-operator/api/core/v1beta1"
910
"github.com/posit-dev/team-operator/api/product"
@@ -95,8 +96,7 @@ func (r *SiteReconciler) provisionSubDirectoryCreator(ctx context.Context, req c
9596

9697
if !site.Spec.VolumeSubdirJobOff {
9798
// Skip Job creation if a successfully completed subdir Job already exists.
98-
// The Job is idempotent (mkdir -p), so re-running it is harmless but wasteful —
99-
// previous code created a new Job with a random suffix on every reconcile.
99+
// The Job is idempotent (mkdir -p), so re-running it is harmless but wasteful
100100
var existingJobs batchv1.JobList
101101
if err := r.List(ctx, &existingJobs,
102102
client.InNamespace(req.Namespace),
@@ -108,7 +108,7 @@ func (r *SiteReconciler) provisionSubDirectoryCreator(ctx context.Context, req c
108108
hasCompletedJob := false
109109
for i := range existingJobs.Items {
110110
job := &existingJobs.Items[i]
111-
if len(job.Name) > len(provisionerName) && job.Name[:len(provisionerName)+1] == provisionerName+"-" {
111+
if strings.HasPrefix(job.Name, provisionerName+"-") {
112112
for _, cond := range job.Status.Conditions {
113113
if cond.Type == batchv1.JobComplete && cond.Status == v1.ConditionTrue {
114114
hasCompletedJob = true

0 commit comments

Comments
 (0)