diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index 67a263bf0e..3dd9f54f53 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -406,7 +406,6 @@ moq mowies mpod multigroup -multipe mutatingwebhookconfigurations mwc mwh diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml index 37834b7eaa..2df44b47f5 100644 --- a/.markdownlint-cli2.yaml +++ b/.markdownlint-cli2.yaml @@ -9,7 +9,6 @@ config: allowed_elements: - details - summary - - a github-admonition: true max-one-sentence-per-line: true diff --git a/docs/docs/assets/crd/deno-context.yaml b/docs/docs/assets/crd/deno-context.yaml new file mode 100644 index 0000000000..d522cffe05 --- /dev/null +++ b/docs/docs/assets/crd/deno-context.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Secret +metadata: + name: mysecret +type: Opaque +data: + SECURE_DATA: dG9rZW46IG15dG9rZW4= +--- +apiVersion: lifecycle.keptn.sh/v1beta1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-hello + annotations: ## accessible via "KEPTN_CONTEXT" + my: test +spec: + deno: + parameters: ## accessible via "DATA" + map: + user: "myuser" + secureParameters: ## accessible via "SECURE_DATA" + secret: mysecret + inline: + code: | + const data = Deno.env.get("DATA")!; + const secret = Deno.env.get("SECURE_DATA")!; + const context = Deno.env.get("KEPTN_CONTEXT")!; + console.log(data); + console.log(secret); + console.log(context); diff --git a/docs/docs/assets/crd/examples/configmap-for-deno-script.yaml b/docs/docs/assets/crd/examples/configmap-for-deno-script.yaml index 07516b4a9a..893f6f78eb 100644 --- a/docs/docs/assets/crd/examples/configmap-for-deno-script.yaml +++ b/docs/docs/assets/crd/examples/configmap-for-deno-script.yaml @@ -3,7 +3,7 @@ kind: KeptnTaskDefinition metadata: name: scheduled-deployment spec: - function: + deno: configMapRef: name: scheduled-deployment-cm-1 --- diff --git a/docs/docs/assets/crd/examples/configmapref-for-deno-script.yaml b/docs/docs/assets/crd/examples/configmapref-for-deno-script.yaml deleted file mode 100644 index 45447b0c08..0000000000 --- a/docs/docs/assets/crd/examples/configmapref-for-deno-script.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: lifecycle.keptn.sh/v1beta1 -kind: KeptnTaskDefinition -metadata: - name: keptntaskdefinition-sample -spec: - deno: - configMapRef: - name: dev-configmap diff --git a/docs/docs/guides/tasks.md b/docs/docs/guides/tasks.md index 7614b20378..a92e8f8ee3 100644 --- a/docs/docs/guides/tasks.md +++ b/docs/docs/guides/tasks.md @@ -243,8 +243,15 @@ your workloads and tasks in a `KeptnApp` (for instance a commit ID value). To do so, the metadata needs to be specified for the workload or for the application. Follow our guide on [Context and Metadata here](./metadata.md). -For an example of how to access the `KEPTN_CONTEXT`, follow our -[reference page](../reference/crd-reference/taskdefinition.md#example-6-accessing-keptn_context-environment-variable-in-a-deno-task) + + +!!! note + + For an example of how to access the `KEPTN_CONTEXT`, follow our reference page examples + [for deno](../reference/crd-reference/taskdefinition.md#accessing-keptn_context-in-a-deno-task) + and [for python](../reference/crd-reference/taskdefinition.md#accessing-keptn_context-in-a-python-task). + + ## Parameterized functions diff --git a/docs/docs/reference/crd-reference/taskdefinition.md b/docs/docs/reference/crd-reference/taskdefinition.md index 2543651910..029bb712d9 100644 --- a/docs/docs/reference/crd-reference/taskdefinition.md +++ b/docs/docs/reference/crd-reference/taskdefinition.md @@ -31,7 +31,7 @@ differentiated by the `spec` section: See [Synopsis for container-runtime](#synopsis-for-container-runtime) and - [Examples for a container-runtime runner](#examples-for-a-container-runtime-runner). + [Example for a container-runtime runner](#example-for-a-container-runtime-runner). - Pre-defined containers @@ -43,17 +43,12 @@ differentiated by the `spec` section: with a few limitations. You can use this to specify simple actions without having to define a full container. - See - Synopsis for Deno-runtime container - and - [Deno-runtime examples](#examples-for-deno-runtime-and-python-runtime-runners). + See [runtime examples](#examples-for-deno-runtime-and-python-runtime-runners) - Use the pre-defined `python-runtime` runner to define your task using [Python 3](https://www.python.org/). - See - Synopsis for python-runtime runner - and - [Examples for a python-runtime runner](#examples-for-deno-runtime-and-python-runtime-runners). + See [runtime examples](#examples-for-deno-runtime-and-python-runtime-runners) + for practical usage of the pre-defined containers. ## Synopsis for all runners @@ -89,11 +84,11 @@ These are described here. and code the functionality in Deno script, which is similar to JavaScript and Typescript. See - Synopsis for deno-runtime container + [Synopsis for deno](./#deno-runtime-synopsis). - **python** -- Use a `python-runtime` function and code the functionality in Python 3. See - Synopsis for python-runtime runner + [Synopsis for python](./#python-runtime-synopsis). - **container** -- Use the runner defined for the `container-runtime` container. This is a standard Kubernetes container @@ -148,7 +143,6 @@ almost anything that you implemented with JES for Keptn v1. [Container](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Container) spec documentation. - ## Synopsis for predefined containers The predefined containers allow you to easily define a task @@ -157,7 +151,9 @@ You do not need to specify the image, volumes, and so forth. Instead, just provide either a Deno or Python script and Keptn sets up the container and runs the script as part of the task. -=== "deno-runtime" + + +=== "Deno-runtime synopsis" When using the `deno-runtime` runner to define a task, the executables are coded in @@ -171,16 +167,31 @@ and Keptn sets up the container and runs the script as part of the task. for permissions and importing data so a script that works properly elsewhere may not function out of the box when run in the `deno-runtime` runner. + In this case you may want to use a custom container instead. ```yaml {% include "../../assets/crd/examples/synopsis-for-deno-runtime-container.yaml" %} ``` -=== "python-runtime" +=== "Python-runtime synopsis" + + When using the `python-runtime` runner to define a task, + the executables are coded in python3. + The runner enables the following packages: requests, json, git, yaml. + + ??? example + ```yaml + {% include "../../assets/crd/python-libs.yaml" %} + ``` + + Note that other libraries may not function out of the box + in the `python-runtime` runner. + In this case you may want to use a custom container instead. ```yaml {% include "../../assets/crd/examples/synopsis-for-python-runtime-runner.yaml" %} ``` + ### Fields for predefined containers @@ -197,118 +208,80 @@ and Keptn sets up the container and runs the script as part of the task. used to call the executables. Only one of these can be specified per `KeptnTaskDefinition` resource: - - **inline** - Include the actual executable code to execute. - You can code a sequence of executables here - that need to be run in order - as long as they are executables that are part of the lifecycle workflow. - Task sequences that are not part of the lifecycle workflow - should be handled by the pipeline engine tools being used - such as Jenkins, Argo Workflows, Flux, and Tekton. - - - **deno example:** - Example 1: inline script for a Deno script - - - **python example:** - - Example 1: inline code for a python-runtime runner + - **inline** -- Include the actual executable code to execute. + You can code a sequence of executables here + that need to be run in order + as long as they are executables that are part of the lifecycle workflow. + Task sequences that are not part of the lifecycle workflow + should be handled by the pipeline engine tools being used + such as Jenkins, Argo Workflows, Flux, and Tekton. + See examples of usage for [deno](./#inline-script-for-deno) + and for [python](./#inline-script-for-python). + + - **httpRef** -- Specify a script to be executed at runtime + from the remote webserver that is specified. + This syntax allows you to call a general function + that is used in multiple places, + possibly with different parameters + that are provided in the calling `KeptnTaskDefinition` resource. + Another `KeptnTaskDefinition` resource could call this same script + but with different parameters. + Only one script can be executed. + Any other scripts listed here are silently ignored. + See examples of usage for [deno](./#httpref-for-deno) + and for [python](./#httpref-for-python). - - - **httpRef** - Specify a script to be executed at runtime - from the remote webserver that is specified. - - This syntax allows you to call a general function - that is used in multiple places, - possibly with different parameters - that are provided in the calling `KeptnTaskDefinition` resource. - Another `KeptnTaskDefinition` resource could call this same script - but with different parameters. - - Only one script can be executed. - Any other scripts listed here are silently ignored. - - - **deno example:** - Example 2: httpRef script for a Deno script - - **python example:** - -
- - **functionRef** -- Execute another `KeptnTaskDefinition` resources. - Populate this field with the value(s) of the `metadata.name` field - for each `KeptnDefinitionTask` to be called. - + Populate this field with the value(s) of the `metadata.name` field + for each `KeptnDefinitionTask` to be called. Like the `httpRef` syntax,this is commonly used to call a general function that is used in multiple places, possibly with different parameters that are set in the calling `KeptnTaskDefinition` resource. - - To be able to run the pre/post-deployment task, you must create + To be able to run the pre-/post-deployment task, you must create the `KeptnAppContext` resource and link the `KeptnTaskDefinition` - in the pre/post-deployment section of `KeptnAppContext`. - + in the pre-/post-deployment section of `KeptnAppContext`. The `KeptnTaskDefinition` called with `functionref` is the `parent task` whose runner is used for the execution even if it is not the same runner defined in the calling `KeptnTaskDefinition`. - Only one `KeptnTaskDefinition` resources can be listed with the `functionRef` syntax - although that `KeptnTaskDefinition` can call multipe + although that `KeptnTaskDefinition` can call multiple executables (programs, functions, and scripts). Any calls to additional `KeptnTaskDefinition` resources are silently ignored. - - - **deno example:** - Example 3: functionRef for a Deno script - - **python example:** - - Example 3: functionRef for a python-runtime runner - - - **ConfigMapRef** - Specify the name of a + See examples of usage for [deno](./#functionref-for-deno) + and [python](./#functionref-for-python). + - **ConfigMapRef** -- Specify the name of a [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/) resource that contains the function to be executed. - - - **deno example:** - Example 5: ConfigMap for a Deno script - - **python example:** - - Example 4: ConfigMapRef for a python-runtime runner - - - - **parameters** - An optional field - to supply input parameters to a function. - Keptn passes the values defined inside the `map` field - as a JSON object. - See - [Passing secrets, environment variables, and modifying the python command](#passing-secrets-environment-variables-and-modifying-the-python-command) - and - [Parameterized functions](../../guides/tasks.md#parameterized-functions) - for more information. - - - **deno example:** - Example 3: functionRef for a Deno script - - **python example:** - - Example 3: functionRef for a python-runner runner - + See examples of usage for [deno](./#configmapref-for-deno) + and for [python](./#configmapref-for-python). + + - **parameters** -- An optional field + to supply input parameters to a function. + Keptn passes the values defined inside the `map` field + as a JSON object. + See [Parameterized functions](../../guides/tasks.md#parameterized-functions) + for more information. + Also see examples for [deno](./#env-var-in-deno) + and + [python](./#env-var-in-python). - **secureParameters** -- An optional field - used to pass a Kubernetes secret. - The `secret` value is the Kubernetes secret name - that is mounted into the runtime and made available to functions - using the `SECURE_DATA` environment variable. + used to pass a Kubernetes secret. + The `secret` value is the Kubernetes secret name + that is mounted into the runtime and made available to functions + using the `SECURE_DATA` environment variable. Note that, currently, only one secret can be passed per `KeptnTaskDefinition` resource. See [Create secret text](../../guides/tasks.md#create-secret-text) for details. - - - **deno example:** - Example 3: functionRef for a Deno script - - **python example:** - - Example 3: functionRef for a python-runner runner - + Also see examples on secret usage in tasks runner + for [deno](./#env-var-in-deno) and [python](./#env-var-in-python). ## Usage @@ -355,7 +328,7 @@ See [Executing sequential tasks](../../guides/tasks.md#executing-sequential-tasks) for more information. -## Examples for a container-runtime runner +## Example for a container-runtime runner For an example of a `KeptnTaskDefinition` that defines a custom container. see @@ -371,142 +344,149 @@ This task is then referenced in the [appcontext.yaml](https://github.com/keptn/lifecycle-toolkit/blob/main/examples/sample-app/version-2/appcontext.yaml) file. - ## Examples for deno-runtime and python-runtime runners -### Examples for inline script - -=== "Example 1: inline script for a Deno script" - - This example defines a full-fledged Deno script - within the `KeptnTaskDefinition` YAML file: - - ```yaml - {% include "../../assets/crd/examples/inline-script-for-deno-script.yaml" %} - ``` -=== "Example 1: inline code for a python-runtime runner" - - You can embed python code directly in the task definition. - This example prints data stored in the parameters map: - - ```yaml - {% include "../../assets/crd/python-inline.yaml" %} - ``` - -### Examples for httpRef script - -=== "Example 2: httpRef script for a Deno script" - - This example fetches the Deno script from a remote webserver at runtime: - - ```yaml - {% include "../../assets/crd/examples/httpref-script-for-deno-script.yaml" %} - ``` - - For another example, see the - [sample-app](https://github.com/keptn-sandbox/lifecycle-toolkit-examples/blob/main/sample-app/version-1/app-pre-deploy.yaml). - - See the - [sample-app/version-1](https://github.com/keptn-sandbox/lifecycle-toolkit-examples/blob/main/sample-app/version-1/app-pre-deploy.yaml) - PodtatoHead example for a more complete example. - -=== "Example 2: httpRef for a python-runtime runner" - - You can refer to code stored online. - For example, we have a few examples available in the - [python-runtime samples](https://github.com/keptn/lifecycle-toolkit/tree/main/runtimes/python-runtime/samples) - tree. - -### Examples for functionRef + + +??? abstract "Inline scripts" + + === "Inline script for deno" + + This example defines a full-fledged Deno script + within the `KeptnTaskDefinition` YAML file: + + ```yaml + {% include "../../assets/crd/examples/inline-script-for-deno-script.yaml" %} + ``` + + === "Inline script for python" + + You can embed python code directly in the task definition. + This example prints data stored in the parameters map: + + ```yaml + {% include "../../assets/crd/python-inline.yaml" %} + ``` + +??? abstract "HttpRef" + + === "httpRef for deno" + + This example fetches the Deno script from a remote webserver at runtime: + + ```yaml + {% include "../../assets/crd/examples/httpref-script-for-deno-script.yaml" %} + ``` + + For other examples, see the [sample-app](https://github.com/keptn-sandbox/lifecycle-toolkit-examples/blob/main/sample-app/version-1/app-pre-deploy.yaml). + and [sample-app/version-1](https://github.com/keptn-sandbox/lifecycle-toolkit-examples/blob/main/sample-app/version-1/app-pre-deploy.yaml) + PodtatoHead example for a more complete example. + + === "httpRef for python" + + ```yaml + {% include "https://raw.githubusercontent.com/keptn/lifecycle-toolkit/main/lifecycle-operator/config/samples/python_execution/taskdefinition_pyfunction_upstream_hellopy.yaml" %} + ``` + +??? abstract "FunctionRef" + + === "functionRef for deno" + + This example calls another defined task, + illustrating how one `KeptnTaskDefinition` can build + on top of other `KeptnTaskDefinition`s. + In this case, it calls `slack-notification-dev`, + passing `parameters` and `secureParameters` to that other task: + + ```yaml + {% include "../../assets/crd/examples/functionref-for-deno-script.yaml" %} + ``` + + === "functionRef for python" + + You can refer to an existing `KeptnTaskDefinition`. + this example calls the inline example + but overrides the data printed with what is specified in the task: + + ```yaml + {% include "../../assets/crd/python-recursive.yaml" %} + ``` + +??? abstract "ConfigMap and ConfigMapRef" + + === "ConfigMapRef for deno" + + This example references a `ConfigMap` by the name of `dev-configmap` + that contains the code for the function to be executed. + + ```yaml + {% include "../../assets/crd/examples/configmap-for-deno-script.yaml" %} + ``` + + === "ConfigMapRef for python" + + In this example the python runner refers to an existing configMap + called `python-test-cm` + + ```yaml + {% include "../../assets/crd/python-configmap.yaml" %} + ``` + +??? abstract "Accessing KEPTN_CONTEXT environment variable" -=== "Example 3: functionRef for a Deno script" - - This example calls another defined task, - illustrating how one `KeptnTaskDefinition` can build - on top of other `KeptnTaskDefinition`s. - In this case, it calls `slack-notification-dev`, - passing `parameters` and `secureParameters` to that other task: - - ```yaml - {% include "../../assets/crd/examples/functionref-for-deno-script.yaml" %} - ``` - -=== "Example 3: functionRef for a python-runtime runner" - - You can refer to an existing `KeptnTaskDefinition`. - this example calls the inline example - but overrides the data printed with what is specified in the task: - - ```yaml - {% include "../../assets/crd/python-recursive.yaml" %} - ``` - -### Examples for ConfigMapRef - -=== "Example 4: ConfigMapRef for a Deno script" - - This example references a `ConfigMap` by the name of `dev-configmap` - that contains the code for the function to be executed. - - ```yaml - {% include "../../assets/crd/examples/configmapref-for-deno-script.yaml" %} - ``` + For Tasks triggered as pre- and post- deployment of applications + on Kubernetes, Keptn populates an environment variable called `KEPTN_CONTEXT`. + As all environment variables, this can be accessed using language specific methods. -=== "Example 4: ConfigMapRef for a python-runtime runner" + === "Accessing KEPTN_CONTEXT in a Deno task" + + ```javascript + let context = Deno.env.get("KEPTN_CONTEXT"); + console.log(context); + ``` + + === "Accessing KEPTN_CONTEXT in a Python task" + + ```python + import os + import yaml + data = os.getenv('KEPTN_CONTEXT') + dct = yaml.safe_load(data) + meta= dct['metadata'] + print(meta) + ``` + +??? abstract "Passing secrets, environment variables and modifying the runner command" + + === "Env var in deno" + + The following example shows how to pass data inside the parameter map, + and how to load a secret in your code. + The deno command does not takes modifiers so filling the `cmdParameters` + will do nothing. ```yaml - {% include "../../assets/crd/python-configmap.yaml" %} + {% include "../../assets/crd/deno-context.yaml" %} ``` -### Examples for ConfigMap - -=== "Example 5: ConfigMap for a Deno script" - - This example illustrates the use of both a `ConfigMapRef` and a `ConfigMap`: + === "Env var in python" + + The following example shows how to pass data inside the parameter map, + how to load a secret in your code, + and how to modify the python command. + In this case the container runs with the `-h` option, + which prints the help message for the python3 interpreter: ```yaml - {% include "../../assets/crd/examples/configmap-for-deno-script.yaml" %} - ``` - -### Example for Accessing KEPTN_CONTEXT environment variable - -=== "Example 6: Accessing KEPTN_CONTEXT environment variable in a Deno task" - - For Tasks triggered as pre- and post- deployment of applications - on Kubernetes, Keptn populates an environment variable called `KEPTN_CONTEXT`. - As all environment variables, this can be accessed using language specific methods. - An example in Deno would be the following: - - ```javascript - let context = Deno.env.get("KEPTN_CONTEXT"); + {% include "../../assets/crd/python-context.yaml" %} ``` - -### Allowed libraries for the python-runtime runner - -The following example shows how to use some of the allowed packages, namely: -requests, json, git, and yaml: - -```yaml -{% include "../../assets/crd/python-libs.yaml" %} -``` - -### Passing secrets, environment variables and modifying the python command - -The following examples show how to pass data inside the parameter map, -how to load a secret in your code, -and how to modify the python command. -In this case the container runs with the `-h` option, -which prints the help message for the python3 interpreter: - -```yaml -{% include "../../assets/crd/python-context.yaml" %} -``` + ## More examples See -the [lifecycle-operator/config/samples](https://github.com/keptn/lifecycle-toolkit/tree/main/lifecycle-operator/config/samples/function_execution) +the [lifecycle-operator/config/samples](https://github.com/keptn/lifecycle-toolkit/tree/main/lifecycle-operator/config/samples) directory for more example `KeptnTaskDefinition` YAML files. ## Files @@ -555,7 +535,6 @@ This modifies the synopsis in the following ways: - [KeptnApp](app.md) - [Working with tasks](../../guides/tasks.md) -- [KeptnApp and KeptnWorkload resources](../../components/lifecycle-operator/keptn-apps.md). -- Getting started with - [Release Lifecycle Management](../../getting-started/lifecycle-management.md) +- [KeptnApp and KeptnWorkload resources](../../components/lifecycle-operator/keptn-apps.md) +- [Release Lifecycle Management](../../getting-started/lifecycle-management.md) - [Executing sequential tasks](../../guides/tasks.md#executing-sequential-tasks) diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function.yaml index de111f8730..0d49b56b23 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function.yaml @@ -3,7 +3,7 @@ kind: KeptnTaskDefinition metadata: name: slack-notification-deployment-1 spec: - function: + deno: functionRef: name: slack-notification secureParameters: diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_configmap.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_configmap.yaml index b821ec7de9..e9b7e44988 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_configmap.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_configmap.yaml @@ -3,7 +3,7 @@ kind: KeptnTaskDefinition metadata: name: scheduled-deployment spec: - function: + deno: configMapRef: name: scheduled-deployment-cm-1 --- diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline.yaml index 77c6830943..64749b851d 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline.yaml @@ -3,7 +3,7 @@ kind: KeptnTaskDefinition metadata: name: scheduled-deployment spec: - function: + deno: inline: code: | let text = Deno.env.get("DATA"); diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline_slack.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline_slack.yaml index 681b46f9c6..07827ccf96 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline_slack.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_inline_slack.yaml @@ -3,7 +3,7 @@ kind: KeptnTaskDefinition metadata: name: slack-notification-inline spec: - function: + deno: inlineRef: code: | let text = Deno.env.get("SECURE_DATA"); diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream.yaml index 056c70f9ca..0f22a54278 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream.yaml @@ -3,6 +3,6 @@ kind: KeptnTaskDefinition metadata: name: slack-notification spec: - function: + deno: httpRef: url: https://raw.githubusercontent.com/keptn/lifecycle-toolkit/main/runtimes/deno-runtime/samples/ts/slack.ts diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_scheduler.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_scheduler.yaml index adf2b17068..4c87a76258 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_scheduler.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_scheduler.yaml @@ -3,6 +3,6 @@ kind: KeptnTaskDefinition metadata: name: schedule-upstream-deployment spec: - function: + deno: httpRef: url: https://raw.githubusercontent.com/keptn/lifecycle-toolkit/main/runtimes/deno-runtime/samples/ts/schedule.ts diff --git a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_slack.yaml b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_slack.yaml index 056c70f9ca..0f22a54278 100644 --- a/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_slack.yaml +++ b/lifecycle-operator/config/samples/function_execution/taskdefinition_function_upstream_slack.yaml @@ -3,6 +3,6 @@ kind: KeptnTaskDefinition metadata: name: slack-notification spec: - function: + deno: httpRef: url: https://raw.githubusercontent.com/keptn/lifecycle-toolkit/main/runtimes/deno-runtime/samples/ts/slack.ts diff --git a/mkdocs.yml b/mkdocs.yml index c990b8e254..091e6492a5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -77,6 +77,8 @@ plugins: blog_dir: blog draft_if_future_date: true markdown_extensions: + - admonition + - pymdownx.details - pymdownx.highlight: anchor_linenums: true line_spans: __span diff --git a/test/chainsaw/allowed-namespaces/simple-deployment-not-allowed/chainsaw-test.yaml b/test/chainsaw/allowed-namespaces/simple-deployment-not-allowed/chainsaw-test.yaml index 8d6329e5ea..a7864e4228 100755 --- a/test/chainsaw/allowed-namespaces/simple-deployment-not-allowed/chainsaw-test.yaml +++ b/test/chainsaw/allowed-namespaces/simple-deployment-not-allowed/chainsaw-test.yaml @@ -14,7 +14,7 @@ spec: file: 00-assert.yaml - name: step-01 try: -# we expect none of these resources to be present + # we expect none of these resources to be present - error: resource: apiVersion: lifecycle.keptn.sh/v1beta1