From d8d4ef31e349833cd2865382755efff9ae7d1fc8 Mon Sep 17 00:00:00 2001 From: Thomas Schuetz Date: Wed, 8 Feb 2023 09:50:35 +0100 Subject: [PATCH 1/3] initial commit Signed-off-by: Thomas Schuetz --- text/0089-klt-context-information.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 text/0089-klt-context-information.md diff --git a/text/0089-klt-context-information.md b/text/0089-klt-context-information.md new file mode 100644 index 0000000..5f06654 --- /dev/null +++ b/text/0089-klt-context-information.md @@ -0,0 +1,3 @@ +# KEP 89: Context Information in Keptn Tasks + +## STATUS: Drafting From 398e20fe9823408521e3bc092ca10a9384904dcc Mon Sep 17 00:00:00 2001 From: Thomas Schuetz Date: Wed, 8 Feb 2023 15:38:33 +0100 Subject: [PATCH 2/3] add context information Signed-off-by: Thomas Schuetz --- text/0089-klt-context-information.md | 44 +++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/text/0089-klt-context-information.md b/text/0089-klt-context-information.md index 5f06654..21dcb54 100644 --- a/text/0089-klt-context-information.md +++ b/text/0089-klt-context-information.md @@ -1,3 +1,45 @@ # KEP 89: Context Information in Keptn Tasks +**State: DRAFTING** + +## Dependencies +* This KEP depends on KEP88 which introduces instances of Keptn Workloads and Apps + +## Motivation +Currently, the lifecycle toolkit passes some context information (Workload, Application, Version) to the tasks. However, this information is not sufficient for promoting instances. As there should be a Keptn Task for promoting an instance, the context information should be extended to include the instance and a bit more information. + +This KEP proposes the extension of passed context information. + +## Current Design +At the moment, the context information is passed as a JSON string in the `KEPTN_CONTEXT` environment variable. The JSON string contains the following information: +```golang + type TaskContext struct { + WorkloadName string `json:"workloadName"` + AppName string `json:"appName"` + AppVersion string `json:"appVersion"` + WorkloadVersion string `json:"workloadVersion"` + TaskType string `json:"taskType"` + ObjectType string `json:"objectType"` +``` + +This information is passed to the tasks as a JSON string in the `KEPTN_CONTEXT` environment variable which can be used in the corresponding tasks. + +## Assumptions / Definitions +* It might be easier to pass over the whole KeptnAppVersion or KeptnWorkloadInstance as a JSON string instead of passing over the individual fields. +* There is no sensitive information in the context information + +## Proposed Design +The proposed design is to pass over the whole KeptnAppVersion or KeptnWorkloadInstance Object as a JSON string in the `KEPTN_APP_CONTEXT` and `KEPTN_WORKLOAD_CONTEXT` environment variable. This would allow the tasks to access all information about the instance. Furthermore, annotations of the workload could be passed also as a JSON string in the `KEPTN_WORKLOAD_ANNOTATIONS` environment variable. + +## Benefits +* The tasks have access to all information about the application and workload +* The tasks can access the annotations of the workload +* Additional information would not have to be defined in the context information + +## Drawbacks +* The context information might be too big for some tasks +* The context information might contain sensitive information in the future which has to be filtered out + + + + -## STATUS: Drafting From 3621d6cd0694e6ccbe7866d213816c128f5df8a2 Mon Sep 17 00:00:00 2001 From: Moritz Wiesinger Date: Wed, 31 Jan 2024 09:46:32 +0100 Subject: [PATCH 3/3] Update text/0089-klt-context-information.md Co-authored-by: Giovanni Liva Signed-off-by: Moritz Wiesinger --- text/0089-klt-context-information.md | 1 + 1 file changed, 1 insertion(+) diff --git a/text/0089-klt-context-information.md b/text/0089-klt-context-information.md index 21dcb54..d0a1098 100644 --- a/text/0089-klt-context-information.md +++ b/text/0089-klt-context-information.md @@ -19,6 +19,7 @@ At the moment, the context information is passed as a JSON string in the `KEPTN_ WorkloadVersion string `json:"workloadVersion"` TaskType string `json:"taskType"` ObjectType string `json:"objectType"` + } ``` This information is passed to the tasks as a JSON string in the `KEPTN_CONTEXT` environment variable which can be used in the corresponding tasks.