diff --git a/docs/content/en/docs/implementing/tasks.md b/docs/content/en/docs/implementing/tasks.md index 1427410fed..88eee9fd11 100644 --- a/docs/content/en/docs/implementing/tasks.md +++ b/docs/content/en/docs/implementing/tasks.md @@ -166,11 +166,11 @@ For an example of how to do this, see the [keptn-tasks.yaml](https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/blob/main/simplenode-dev/keptn-tasks.yaml) file. -A context environment variable is available via `Deno.env.get("CONTEXT")`. +A context environment variable is available via `Deno.env.get("KEPTN_CONTEXT")`. It can be used like this: ```javascript -let context = Deno.env.get("CONTEXT"); +let context = Deno.env.get("KEPTN_CONTEXT"); if (context.objectType == "Application") { let application_name = contextdata.appName; diff --git a/lifecycle-operator/controllers/lifecycle/keptntask/container_builder.go b/lifecycle-operator/controllers/lifecycle/keptntask/container_builder.go index 88d98e5cfe..ae0fa7c070 100644 --- a/lifecycle-operator/controllers/lifecycle/keptntask/container_builder.go +++ b/lifecycle-operator/controllers/lifecycle/keptntask/container_builder.go @@ -44,7 +44,7 @@ func (c *ContainerBuilder) CreateContainer(ctx context.Context) (*corev1.Contain foundKeptnContextVar := false for i, envVar := range result.Env { - if envVar.Name == KeptnContextEnvVarName { + if envVar.Name == KeptnContextEnvVar { foundKeptnContextVar = true result.Env[i].Value = string(jsonContext) } @@ -52,7 +52,7 @@ func (c *ContainerBuilder) CreateContainer(ctx context.Context) (*corev1.Contain if !foundKeptnContextVar { result.Env = append(result.Env, corev1.EnvVar{ - Name: KeptnContextEnvVarName, + Name: KeptnContextEnvVar, Value: string(jsonContext), }) } diff --git a/lifecycle-operator/controllers/lifecycle/keptntask/container_builder_test.go b/lifecycle-operator/controllers/lifecycle/keptntask/container_builder_test.go index 49f1e74425..8294a2a82a 100644 --- a/lifecycle-operator/controllers/lifecycle/keptntask/container_builder_test.go +++ b/lifecycle-operator/controllers/lifecycle/keptntask/container_builder_test.go @@ -30,7 +30,7 @@ func TestContainerBuilder_CreateContainerWithVolumes(t *testing.T) { Image: "image", Env: []v1.EnvVar{ { - Name: KeptnContextEnvVarName, + Name: KeptnContextEnvVar, Value: `{"workloadName":"","appName":"","appVersion":"","workloadVersion":"","taskType":"","objectType":""}`, }, }, @@ -54,7 +54,7 @@ func TestContainerBuilder_CreateContainerWithVolumes(t *testing.T) { Image: "image", Env: []v1.EnvVar{ { - Name: KeptnContextEnvVarName, + Name: KeptnContextEnvVar, Value: `{"workloadName":"my-workload","appName":"","appVersion":"","workloadVersion":"","taskType":"","objectType":""}`, }, }, @@ -68,7 +68,7 @@ func TestContainerBuilder_CreateContainerWithVolumes(t *testing.T) { Image: "image", Env: []v1.EnvVar{ { - Name: KeptnContextEnvVarName, + Name: KeptnContextEnvVar, Value: `foo`, }, }, @@ -84,7 +84,7 @@ func TestContainerBuilder_CreateContainerWithVolumes(t *testing.T) { Image: "image", Env: []v1.EnvVar{ { - Name: KeptnContextEnvVarName, + Name: KeptnContextEnvVar, Value: `{"workloadName":"my-workload","appName":"","appVersion":"","workloadVersion":"","taskType":"","objectType":""}`, }, }, diff --git a/lifecycle-operator/controllers/lifecycle/keptntask/runtime_builder.go b/lifecycle-operator/controllers/lifecycle/keptntask/runtime_builder.go index 4410e6fc44..3e762787be 100644 --- a/lifecycle-operator/controllers/lifecycle/keptntask/runtime_builder.go +++ b/lifecycle-operator/controllers/lifecycle/keptntask/runtime_builder.go @@ -39,13 +39,12 @@ type RuntimeExecutionParams struct { } const ( - Context = "CONTEXT" - KeptnContextEnvVarName = "KEPTN_CONTEXT" - SecureData = "SECURE_DATA" - Data = "DATA" - CmdArgs = "CMD_ARGS" - Script = "SCRIPT" - FunctionMountName = "function-mount" + KeptnContextEnvVar = "KEPTN_CONTEXT" + SecureData = "SECURE_DATA" + Data = "DATA" + CmdArgs = "CMD_ARGS" + Script = "SCRIPT" + FunctionMountName = "function-mount" ) func (fb *RuntimeBuilder) CreateContainer(ctx context.Context) (*corev1.Container, error) { @@ -68,7 +67,7 @@ func (fb *RuntimeBuilder) CreateContainer(ctx context.Context) (*corev1.Containe if err != nil { return nil, err } - envVars = append(envVars, corev1.EnvVar{Name: Context, Value: string(jsonParams)}) + envVars = append(envVars, corev1.EnvVar{Name: KeptnContextEnvVar, Value: string(jsonParams)}) envVars = append(envVars, corev1.EnvVar{Name: CmdArgs, Value: params.CmdParameters}) if params.SecureParameters != "" { envVars = append(envVars, corev1.EnvVar{ diff --git a/runtimes/deno-runtime/entrypoint.sh b/runtimes/deno-runtime/entrypoint.sh index f4c8482bcc..00c9ea343c 100755 --- a/runtimes/deno-runtime/entrypoint.sh +++ b/runtimes/deno-runtime/entrypoint.sh @@ -2,4 +2,4 @@ set -eu -deno run --allow-net --allow-env=DATA,SECURE_DATA,CONTEXT "$SCRIPT" +deno run --allow-net --allow-env=DATA,SECURE_DATA,KEPTN_CONTEXT "$SCRIPT" diff --git a/runtimes/deno-runtime/samples/ts/slack.ts b/runtimes/deno-runtime/samples/ts/slack.ts index 7030ddc4f4..102a3674c7 100644 --- a/runtimes/deno-runtime/samples/ts/slack.ts +++ b/runtimes/deno-runtime/samples/ts/slack.ts @@ -1,5 +1,5 @@ let text = Deno.env.get("SECURE_DATA"); -let context = Deno.env.get("CONTEXT"); +let context = Deno.env.get("KEPTN_CONTEXT"); let data; let body; let contextdata; diff --git a/test/integration/simple-deployment-recursive-task/01-assert.yaml b/test/integration/simple-deployment-recursive-task/01-assert.yaml index 9ae7b8b186..b64aaceec7 100644 --- a/test/integration/simple-deployment-recursive-task/01-assert.yaml +++ b/test/integration/simple-deployment-recursive-task/01-assert.yaml @@ -13,7 +13,7 @@ spec: - env: - name: DATA value: '{"data":"myotherdata","other":"data","user":"myotheruser"}' - - name: CONTEXT + - name: KEPTN_CONTEXT value: >- {"workloadName":"waiter-waiter","appName":"waiter","appVersion":"","workloadVersion":"0.4","taskType":"post","objectType":"Workload"} - name: CMD_ARGS @@ -48,7 +48,7 @@ spec: - env: - name: DATA value: '{"data":"mydata","other":"data","user":"myuser"}' - - name: CONTEXT + - name: KEPTN_CONTEXT value: >- {"workloadName":"waiter-waiter","appName":"waiter","appVersion":"","workloadVersion":"0.4","taskType":"pre","objectType":"Workload"} - name: CMD_ARGS diff --git a/test/integration/simple-task/00-assert.yaml b/test/integration/simple-task/00-assert.yaml new file mode 100644 index 0000000000..9fc76e2d5e --- /dev/null +++ b/test/integration/simple-task/00-assert.yaml @@ -0,0 +1,18 @@ +apiVersion: batch/v1 +kind: Job +metadata: + annotations: + keptn.sh/task-name: pre-deployment-hello-1234 +spec: + template: + spec: + containers: + - env: + - name: KEPTN_CONTEXT + value: '{"workloadName":"workload","appName":"podtato-head","appVersion":"1.0.0","workloadVersion":"0.1.0","taskType":"","objectType":""}' + - name: CMD_ARGS + - name: SCRIPT + value: /var/data/function.ts + imagePullPolicy: IfNotPresent + name: keptn-function-runner + ttlSecondsAfterFinished: 300 diff --git a/test/integration/simple-task/00-install.yaml b/test/integration/simple-task/00-install.yaml index 40ea75aa05..e80694bf5b 100644 --- a/test/integration/simple-task/00-install.yaml +++ b/test/integration/simple-task/00-install.yaml @@ -13,17 +13,13 @@ kind: KeptnTask metadata: name: pre-deployment-hello-1234 spec: - app: podtato-head - appVersion: 0.1.2 checkType: pre taskDefinition: pre-deployment-hello timeout: 5m0s - workload: "" - workloadVersion: "" context: - appName: "" - appVersion: "" + appName: "podtato-head" + appVersion: "1.0.0" objectType: "" taskType: "" - workloadName: "" - workloadVersion: "" + workloadName: "workload" + workloadVersion: "0.1.0"