Merge branch 'master' into update-azure-go-sdk
This commit is contained in:
@@ -63,7 +63,7 @@ func (p *FargateProvider) loadConfigFile(filePath string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// loadConfigStream loads the given Fargate provider TOML configuration stream.
|
||||
// loadConfig loads the given Fargate provider TOML configuration stream.
|
||||
func (p *FargateProvider) loadConfig(r io.Reader) error {
|
||||
var config providerConfig
|
||||
var q resource.Quantity
|
||||
|
||||
@@ -52,6 +52,18 @@ func newContainer(spec *corev1.Container) (*container, error) {
|
||||
cntr.definition.WorkingDirectory = aws.String(spec.WorkingDir)
|
||||
}
|
||||
|
||||
// Add environment variables.
|
||||
if spec.Env != nil {
|
||||
for _, env := range spec.Env {
|
||||
cntr.definition.Environment = append(
|
||||
cntr.definition.Environment,
|
||||
&ecs.KeyValuePair{
|
||||
Name: aws.String(env.Name),
|
||||
Value: aws.String(env.Value),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Translate the Kubernetes container resource requirements to Fargate units.
|
||||
cntr.setResourceRequirements(&spec.Resources)
|
||||
|
||||
|
||||
@@ -32,6 +32,10 @@ var (
|
||||
Command: []string{"anyCmd"},
|
||||
Args: []string{"anyArg1", "anyArg2"},
|
||||
WorkingDir: "/any/working/dir",
|
||||
Env: []corev1.EnvVar{
|
||||
{Name: "anyEnvName1", Value: "anyEnvValue1"},
|
||||
{Name: "anyEnvName2", Value: "anyEnvValue2"},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -46,8 +50,17 @@ func TestContainerDefinition(t *testing.T) {
|
||||
assert.Equal(t, cntrSpec.Name, *cntr.definition.Name, "incorrect name")
|
||||
assert.Equal(t, cntrSpec.Image, *cntr.definition.Image, "incorrect image")
|
||||
assert.Equal(t, cntrSpec.Command[0], *cntr.definition.EntryPoint[0], "incorrect command")
|
||||
assert.Equal(t, cntrSpec.Args[0], *cntr.definition.Command[0], "incorrect args")
|
||||
|
||||
for i, env := range cntrSpec.Args {
|
||||
assert.Equal(t, env, *cntr.definition.Command[i], "incorrect args")
|
||||
}
|
||||
|
||||
assert.Equal(t, cntrSpec.WorkingDir, *cntr.definition.WorkingDirectory, "incorrect working dir")
|
||||
|
||||
for i, env := range cntrSpec.Env {
|
||||
assert.Equal(t, env.Name, *cntr.definition.Environment[i].Name, "incorrect env name")
|
||||
assert.Equal(t, env.Value, *cntr.definition.Environment[i].Value, "incorrect env value")
|
||||
}
|
||||
}
|
||||
|
||||
// TestContainerResourceRequirementsDefaults verifies whether the container gets default CPU
|
||||
|
||||
@@ -178,17 +178,18 @@ func (p *FargateProvider) GetContainerLogs(namespace, podName, containerName str
|
||||
return p.cluster.GetContainerLogs(namespace, podName, containerName, tail)
|
||||
}
|
||||
|
||||
// Get full pod name as defined in the provider context
|
||||
// GetPodFullName retrieves the full pod name as defined in the provider context.
|
||||
func (p *FargateProvider) GetPodFullName(namespace string, pod string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// ExecInContainer executes a command in a container in the pod, copying data
|
||||
// between in/out/err and the container's stdin/stdout/stderr.
|
||||
// TODO: Implementation
|
||||
func (p *FargateProvider) ExecInContainer(name string, uid types.UID, container string, cmd []string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize, timeout time.Duration) error {
|
||||
log.Printf("receive ExecInContainer %q\n", container)
|
||||
return nil
|
||||
func (p *FargateProvider) ExecInContainer(
|
||||
name string, uid types.UID, container string, cmd []string, in io.Reader, out, err io.WriteCloser,
|
||||
tty bool, resize <-chan remotecommand.TerminalSize, timeout time.Duration) error {
|
||||
log.Printf("Received ExecInContainer request for %s.\n", container)
|
||||
return errNotImplemented
|
||||
}
|
||||
|
||||
// GetPodStatus retrieves the status of a pod by name from the provider.
|
||||
|
||||
@@ -237,7 +237,13 @@ func TestAWSFargateProviderPodLifecycle(t *testing.T) {
|
||||
"/bin/sh",
|
||||
},
|
||||
Args: []string{
|
||||
"-c", "echo \"Started\"; while true; do sleep 1; done",
|
||||
"-c",
|
||||
"echo \"Started\";" +
|
||||
"echo \"TEST_ENV=$TEST_ENV\";" +
|
||||
"while true; do sleep 1; done",
|
||||
},
|
||||
Env: []v1.EnvVar{
|
||||
{Name: "TEST_ENV", Value: "AnyValue"},
|
||||
},
|
||||
Resources: v1.ResourceRequirements{
|
||||
Limits: v1.ResourceList{
|
||||
@@ -281,8 +287,18 @@ func TestAWSFargateProviderPodLifecycle(t *testing.T) {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if logs != "Started\n" {
|
||||
t.Errorf("Expected logs to be \"Started\\n\", but received \"%v\"", logs)
|
||||
// Test log output.
|
||||
receivedLogs := strings.Split(logs, "\n")
|
||||
expectedLogs := []string{
|
||||
"Started",
|
||||
pod.Spec.Containers[0].Env[0].Name + "=" + pod.Spec.Containers[0].Env[0].Value,
|
||||
}
|
||||
|
||||
for i, line := range receivedLogs {
|
||||
fmt.Printf("Log[#%d]: %v\n", i, line)
|
||||
if len(expectedLogs) > i && receivedLogs[i] != expectedLogs[i] {
|
||||
t.Errorf("Expected log line %d to be %q, but received %q", i, line, receivedLogs[i])
|
||||
}
|
||||
}
|
||||
|
||||
// Delete the pod.
|
||||
|
||||
Reference in New Issue
Block a user