func buildConnectPodSpec()

in internal/testhelpers/resources.go [147:215]


func buildConnectPodSpec(mainPodSleep int, appLabel, secretName, livenessCmd, passEnvVarName, imageName string) corev1.PodTemplateSpec {
	podCmd := fmt.Sprintf(`echo Container 1 is Running
	sleep 30
	%s
	sleep %d`, livenessCmd, mainPodSleep)

	return corev1.PodTemplateSpec{
		ObjectMeta: metav1.ObjectMeta{
			Labels: map[string]string{"app": appLabel},
		},

		Spec: corev1.PodSpec{
			Containers: []corev1.Container{{
				Name:            "db-client-app",
				Image:           imageName,
				ImagePullPolicy: "IfNotPresent",
				Command:         []string{"/bin/sh", "-e", "-x", "-c", podCmd},
				Resources: corev1.ResourceRequirements{
					Requests: map[corev1.ResourceName]resource.Quantity{
						corev1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalExponent),
					},
				},
				LivenessProbe: &corev1.Probe{InitialDelaySeconds: 10, PeriodSeconds: 30, FailureThreshold: 3,
					ProbeHandler: corev1.ProbeHandler{
						Exec: &corev1.ExecAction{
							Command: []string{"/bin/sh", "-e", "-c", livenessCmd},
						},
					},
				},
				ReadinessProbe: &corev1.Probe{InitialDelaySeconds: 10, PeriodSeconds: 30, FailureThreshold: 3,
					ProbeHandler: corev1.ProbeHandler{
						Exec: &corev1.ExecAction{
							Command: []string{"/bin/sh", "-e", "-c", livenessCmd},
						},
					},
				},
				Env: []corev1.EnvVar{
					{
						Name: "DB_USER",
						ValueFrom: &corev1.EnvVarSource{
							SecretKeyRef: &corev1.SecretKeySelector{
								LocalObjectReference: corev1.LocalObjectReference{Name: secretName},
								Key:                  userKey,
							},
						},
					},
					{
						Name: passEnvVarName,
						ValueFrom: &corev1.EnvVarSource{
							SecretKeyRef: &corev1.SecretKeySelector{
								LocalObjectReference: corev1.LocalObjectReference{Name: secretName},
								Key:                  passwordKey,
							},
						},
					},
					{
						Name: "DB_NAME",
						ValueFrom: &corev1.EnvVarSource{
							SecretKeyRef: &corev1.SecretKeySelector{
								LocalObjectReference: corev1.LocalObjectReference{Name: secretName},
								Key:                  dbNameKey,
							},
						},
					},
				},
			}},
		},
	}
}