Skip to content

Commit

Permalink
I thought I did this.
Browse files Browse the repository at this point in the history
  • Loading branch information
markmandel committed Mar 7, 2019
1 parent d4264d4 commit 9bdaba0
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 20 deletions.
2 changes: 1 addition & 1 deletion pkg/apis/stable/v1alpha1/gameserver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ func TestGameServerValidate(t *testing.T) {
Template: corev1.PodTemplateSpec{
Spec: corev1.PodSpec{Containers: []corev1.Container{
{Name: "testing", Image: "testing/image"},
{Name: "z", Image: "testing/image"},
{Name: "anothertest", Image: "testing/image"},
}}}},
}
causes, ok = gs.Validate()
Expand Down
38 changes: 19 additions & 19 deletions pkg/gameservers/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,26 +60,26 @@ var (

// Controller is a the main GameServer crd controller
type Controller struct {
baseLogger *logrus.Entry
sidecarImage string
alwaysPullSidecarImage bool
sidecarCPURequest resource.Quantity
sidecarCPULimit resource.Quantity
baseLogger *logrus.Entry
sidecarImage string
alwaysPullSidecarImage bool
sidecarCPURequest resource.Quantity
sidecarCPULimit resource.Quantity
disableGameServerContainerServiceAccount bool
crdGetter v1beta1.CustomResourceDefinitionInterface
podGetter typedcorev1.PodsGetter
podLister corelisterv1.PodLister
podSynced cache.InformerSynced
gameServerGetter getterv1alpha1.GameServersGetter
gameServerLister listerv1alpha1.GameServerLister
gameServerSynced cache.InformerSynced
nodeLister corelisterv1.NodeLister
portAllocator *PortAllocator
healthController *HealthController
workerqueue *workerqueue.WorkerQueue
creationWorkerQueue *workerqueue.WorkerQueue // handles creation only
deletionWorkerQueue *workerqueue.WorkerQueue // handles deletion only
stop <-chan struct {
crdGetter v1beta1.CustomResourceDefinitionInterface
podGetter typedcorev1.PodsGetter
podLister corelisterv1.PodLister
podSynced cache.InformerSynced
gameServerGetter getterv1alpha1.GameServersGetter
gameServerLister listerv1alpha1.GameServerLister
gameServerSynced cache.InformerSynced
nodeLister corelisterv1.NodeLister
portAllocator *PortAllocator
healthController *HealthController
workerqueue *workerqueue.WorkerQueue
creationWorkerQueue *workerqueue.WorkerQueue // handles creation only
deletionWorkerQueue *workerqueue.WorkerQueue // handles deletion only
stop <-chan struct {
}
recorder record.EventRecorder
}
Expand Down
35 changes: 35 additions & 0 deletions pkg/gameservers/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1143,6 +1143,41 @@ func TestIsGameServerPod(t *testing.T) {

}

func TestControllerDisableServiceAccount(t *testing.T) {
t.Parallel()

t.Run("disabled", func(t *testing.T) {
c, _ := newFakeController()
c.disableGameServerContainerServiceAccount = true

gs := &v1alpha1.GameServer{ObjectMeta: metav1.ObjectMeta{Name: "gameserver", UID: "1234"}, Spec: newSingleContainerSpec()}
gs.ApplyDefaults()
pod, err := gs.Pod()
assert.NoError(t, err)
assert.Len(t, pod.Spec.Containers, 1)
assert.Empty(t, pod.Spec.Containers[0].VolumeMounts)

c.disableServiceAccount(gs, pod)
assert.Len(t, pod.Spec.Containers, 1)
assert.Len(t, pod.Spec.Containers[0].VolumeMounts, 1)
assert.Equal(t, "/var/run/secrets/kubernetes.io/serviceaccount", pod.Spec.Containers[0].VolumeMounts[0].MountPath)
})

t.Run("enabled", func(t *testing.T) {
c, _ := newFakeController()
c.disableGameServerContainerServiceAccount = false

gs := &v1alpha1.GameServer{ObjectMeta: metav1.ObjectMeta{Name: "gameserver", UID: "1234"}, Spec: newSingleContainerSpec()}
gs.ApplyDefaults()
pod, err := gs.Pod()
assert.NoError(t, err)

expected := pod.DeepCopy()
c.disableServiceAccount(gs, pod)
assert.Equal(t, expected, pod)
})
}

// testNoChange runs a test with a state that doesn't exist, to ensure a handler
// doesn't do process anything beyond the state it is meant to handle.
func testNoChange(t *testing.T, state v1alpha1.GameServerState, f func(*Controller, *v1alpha1.GameServer) (*v1alpha1.GameServer, error)) {
Expand Down

0 comments on commit 9bdaba0

Please sign in to comment.