Skip to content

Commit deb6e4f

Browse files
committed
Update flagd injector and tests
Signed-off-by: Yosiah de Koeyer <dev@yosiahdekoeyer.dev>
1 parent b7bc1e1 commit deb6e4f

2 files changed

Lines changed: 299 additions & 60 deletions

File tree

internal/common/flagdinjector/flagdinjector.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"k8s.io/apimachinery/pkg/api/errors"
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
"k8s.io/apimachinery/pkg/util/intstr"
23+
"k8s.io/utils/ptr"
2324
"sigs.k8s.io/controller-runtime/pkg/client"
2425
)
2526

@@ -85,7 +86,14 @@ func (fi *FlagdContainerInjector) InjectFlagd(
8586
flagdContainer.Resources.Limits = flagSourceConfig.Resources.Limits
8687
}
8788

88-
addFlagdContainer(podSpec, flagdContainer)
89+
// Handle standalone Flagd deployment as well as sidecar injection.
90+
if len(podSpec.Containers) == 0 {
91+
addFlagdContainer(podSpec, flagdContainer)
92+
} else {
93+
flagdContainer.RestartPolicy = ptr.To(corev1.ContainerRestartPolicyAlways)
94+
95+
addFlagdSidecarContainer(podSpec, flagdContainer)
96+
}
8997

9098
return nil
9199
}
@@ -472,6 +480,16 @@ func (fi *FlagdContainerInjector) createConfigMap(ctx context.Context, namespace
472480
return fi.Client.Create(ctx, cm)
473481
}
474482

483+
func addFlagdSidecarContainer(spec *corev1.PodSpec, flagdContainer corev1.Container) {
484+
for idx, container := range spec.InitContainers {
485+
if container.Name == flagdContainer.Name {
486+
spec.InitContainers[idx] = flagdContainer
487+
return
488+
}
489+
}
490+
spec.InitContainers = append(spec.InitContainers, flagdContainer)
491+
}
492+
475493
func addFlagdContainer(spec *corev1.PodSpec, flagdContainer corev1.Container) {
476494
for idx, container := range spec.Containers {
477495
if container.Name == flagdContainer.Name {

0 commit comments

Comments
 (0)