From f39f923799ba67bc3b2adaecc30e09e16831509a Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Tue, 8 Apr 2025 20:52:56 +0530 Subject: [PATCH 01/33] docs: jobs revamp --- docs/user-guide/jobs/README.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/docs/user-guide/jobs/README.md b/docs/user-guide/jobs/README.md index 7f8ba1f33..42fa9f362 100644 --- a/docs/user-guide/jobs/README.md +++ b/docs/user-guide/jobs/README.md @@ -1,18 +1,27 @@ # Jobs -Job allows manual and automated execution of your source code. Job pipeline will not have CI/CD pipeline as the job is limited to your source code only. You can also configure [preset plugins](../creating-application/workflow/ci-build-pre-post-plugins.md#preset-plugins) in your job pipeline. +Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks within your application environment direlty on the source code. Devtron Jobs leverage Kubernetes Jobs to run isolated, task-specific operations within your Kubernetes cluster. -With job, you can execute your source code quickly and easily without going through CI/CD pipelines, which also optimize time. +Unlike Devtron CI/CD pipelines that primarily focus on building, testing, and deploying applications, Devtron Jobs are designed to handle independent, ephemeral tasks and allows you to execute tasks without impacting Ci/CD workflows or pipelines, making them ideal for specific tasks. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) +Each Devtron Job corresponds to a Kubernetes Job that creates one or more Pods to carry out a specified task. Once the task is completed, the Pods are terminated, making Devtron Jobs an ideal solution for one-time, recurring, or event-driven workloads. -There are two main steps in executing Job: +Jobs can be configured to run as: -* [Configurations](configuration-job.md) +* **One-time tasks**: Useful for maintenance operations, data migrations, backups, or environment cleanups. -* [Trigger Job](triggering-job.md) +* **Recurring tasks**: Scheduled operations like daily scans, periodic backups, or routine security checks. -In the next section, we will learn on how to create, configure, trigger a job. You can also view the details on the [Overview](overview-job.md) tab and `Run History`. +* **Event-driven tasks**: Triggered by specific events such as commits, pull requests, or tag creation. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) +Additionally, Devtron provides integrated [plugins]() that can be utilized within Jobs to enhance automation and streamline operations. You can explore the full list of plugins and their configurations in the [Devtron Plugin Documentation]() +To learn more about how to work with Jobs in Devtron, explore the following sections: + +* [Creating a Job]() +* [configurations]() +* [Trigger Job ]() +* [Run History]() +* [Job Overview]() \ No newline at end of file From 66ca04235ce6d49f2e1bc2e8fed94180dca91362 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Wed, 9 Apr 2025 11:51:11 +0530 Subject: [PATCH 02/33] docs: restructure the doc --- docs/user-guide/jobs/README.md | 29 ++++++--------------- docs/user-guide/jobs/getting-started-job.md | 21 +++++++++++++++ 2 files changed, 29 insertions(+), 21 deletions(-) create mode 100644 docs/user-guide/jobs/getting-started-job.md diff --git a/docs/user-guide/jobs/README.md b/docs/user-guide/jobs/README.md index 42fa9f362..0b932f707 100644 --- a/docs/user-guide/jobs/README.md +++ b/docs/user-guide/jobs/README.md @@ -1,27 +1,14 @@ # Jobs -Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks within your application environment direlty on the source code. Devtron Jobs leverage Kubernetes Jobs to run isolated, task-specific operations within your Kubernetes cluster. +Devtron Jobs provide a streamlined way to execute specific tasks or sets of tasks directly on your source code within your application environment. While they operate independently of standard CI/CD pipelines, Devtron Jobs follow a pipeline-based approach to run isolated, task-specific operations. -Unlike Devtron CI/CD pipelines that primarily focus on building, testing, and deploying applications, Devtron Jobs are designed to handle independent, ephemeral tasks and allows you to execute tasks without impacting Ci/CD workflows or pipelines, making them ideal for specific tasks. +To learn more about how Jobs work, see the full documentation below -Each Devtron Job corresponds to a Kubernetes Job that creates one or more Pods to carry out a specified task. Once the task is completed, the Pods are terminated, making Devtron Jobs an ideal solution for one-time, recurring, or event-driven workloads. +## Documentation -Jobs can be configured to run as: - -* **One-time tasks**: Useful for maintenance operations, data migrations, backups, or environment cleanups. - -* **Recurring tasks**: Scheduled operations like daily scans, periodic backups, or routine security checks. - -* **Event-driven tasks**: Triggered by specific events such as commits, pull requests, or tag creation. - - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) - -Additionally, Devtron provides integrated [plugins]() that can be utilized within Jobs to enhance automation and streamline operations. You can explore the full list of plugins and their configurations in the [Devtron Plugin Documentation]() - -To learn more about how to work with Jobs in Devtron, explore the following sections: - -* [Creating a Job]() -* [configurations]() -* [Trigger Job ]() +* [Getting Started with Jobs](./getting-started-job.md) +* [Creating a Job](./create-job.md) +* [Configurations](./configuration-job.md) +* [Trigger Job ](./triggering-job.md) * [Run History]() -* [Job Overview]() \ No newline at end of file +* [Job Overview](./overview-job.md) \ No newline at end of file diff --git a/docs/user-guide/jobs/getting-started-job.md b/docs/user-guide/jobs/getting-started-job.md new file mode 100644 index 000000000..f90452c34 --- /dev/null +++ b/docs/user-guide/jobs/getting-started-job.md @@ -0,0 +1,21 @@ +# Getting Started With Jobs + +Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks within your application environment direlty on the source code. Devtron Jobs leverage Kubernetes Jobs to run isolated, task-specific operations within your Kubernetes cluster. + +Unlike Devtron CI/CD pipelines that primarily focus on building, testing, and deploying applications, Devtron Jobs are designed to handle independent, ephemeral tasks and allows you to execute tasks without impacting Ci/CD workflows or pipelines, making them ideal for specific tasks. + +Each Devtron Job corresponds to a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) that creates one or more Pods to carry out a specified task. Once the task is completed, the Pods are terminated, making Devtron Jobs an ideal solution for one-time, recurring, or event-driven workloads. + +Jobs can be configured to run as: + +* **One-time tasks**: Useful for maintenance operations, data migrations, backups, or environment cleanups. + +* **Recurring tasks**: Scheduled operations like daily scans, periodic backups, or routine security checks. + +* **Event-driven tasks**: Triggered by specific events such as commits, pull requests, or tag creation. + + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) + +Additionally, Devtron provides integrated [plugins]() that can be utilized within Jobs to enhance automation and streamline operations. You can explore the full list of plugins and their configurations in the [Devtron Plugin Documentation]() + +To learn how to create a new Job in Devtron, continue with the next section. \ No newline at end of file From 302807a4689f3f560409430e46725c9c09079317 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Wed, 9 Apr 2025 14:52:15 +0530 Subject: [PATCH 03/33] docs: create job doc --- docs/user-guide/jobs/create-job.md | 63 ++++++++++++++++++------------ 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index a33f33a1b..bec42bad3 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -1,42 +1,55 @@ -# Create a New Job +# Create Job -* On the Devtron dashboard, select **Jobs**. -* On the upper-right corner of the screen, click **Create**. -* Select **Job** from the drop-down list. -* **Create job** page opens. +Devtron provides two ways to create a Job: +* **Blank Job**: Create a new job by manually defining all configurations. +* **Clone Job**: Create a new job by reusing the configuration of an existing job. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) +## Create a Blank Job +To create a new **Blank Job** in Devtron, follow these steps: +1. From the **Devtron Dashboard** → **Jobs**. -## Create Job +2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) +3. The **Create Job** page opens. From the left panel, select **Blank job**, then enter the required details as listed in the table below. -Provide below information on the `Create job` page: + -| Fields | Description | -| --- | --- | -| **Job Name** | User-defined name for the job in Devtron. | -| **Description** | Enter the description of a job. | -| **Registry URL** | This is the URL of your private registry in Quay. E.g. `quay.io` | -| **Select one of them** |
  • **Create from scratch** :Select the project from the drop-down list.
    `Note`: You have to add [project under Global Configurations](../global-configurations/projects.md). Only then, it will appear in the drop-down list here.
  • **Clone existing application**: Select an app you want to clone from and the project from the drop-down list.
    `Note`: You have to add [project under Global Configurations](../global-configurations/projects.md). Only then, it will appear in the drop-down list here.
| +| Fields| Description| +|:---|:---| +| **Project** | User-defined name for the job in Devtron.| +| **Job Name** | User-defined name for the job in Devtron.| +| **Description** | Enter the description of a job.| +|**Tags**|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the **Add tags to job** dropdown on the **Create job** page.
  2. Under the **Tags** section, Click `+` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
| -**Note**: Do not forget to modify git repositories and corresponding branches to be used for each Job Pipeline if required. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) +4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](./configuration.md)to continue setting up the job pipeline. + -### Tags + -`Tags` are key-value pairs. You can add one or multiple tags in your application. +## Create a Clone Job -**Propagate Tags** -When tags are propagated, they are considered as labels to Kubernetes resources. Kubernetes offers integrated support for using these labels to query objects and perform bulk operations e.g., consolidated billing using labels. You can use these tags to filter/identify resources via CLI or in other Kubernetes tools. +To create a new **Clone Job** in Devtron, follow these steps: +1. From the **Devtron Dashboard** → **Jobs**. + +2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/propagate-tags.jpg) +3. The **Create Job** page opens. From the left panel, select **Clone Job**, then enter the required details as listed in the table below. -* Click `+ Add tag` to add a new tag. -* Click the symbol on the left side of your tag to propagate a tag.
`Note`: Dark grey colour in symbol specifies that the tags are propagated. -* To remove the tags from propagation, click the symbol again. -* Click `Save`. + +| Fields| Description| +|:---|:---| +| **Project** | User-defined name for the job in Devtron.| +| **Job Name** | User-defined name for the job in Devtron.| +| **Description** | Enter the description of a job.| +|**Tags**|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the **Add tags to job** dropdown on the **Create job** page.
  2. Under the **Tags** section, Click `+` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
| +| **Select an job to clone** | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| +4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](./configuration.md), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. \ No newline at end of file From 82f8cbaa09224f6adc19cfa87babb8ebb7004558 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Wed, 9 Apr 2025 14:54:04 +0530 Subject: [PATCH 04/33] docs: add create job doc --- docs/user-guide/jobs/create-job.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index bec42bad3..0c3fa7d5e 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -15,8 +15,6 @@ To create a new **Blank Job** in Devtron, follow these steps: 3. The **Create Job** page opens. From the left panel, select **Blank job**, then enter the required details as listed in the table below. - - | Fields| Description| |:---|:---| | **Project** | User-defined name for the job in Devtron.| @@ -27,9 +25,6 @@ To create a new **Blank Job** in Devtron, follow these steps: ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) 4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](./configuration.md)to continue setting up the job pipeline. - - - ## Create a Clone Job @@ -42,8 +37,6 @@ To create a new **Clone Job** in Devtron, follow these steps: 3. The **Create Job** page opens. From the left panel, select **Clone Job**, then enter the required details as listed in the table below. - - | Fields| Description| |:---|:---| | **Project** | User-defined name for the job in Devtron.| From 466b929132783af8c892c5a4b384a0f455503d05 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Thu, 10 Apr 2025 16:21:00 +0530 Subject: [PATCH 05/33] docs: Source Code section added --- docs/user-guide/jobs/configuration-job.md | 79 ++++++++++++++++++++++- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/jobs/configuration-job.md b/docs/user-guide/jobs/configuration-job.md index afd0d7daf..99b883d76 100644 --- a/docs/user-guide/jobs/configuration-job.md +++ b/docs/user-guide/jobs/configuration-job.md @@ -1,9 +1,82 @@ # Configuration -For the Jobs, you must configure the following sections before you run and trigger the job: +After creating a Job, the next step is to configure it. This involves specifying the source code and using the Workflow Editor to define the sequence of tasks, such as code scanning, vulnerability checks, or data migrations, and setting up the conditions for when these tasks should run. -[Source Code](../creating-application/git-material.md) +The following sections will guide you through configuring the source code, setting up the Workflow Editor, and defining ConfigMaps, Secrets, and Environment Overrides for the job. -[Workflow Editor](workflow-editor-job.md) +## Source Code +In Devtron, the Source Code configuration is used to specify the repository that contains your scripts, terraform files, YAML configurations, or other resources. The repository acts as a central location for these files, allowing you to reference and execute them in your job without needing to rewrite the scripts in the Workflow Editor each time. +To configure the Source Code, follow these steps: + +1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. + +2. Select the **Source Code** tab from the left sidebar. + +3. Under Add Git Repository, select the Git Account from the dropdown menu.
You can also select GitHub Public from the same dropdown to configure a public repository that does not require authentication. + +4. Enter the Repository URL in the Git Repo URL field, corresponding to the selected Git account.
+If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. + +5. Configure the [Additional Options](#configure-additional-options-optional) for the job as per your requirements. + +6. Click on the **Save** button to save the changes. + +### Configure Additional Options (optional) + +#### Exclude specific file/folder in this repo + +Devtron allows you to exclude specific files or folders from the repository from being included in the job execution. This is particularly useful for avoiding unnecessary files or folders that do not contribute to the job’s tasks that are not relevant to the current job execution. + +You can define either exclusion rules or inclusion rules to filter the files and folders ensuring that only the necessary parts of the repository are used in the job. + +Commits that contain only changes to excluded files or folders will be marked as excluded when selecting commits to trigger the job, preventing them from being included in the build. + +To define the exclusion or inclusion rules, follow these steps: + +1. Check the **Exclude specific file/folder in this repo** checkbox. + +2. Enter the exclusion or inclusion rules in the **Enter file or folder paths to be included or excluded** field. + +| Sample Rules | Description | Impact on Commits | +|:---|:---|:---| +| `!README.md` | **Exclusion of a single file in root folder:** | Commits containing changes made only in README.md file will not be shown | +| `!README.md`
`!index.js` | **Exclusion of multiple files in root folder:** | Commits containing changes made only in README.md or/and index.js files will not be shown | +| `README.md` | **Inclusion of a single file in root folder:** | Commits containing changes made only in README.md file will be shown. Rest all will be excluded. | +| `!src/extensions/printer/code2.py` | **Exclusion of a single file in a folder tree:** |Commits containing changes made specifically to code2.py file will not be shown | +| `!src/*` | **Exclusion of a single folder and all its files:** |Commits containing changes made specifically to files within src folder will not be shown | +| `!README.md`
`index.js` | **Exclusion and inclusion of files:** | Commits containing changes made only in README.md will not be shown, but commits made in index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | +| `!README.md`
`README.md` | **Exclusion and inclusion of conflicting files** | If conflicting paths are defined in the rule, the one defined later will be considered. In this case, commits containing changes made only in README.md will be shown. | + + +You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. + +![Figure 6: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/git-material/rules.jpg) + +Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. + +![Figure 7: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/git-material/regex-help.jpg) + + +#### Set checkout path + +Devtron allows you to define a custom directory path where the repository will be checked out during job execution. By default, the repository is checked out to the root directory (./). However, you can set a custom path to specify a particular folder within the repository to be accessed and utilized during job execution. + +To set the checkout path, follow these steps: + +1. Check the **Set checkout path** checkbox. + +2. Enter the path to the folder you want to check out from the repository in the **Set checkout path** field. + +|Sample paths|Description| +|:---|:---| +|`./`|Checkout the repository to the root directory i.e., the entire repository itself| +|`./src`|Checkout the repository to the src folder| +|`./src/app`|Checkout the repository to the app folder inside the src folder| + +#### Pull submodules recursively + +This checkbox is used for pulling [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) present in a repo. The submodules will be pulled recursively, and the auth method used for the parent repo will be used for submodules too. + +To pull the submodules recursively, check the **Pull submodules recursively** checkbox. \ No newline at end of file From cd657e5579f5dbbb4882df2405a7a3ec9a05ed19 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Thu, 24 Apr 2025 15:23:30 +0530 Subject: [PATCH 06/33] New Structure --- .../workflow/ci-pipeline-new.md | 110 ++++++++++ docs/user-guide/jobs/README.md | 28 ++- docs/user-guide/jobs/configurations/README.md | 9 + .../configurations/configmap-secret/README.md | 10 + .../configmap-secret/configmap-job | 149 +++++++++++++ .../configmap-secret/secret-job | 204 ++++++++++++++++++ .../configurations/environment-override-job | 105 +++++++++ .../source-code-job} | 14 ++ .../workflow-editor-job.md | 12 ++ docs/user-guide/jobs/create-job.md | 40 ++-- docs/user-guide/jobs/overview-job.md | 96 ++++++--- docs/user-guide/jobs/run-history-job.md | 61 ++++++ docs/user-guide/jobs/triggering-job.md | 35 ++- ...{getting-started-job.md => what-is-job.md} | 10 +- 14 files changed, 810 insertions(+), 73 deletions(-) create mode 100644 docs/user-guide/creating-application/workflow/ci-pipeline-new.md create mode 100644 docs/user-guide/jobs/configurations/README.md create mode 100644 docs/user-guide/jobs/configurations/configmap-secret/README.md create mode 100644 docs/user-guide/jobs/configurations/configmap-secret/configmap-job create mode 100644 docs/user-guide/jobs/configurations/configmap-secret/secret-job create mode 100644 docs/user-guide/jobs/configurations/environment-override-job rename docs/user-guide/jobs/{configuration-job.md => configurations/source-code-job} (98%) rename docs/user-guide/jobs/{ => configurations}/workflow-editor-job.md (89%) create mode 100644 docs/user-guide/jobs/run-history-job.md rename docs/user-guide/jobs/{getting-started-job.md => what-is-job.md} (52%) diff --git a/docs/user-guide/creating-application/workflow/ci-pipeline-new.md b/docs/user-guide/creating-application/workflow/ci-pipeline-new.md new file mode 100644 index 000000000..a167b1aa7 --- /dev/null +++ b/docs/user-guide/creating-application/workflow/ci-pipeline-new.md @@ -0,0 +1,110 @@ +# CI Pipeline + +{% hint style="info" %} +For Devtron version older than v0.4.0, please refer the [CI Pipeline (legacy)](https://docs.devtron.ai/v/v0.4/devtron/user-guide/creating-application/workflow/ci-pipeline-legacy) page. +{% endhint %} + +## Introduction + +In Devtron, the Build and Deploy from Source Code method allows users to build container images directly from a Git repository and deploy them in a Kubernetes environment. + +## When to Use This Method? + +* When you need to build a container image from your application's source code. +* When you want automated builds triggered by code changes. +* When you require pre-build and post-build customization steps. + +{% hint style="info" %} +hint about docker image +{% endhint %} + +## Step-by-Step Guide to Creating a CI Pipeline + +1. Navigate to Workflow Editor +2. From the Applications menu, select your application. +3. Go to the App Configuration page and select Workflow Editor. +4. Click + New Workflow. +5. Select Build and Deploy from Source Code. + +### Configure Build Pipeline +1. In the Create Build Pipeline window, enter the following details: + +| Field Name | Required/Optional | Description | +| :--- | :--- | :--- | +| Pipeline Name | Required | A unique name for the build pipeline. | +| Source type | Required | Source type to trigger the CI. Available options: [Branch Fixed](#source-type-branch-fixed) \| [Branch Regex](#source-type-branch-regex) \|[Pull Request](#source-type-pull-request) \| [Tag Creation](#source-type-tag-creation) | +| Branch Name | Required | Branch that triggers the CI build | +| Advanced Options | Optional | Create Pre-Build, Build, and Post-Build tasks | + +#### Understanding Source Types + +Devtron provides multiple ways to trigger a build pipeline: + +| Source Type | Description | Additional Requirements | +| :--- | :--- | :--- | +| Branch Fixed | Triggers a CI build whenever changes are pushed to a specified branch. | Requires a predefined branch name.| +| Branch Regex | Allows dynamic branch selection based on a regex pattern, useful for branches following a common naming convention (e.g., feature-*). | Requires a regex pattern to be defined.| +| Pull Request (PR) | Triggers a CI build when a new pull request is created.| Requires webhook configuration for GitHub or Bitbucket.| +| Tag Creation | Triggers a build whenever a new tag is created. | Requires webhook configuration for GitHub or Bitbucket.| + +2. Click Create Pipeline to save the configuration and proceed. You can now use the default settings, or continue below to explore additional configuration options for customizing your pipeline. + +### Configuring Advanced Options + +Devtron provides three stages in a CI pipeline: Pre-Build, Build, and Post-Build. + +1. Pre-Build Stage: This stage is used for preparing the environment before the actual build begins. Tasks such as dependency installation, secret management, and validation can be configured here. + +2. Build Stage: The core stage where the application source code is compiled, a container image is built, and the necessary artifacts are generated. + +3. Post-Build Stage: This stage runs after the build is complete, where additional tasks such as security scans, notifications, or artifact uploads can be executed. + +This guide focuses on configuring the Build Stage. If you want to set up Pre-Build and Post-Build stages, refer to the separate documentation + +* Pre-Build Stage Configuration +* Post-Build Stage Configuration + +#### Scan for Vulnerabilities + +Devtron supports security scanning after the build stage. + +##### Prerequisite + +Ensure you have installed one of the following integrations: +* Clair +* Trivy + +##### How to Enable Security Scan? + +* In the Build Stage tab, enable Scan for vulnerabilities. +* This will scan the built container image for known vulnerabilities. + +#### Custom Image Tag Pattern + +You can define custom image tags for better version tracking. + +* Enable the Custom Image Tag Pattern toggle. +* Define an alphanumeric pattern (e.g., test-v1.0.{x} where x auto-increments with each build). +* Click Update Pipeline. + +{% hint style="info" %} +Ensure custom tags do not start or end with a period (.) or comma (,). +{% endhint %} + +#### Triggering a Build + +Once the CI pipeline is set up, follow these steps to trigger a build: + +* Navigate to Build & Deploy. + +* Click Select Material. + +* Choose the Git commit to build. + +* Click Start Build. + +Once successful, the image tag will be available in: + +* Build History +* Docker Registry  +* CD Pipeline (Image Selection) \ No newline at end of file diff --git a/docs/user-guide/jobs/README.md b/docs/user-guide/jobs/README.md index 0b932f707..d3430111d 100644 --- a/docs/user-guide/jobs/README.md +++ b/docs/user-guide/jobs/README.md @@ -1,14 +1,30 @@ # Jobs -Devtron Jobs provide a streamlined way to execute specific tasks or sets of tasks directly on your source code within your application environment. While they operate independently of standard CI/CD pipelines, Devtron Jobs follow a pipeline-based approach to run isolated, task-specific operations. +Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks defined by the user within the user's application environment. -To learn more about how Jobs work, see the full documentation below +To learn more about how Jobs work, see the below sections -## Documentation -* [Getting Started with Jobs](./getting-started-job.md) +* [What is Jobs](./what-is-job.md) + * [Creating a Job](./create-job.md) + * [Configurations](./configuration-job.md) + + * [Source Code](./configuration/source-code.md) + + * [Workflow editor](./configuration/workflow-editor.md) + + * [ConfigMaps & Secrets](./configuration/config-maps-and-secrets/README.md) + + * [ConfigMaps](./configuration/config-maps-and-secrets/configmaps.md) + + * [Secrets](./configuration/config-maps-and-secrets/secrets.md) + + * [Environments Override](./configuration/environment-overrides.md) + * [Trigger Job ](./triggering-job.md) -* [Run History]() -* [Job Overview](./overview-job.md) \ No newline at end of file + +* [Run History](./run-history.md) + +* [Job Overview](./overview-job.md) \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/README.md b/docs/user-guide/jobs/configurations/README.md new file mode 100644 index 000000000..3221de2e1 --- /dev/null +++ b/docs/user-guide/jobs/configurations/README.md @@ -0,0 +1,9 @@ +# Configuration + +After you have created a Job, the next step is, to configure the job. This means specifying the source code and using the Workflow Editor to create and configure the job pipeline, which include defining tasks such as code scanning, vulnerability checks, or data migrations, and configuring the sequence in which these tasks should be executed. + +In the following sections we will explore how you can configure your Job which includes, + +1. Configuring the [Source Code](/jobs/configuration/source-code.md) +2. Creating and configuring the job pipeline through [Workflow Editor](/jobs/configuration/workflow-editor.md). +3. Defining [ConfigMaps](/jobs/configuration/config-maps-and-secrets/configmaps.md) & [Secrets](/jobs/configuration/config-maps-and-secrets/secrets.md), and [Environment Overrides](/jobs/configuration/environment-overrides.md) for the job. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/README.md b/docs/user-guide/jobs/configurations/configmap-secret/README.md new file mode 100644 index 000000000..a2b404fb8 --- /dev/null +++ b/docs/user-guide/jobs/configurations/configmap-secret/README.md @@ -0,0 +1,10 @@ +# ConfigMaps & Secrets +## ConfigMaps +A ConfigMap stores key-value pairs that your jobs can use as environment variables or mounted files. ConfigMaps are meant for non-sensitive data. Moreover, you can update configurations without modifying or rebuilding your container images, thus making the deployments more efficient. + +To configure a ConfigMap for your job-pipeline, refer the [ConfigMaps](./configmap-job) section. + +## Secrets +Secrets and ConfigMaps are both used to store configurations but there is one major difference between them: ConfigMap stores key-values in normal text format; whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users and it is only visible to the users having edit permission. + +To configure a Secret for your job-pipeline, refer the [Secrets](./secret-job) section. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job new file mode 100644 index 000000000..4b1520a55 --- /dev/null +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job @@ -0,0 +1,149 @@ +# ConfigMaps + +A ConfigMap stores key-value pairs that your jobs can use as environment variables or mounted files. Unlike secrets, ConfigMaps are meant for non-sensitive data. Moreover, you can update configurations without modifying or rebuilding your container images, thus making the deployments more efficient. + +## Add ConfigMap + +1. Go to the **Configurations** → **ConfigMaps & Secrets**. + + + +2. Click the **+** button next to **ConfigMaps**. + + + +3. Enter a name for the ConfigMap (Once defined, name cannot be changed later). + + In case, you are using a External Kubernetes ConfigMap, name should be exactly same as the as the name given using `kubectl create configmap ` command. + +4. **Data Type** - Choose between the following data types: + * [Kubernetes ConfigMap](#kubernetes-configmap): Select the Data Type as Kubernetes ConfigMap, if you wish to create and use the ConfigMap using Devtron. + + * [Kubernetes External ConfigMap](#kubernetes-external-configmap): Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and wants to use that in Devtron. + +5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in following ways

**Mount data as** - Select how you want to mount the ConfigMap: + * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Environment Variables in pods using ConfigMap. + * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. + +### Mount data as environment variables + +This will pass your ConfigMap data into your Job pod as environment variables, thus making the configurations values directly acessible by your job. + +#### For Kubernetes ConfigMap + + If you have selected Data type as `Kubernetes ConfigMap` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: + + * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. + + + + * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. + + + {% embed url="https://www.youtube.com/watch?v=QfJqX6KM2lU" %} + +#### For Kubernetes External ConfigMap + +If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. + +### Mount data as Data Volume + +This option allows you to create a ConfigMap by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. + + ![Figure 4: Selecting Data Volume Option](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/cm-data-volume.jpg) + +### Volume Mount Path + +Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. + +### Set Sub Path + +When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. + +* If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. + +* If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. + +{% hint style="info" %} +### Note +In case of Kubernetes ConfigMap, all keys will be mounted as files on the specified path. +In case of Kubernetes External ConfigMap, manually specify the keys which should be mounted as files. +{% endhint %} + +### Set File Permission + +The **Set File Permission** option applies permissions at the ConfigMap level, not to individual keys within the ConfigMap. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. + +The 3-digit numeric value represents the permission settings for the file: + +* **First digit**: Owner permissions (user). +* **Second digit**: Group permissions. +* **Third digit**: Other users' permissions. + +| **Permission** | **Description** | +|----------------|------------------------------------------------| +| **r** (read) | Grants the ability to read the file. | +| **w** (write) | Grants the ability to modify the file. | +| **x** (execute)| Grants the ability to execute the file as a program. | + +For example, **755** means: +* Owner can read, write, and execute (7), +* Group can read and execute (5), +* Others can read and execute (5). + +### Data + +#### For Kubernetes ConfigMap + + The key of the ConfigMap should be your filename and the value of the ConfigMap should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that ConfigMap (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). + +![Figure 5: Adding File Content](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/filecontent-cm.jpg) + +#### For Kubernetes External ConfigMap + + If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. + +7. You may [perform a dry run](#perform-a-dry-run) before clicking **Save**. + +8. Select **Save** to create a ConfigMap. +--- + +## Perform a Dry Run + +Before saving your configured ConfigMap, you can use the **Dry Run** option (as shown below) to preview the final Kubernetes manifest. + +This feature helps you verify your configurations, detect issues, and ensure correctness. + +![Figure 6: Performing a Dry Run](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/dry-run-cm.gif) + +Your configurations will appear in the left pane, while the right pane will display a section named `Manifest generated from merged` showing the computed Kubernetes manifest. + +--- + +## Update ConfigMap + +1. Click your ConfigMap available inside the list of **ConfigMaps** inside **Base Configurations**. +2. Modify its values. +3. Click **Update**. + +{% hint style="warning" %} +### Note +You cannot change the name of a ConfigMap. Create a new ConfigMap instead. +{% endhint %} + +![Figure 7: Updating Existing ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/update_configmap.jpg) + +--- + +## Delete ConfigMap + +You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, it will not be used in future deployments. + +1. Click your ConfigMap available inside the list of **ConfigMaps** inside **Base Configurations**. +2. On the right side, click the kebab menu (3 vertical dots). +3. Click **Delete**. +4. Confirm the deletion in the dialogbox. + +![Figure 8: Deleting ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/delete_configmap.jpg) + +--- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job b/docs/user-guide/jobs/configurations/configmap-secret/secret-job new file mode 100644 index 000000000..ec79c7c31 --- /dev/null +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job @@ -0,0 +1,204 @@ +# Secrets + +Secrets and ConfigMaps are both used to store configurations but there is one major difference between them: ConfigMap stores key-values in normal text format; whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users and it is only visible to the users having edit permission. + +Secret objects let you store and manage sensitive information, such as passwords, authentication tokens, and ssh keys. Embedding this information in secrets is safer and more flexible than putting it verbatim in a Pod definition or in a container image. + +## Add Secret + +1. Go to the **Configurations** → **Base Configurations**. + + + +2. Click the **+** button next to **Secrets**. + + + +3. Enter a name for the Secret (Once defined, name cannot be changed later). + + In case, you are mounting Existing Kubernetes Secret, name should be exactly same as the as the name given using `kubectl create secret ` command. + + + +4. **Data Type** - Choose between the following data types: + * [Kubernetes Secret](#kubernetes-secret): Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. + + * [Mount Existing Kubernetes Secret](#mount-existing-kubernetes-secrets): Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and wants to use that in Devtron. + + * [External Secret Operator (ESO)](#external-secret-operator-eso): External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. + + >Refer the [External Secret Operator (ESO)](#external-secret-operator-eso) section to setup ESO + + +
**Note**: Devtron automatically converts secrets from various data types to Kubernetes Secrets. Regardless of the original data type, once the conversion is complete, the Pods can access the secrets in the same way as native Kubernetes Secrets. + +5. After selecting the data type, you can choose how to mount the data of your Secret. Devtron allows you to mount Secret data in following ways

**Mount data as** - Select how you want to mount the Secret: + + * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Secret data(key-value pairs) as Environment Variables in pods using Secret. + + * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. + +### Mount data as environment variables + +This will pass your secret data into your Job pod as environment variables, thus making the configurations values directly accessible by your job. + +#### For Kubernetes Secret + + If you have selected Data type as `Kubernetes Secret` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: + + * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. + + + + * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. + + + {% embed url="https://www.youtube.com/watch?v=x6IIr6pDZig" %} + + + +### Mount Existing Kubernetes Secrets + +This option allows you to mount an existing Kubernetes Secret in your job pods. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail. + +If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. + +--- + +### Mount Data as Data Volume + + +This option allows you to create a Secret by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. + + + +### Volume Mount Path + +Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. + + + +### Set Sub Path + +When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. + +* If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. + +* If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. + +{% hint style="info" %} +### Note +In case of Kubernetes Secrets, all keys will be mounted as files on the specified path. +In case of External Secrets, manually specify the keys which should be mounted as files. +{% endhint %} + +### Set File Permission + +The **Set File Permission** option applies permissions at the Secret level, not to its individual secret keys. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. + +The 3-digit numeric value represents the permission settings for the file: + +* **First digit**: Owner permissions (user). +* **Second digit**: Group permissions. +* **Third digit**: Other users' permissions. + +| **Permission** | **Description** | +|----------------|------------------------------------------------| +| **r** (read) | Grants the ability to read the file. | +| **w** (write) | Grants the ability to modify the file. | +| **x** (execute)| Grants the ability to execute the file as a program. | + +For example, **755** means: +* Owner can read, write, and execute (7), +* Group can read and execute (5), +* Others can read and execute (5). + +### Data +#### For Kubernetes Secret + +The key of the Secret should be your filename and the value of the Secret should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that Secret (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). + +![Figure 5: Adding File Content](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/filecontent-secret.jpg) + +#### For Mount Existing Kubernetes Secrets + +This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. + +--- +## Perform a Dry Run + +Before saving your configured Secret, you can use the **Dry Run** option (as shown below) to preview the final Kubernetes manifest. + +This feature helps you verify your configurations, detect issues, and ensure correctness. + +![Figure 7: Performing a Dry Run](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/dry-run-secret.gif) + +Your configurations will appear in the left pane, while the right pane will display a section named `Manifest generated from merged` showing the computed Kubernetes manifest. + +--- + +## Update Secret + +1. Click your Secret available inside the list of **Secrets** inside **Base Configurations**. +2. Modify its values. +3. Click **Update**. + +{% hint style="warning" %} +### Note +You cannot change the name of a Secret. Create a new Secret instead. +{% endhint %} + +![Figure 8: Updating Existing Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/update-secret.jpg) + +--- + +## Delete Secret + +You may delete a Secret if not in use anymore. Once a Secret is deleted, it will not be used in future deployments. + +1. Click your Secret available inside the list of **Secrets** inside **Base Configurations**. +2. On the right side, click the kebab menu (3 vertical dots). +3. Click **Delete**. +4. Confirm the deletion in the dialogbox. + +![Figure 9: Deleting Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/delete-secret.jpg) + +--- + +## External Secret Operator (ESO) + +{% hint style="info" %} +### Prerequisite +Chart version should be > 4.14.0 +{% endhint %} + +### Purpose + +This section is for users who wish to use the following data type while adding secrets in Devtron: +* [Google Secrets Manager](./eso/gcp-eso.md) +* [AWS Secrets Manager](./eso/aws-eso.md) +* [Hashi Corp Vault](./eso/hashicorp-eso.md) +* [Azure Secrets Manager](./eso/azure-eso.md) + +External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. Before you can create external secrets in Devtron, you need to install the External Secrets Operator on the target cluster. + +### Installation Steps + +1. Go to the **Chart Store**. + +2. Search for the `external-secrets` chart. + + ![Figure 10: Searching External Secrets Chart](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/external-secret.jpg) + +{% hint style="info" %} +### What if external-secrets chart is not found? +Manually add the following chart repository URL in Devtron: `https://charts.external-secrets.io`. Follow this [guide](../../global-configurations/chart-repo.md#add-chart-repository) to know the steps. +{% endhint %} + +3. Give a name to the helm app that will be created from the chart. Also enter the project and environment where you wish to install the chart. + + ![Figure 11: Adding Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/ext-secret-fields.jpg) + +4. Click **Deploy Chart**. + +After Deploying the Chart, refer the [ESO Documentation]() to setup ESO for different providers. diff --git a/docs/user-guide/jobs/configurations/environment-override-job b/docs/user-guide/jobs/configurations/environment-override-job new file mode 100644 index 000000000..c43682c5d --- /dev/null +++ b/docs/user-guide/jobs/configurations/environment-override-job @@ -0,0 +1,105 @@ +# Environment Overrides + +You can view all environments associated with a job under the **Environment Overrides** section. + + + +The Environment Overrides section allows you to customize the **ConfigMaps**, and **Secrets** for different environments such as development, testing, staging, and production. + +## How it works + +* When you add a job pipeline to an job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. + +* The **Environment Overrides** section lets you customize those ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic. + +--- + +## Environment Configurations Page + +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above (along with access to the environment and applications) to perform environment override. +{% endhint %} + +1. In your job, go to **Configurations** → **Environment Overrides**. + + + +2. Select an environment whose configurations you wish to modify. + + + +3. You will get the following options (similar to the **ConfigMaps & Secrets** page): + * [ConfigMaps](#override-configmap--secret) + * [Secrets](#override-configmap--secret) + +Let's visit each of the configuration files and see how to override their values for the selected environment. + +## Override ConfigMaps & Secrets + +If you want to configure your ConfigMaps and Secrets at the application-level then you can provide them in [ConfigMaps](../configuration/config-maps-and-secrets/configmaps.md) and [Secrets](../configuration/config-maps-and-secrets/secrets.md), but if you want to have environment-specific ConfigMaps & Secrets, use **Environment Override** to create new environment specific ConfigMaps & Secrets or override existing ConfigMaps & Secrets for specific environments. At the time of execution, devtron will pick environment specific ConfigMaps & Secrets according to the environment in which the job is executed and pass them to your job pods. + +1. Select the ConfigMap or Secret you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. + + + +2. To create Override, select the **No Override** tab and click the **Create Override** button. + + + +4. In the same tab (now labelled as **Override**), you can choose any one mode for changing the configuration values: + * **YAML** - This mode has a YAML based editor intended for advanced users. + * **GUI** - This mode has a user-friendly interface intended for beginner to advanced users. + +{% hint style="info" %} +### Note +Users who are not super-admins will land on GUI mode when they override; whereas super-admins will land on YAML mode. This is just the default behavior, users can still toggle the mode if needed. +{% endhint %} + + + +5. You can override the values using [Replace](#using-replace-strategy) merge strategy: + +### Replace Strategy + +* The entire configuration is replaced with your new environment-specific settings. +* The replaced template will no longer depend or inherit from base configuration anymore. +* Best for a complete override. + +| Field | Inherited Configuration | Input (with Replace) | Final Configuration | +|-----------|--------------------|------------------------------|---------------------| +| cpu | 100m | 500m | 500m | +| memory | 256Mi | 512Mi | 512Mi | +| replicas | 2 | *(Not specified)* | *(Removed)* | +| logLevel | "info" | *(Not specified)* | *(Removed)* | +| timeout | (Not specified) | 30s | 30s (Added) | + +Refer the tutorials below to know the process in YAML mode. In case you wish to use GUI mode, skip to [Overriding in GUI mode](#using-gui-mode-for-overriding). + +{% embed url="https://www.youtube.com/watch?v=lSoj8wwOej0" %} + +--- + +## Using GUI Mode for Overriding + +The above sections, i.e., [Override ConfigMap & Secret](#override-configmap--secret) explained the process of environment override using YAML. + +Refer the below tutorial videos to know the process of overriding them using GUI. + +### Override ConfigMaps and Secrets using GUI + +{% embed url="https://www.youtube.com/watch?v=UOTKLVuSkDg" %} + +--- + +## Delete Override + +This action will discard the current overrides and the base configuration file (in this example, deployment template) will be restored back for the environment. + +1. On the right side, click the kebab menu (3 vertical dots). +2. Click **Delete Override**. +3. Confirm the deletion in the dialogbox. + + +--- \ No newline at end of file diff --git a/docs/user-guide/jobs/configuration-job.md b/docs/user-guide/jobs/configurations/source-code-job similarity index 98% rename from docs/user-guide/jobs/configuration-job.md rename to docs/user-guide/jobs/configurations/source-code-job index 99b883d76..0d095ae93 100644 --- a/docs/user-guide/jobs/configuration-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job @@ -12,13 +12,21 @@ To configure the Source Code, follow these steps: 1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. + + 2. Select the **Source Code** tab from the left sidebar. + + 3. Under Add Git Repository, select the Git Account from the dropdown menu.
You can also select GitHub Public from the same dropdown to configure a public repository that does not require authentication. + + 4. Enter the Repository URL in the Git Repo URL field, corresponding to the selected Git account.
If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. + + 5. Configure the [Additional Options](#configure-additional-options-optional) for the job as per your requirements. 6. Click on the **Save** button to save the changes. @@ -37,6 +45,8 @@ To define the exclusion or inclusion rules, follow these steps: 1. Check the **Exclude specific file/folder in this repo** checkbox. + + 2. Enter the exclusion or inclusion rules in the **Enter file or folder paths to be included or excluded** field. | Sample Rules | Description | Impact on Commits | @@ -52,6 +62,8 @@ To define the exclusion or inclusion rules, follow these steps: You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. + + ![Figure 6: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/git-material/rules.jpg) Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. @@ -75,6 +87,8 @@ To set the checkout path, follow these steps: |`./src`|Checkout the repository to the src folder| |`./src/app`|Checkout the repository to the app folder inside the src folder| + + #### Pull submodules recursively This checkbox is used for pulling [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) present in a repo. The submodules will be pulled recursively, and the auth method used for the parent repo will be used for submodules too. diff --git a/docs/user-guide/jobs/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md similarity index 89% rename from docs/user-guide/jobs/workflow-editor-job.md rename to docs/user-guide/jobs/configurations/workflow-editor-job.md index c29cb9e62..829ae6a4e 100644 --- a/docs/user-guide/jobs/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -99,3 +99,15 @@ In the **Edit job pipeline** window, edit the required fields and select **Updat You can only delete a job pipeline in your workflow. To delete a job pipeline, go to **Configurations > Workflow Editor** and select **Delete Pipeline**. + +--- + +## Next Steps + +* After creating and configuring the job pipeline, the next optional step is to configure ConfigMaps and Secrets for your job. Refer the [ConfigMaps & Secrets](./configmap-secret/README.md) to configure them. + +* Devtron also allows you to configure environment-specific ConfigMaps and Secrets. Refer the [Environment Override](./environment-override-job) section to configure them. + +* After creating and configuring the ConfigMaps & Secrets, the next step is to trigger your job pipeline. To trigger your configured job-pipeline refer [Triggering a job pipeline](../triggering-job.md) + +--- \ No newline at end of file diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 0c3fa7d5e..f5771469e 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -1,15 +1,17 @@ # Create Job -Devtron provides two ways to create a Job: -* **Blank Job**: Create a new job by manually defining all configurations. -* **Clone Job**: Create a new job by reusing the configuration of an existing job. +In devtron, jobs can be created by two ways: + +* **Blank Job**: This allows you to create a new job from scratch by manually defining all configurations. + +* **Clone Job**: This allows you to create a new job by reusing the configuration of an existing job. ## Create a Blank Job To create a new **Blank Job** in Devtron, follow these steps: -1. From the **Devtron Dashboard** → **Jobs**. -2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. +1. Navigate to **Devtron Dashboard** → **Jobs**. +2. Click **Create** button in the top-right corner and select **Job** from the drop-down list. ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) @@ -17,20 +19,20 @@ To create a new **Blank Job** in Devtron, follow these steps: | Fields| Description| |:---|:---| -| **Project** | User-defined name for the job in Devtron.| -| **Job Name** | User-defined name for the job in Devtron.| -| **Description** | Enter the description of a job.| -|**Tags**|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the **Add tags to job** dropdown on the **Create job** page.
  2. Under the **Tags** section, Click `+` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
| +| **Project**| User-defined name for the job in Devtron.| +| **Job Name**| User-defined name for the job in Devtron.| +| **Description** | Enter the description of a job.| +| **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) -4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](./configuration.md)to continue setting up the job pipeline. +4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](configuration/)to continue setting up the job pipeline. ## Create a Clone Job To create a new **Clone Job** in Devtron, follow these steps: -1. From the **Devtron Dashboard** → **Jobs**. +1. From the **Devtron Dashboard** → **Jobs**. 2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) @@ -38,11 +40,15 @@ To create a new **Clone Job** in Devtron, follow these steps: 3. The **Create Job** page opens. From the left panel, select **Clone Job**, then enter the required details as listed in the table below. | Fields| Description| -|:---|:---| -| **Project** | User-defined name for the job in Devtron.| -| **Job Name** | User-defined name for the job in Devtron.| -| **Description** | Enter the description of a job.| -|**Tags**|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the **Add tags to job** dropdown on the **Create job** page.
  2. Under the **Tags** section, Click `+` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
| +|:---|:--- | +| **Project**| User-defined name for the job in Devtron.| +| **Job Name**| User-defined name for the job in Devtron.| +| **Description**| Enter the description of a job.| +| **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| | **Select an job to clone** | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| -4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](./configuration.md), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. \ No newline at end of file + + +4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](configuration/), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. + +After creating a job, the next step is to configure the job, refer the [Configurations](./configuration/README.md) section to configure the job. \ No newline at end of file diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index cbd25200a..6f544716d 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -1,49 +1,93 @@ # Overview -The `Overview` section contains the brief information of the job, any added tags, and deployment details of the particular job. -In this section, you can also [change project of your job](#change-project-of-your-job) and [manage tags](#manage-tags) if you added them while creating job. +The Overview page provides a centralized view of a job’s details within Devtron. It allows users to quickly access information about the job, manage tags, view job pipelines — all in a single, organized interface. ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) +The `Overview` page contains three main sections: +* [`About`](#about): Contains job's metadata such as name, description, project, project, creator, and it also includes options to manage tags. -The following details are provided on the **Overview** page: +* [`Job Pipelines`](#job-pipelines): Displays all job pipelines along with their last status and quick access to associated workflows. -| Fields | Description | -| :--- | :--- | -| **Job Name** | Displays the name of the job. | -| **Created on** | Displays the day, date and time the job was created. | -| **Created by** | Displays the email address of a user who created the job. | -| **Project** | Displays the current project of the job. You can change the project by selecting a different project from the drop-down list. | +--- +## About -## Change Project of your Job +The `About` section allows you to: -You can change the project of your job by clicking **Project** on the `Overview` section. +* View key job details +* Change the project your application is assigned to +* Manage tags that you may have added during the job’s creation -1. Click `Project`. -2. On the `Change project` dialog box, select the different project you want to change from the drop-down list. +The left side of the `About` section displays essential information about the job. -Click **Save**. The job will be moved to the selected project. + -## Manage Tags +The table below captures all the key elements presented in this section, along with their descriptions and whether they can be edited by the user. -`Tags` are key-value pairs. You can add one or multiple tags in your application. When tags are propagated, they are considered as labels to Kubernetes resources. Kubernetes offers integrated support for using these labels to query objects and perform bulk operations e.g., consolidated billing using labels. You can use these tags to filter/identify resources via CLI or in other Kubernetes tools. +| Field Name | User Editable |Description| +| :--------- | :--------------- |:--------- | +| `Job Name` | No |Displays the name of the application (e.g., backend-healthcare-app).| +| `Short Description`|Yes|A short, optional description to summarize the application's purpose.| +| `Project` |Yes|Indicates the current project under which the application is organized.
You can change the project directly from this section.
  1. Click the `Edit` icon next to the current project.
  2. In the `Change Project` window, select the new project from the dropdown.
  3. Click `Save`.
Changing the project will revoke access for existing users and grant access only to those who have permissions in the newly selected project.| +| `Created on` |No|Shows the exact date and time when the application was created.| +| `Created by`|No|Displays the email address of the user who created the application.| -`Manage tags` is the central place where you can create, edit, and delete tags. You can also propagate tags as labels to Kubernetes resources for the application. +| `Tags` |Yes|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the `Edit` icon next to `Tags`.
  2. On the `Manage Tags` page, Click `+ Add tag` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
  5. Click `Save`, Configured Tags will reflect immediately under `Tags` in `About` Section
| -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/manage-tags-latest.jpg) +### Readme +The right side of the `About` section contains a `README` area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. -* Click `Edit tags`. -* On the `Manage tags` page, click `+ Add tag` to add a new tag. -* Click `X` to delete a tag. -* Click the symbol on the left side of your tag to propagate a tag.
`Note`: Dark grey colour in symbol specifies that the tags are propagated. -* To remove the tags from propagation, click the symbol again. -* Click `Save`. + -The changes in the tags will be reflected in the `Tags` on the `Overview` section. +To add or update the `Readme`: +1. Click the **Edit** button in the Readme section. +2. A Markdown editor will appear where you can write or modify content under the `Write` tab. +3. Use standard Markdown syntax to format text, create lists, insert links, and more. +4. Preview the content using the `Preview` tab. +5. Click **Save** to update the README. + +{% hint style="info" %} + After saving, the system displays the email address of the user who last updated the README, along with the date and time. This information appears in the header of the Readme section, beside the title. +{% endhint %} +### Catalog [![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/elements/EnterpriseTag.svg)](https://devtron.ai/pricing) +The **Catalog** in the **About** section displays information about your job—such as Container port, Environment Variables, Arguments, Resources(CPU and RAM) This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). - +![Figure 2d: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/catalog.jpg) + +`Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron applications. + +When you click the **Edit** icon, a form appears based on the defined schema. As an job owner, you can fill out fields like: +* Container port (e.g., API contract, service documentation) +* Environment Variables +* Arguments +* Resources(CPU and RAM) + + + +{% hint style= "info" %} +The structure and labels in the catalog form are entirely configurable by your platform team via JSON schema in **Catalog Framework**. Field names and sections may vary depending on how the schema was defined by your organization. +{% endhint %} + +Once saved, this information is displayed in a readable format within the Catalog subsection and is accessible to all users who have permission to view the job. + + + +--- + +## Job Pipelines + +The Job Pipelines section provides a detailed view of all job pipelines. For each job pipeline, it displays + +| Field Name |Description| +| :--------- |:--------- | +| Pipeline name |Name of the job pipeline.| +| Last Run Status|Displays the status of the most recent job execution| +| Run in environment | Displays the name of the environment in which job is executed. | +| Last Run AT| Displays how long ago the job was last triggered.| + + diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md new file mode 100644 index 000000000..1a7c80353 --- /dev/null +++ b/docs/user-guide/jobs/run-history-job.md @@ -0,0 +1,61 @@ +# Run History + +The run history allows you to review each and every execution of job-pipelines. Here you can review who triggered each pipeline, when it started executing and finished, and whether it succeeded or failed. It also allows you to inspect logs for each execution. + +## Accessing run history for specific pipeline + +Either you have just executed the job and want to inspect live execution or you just want to check previous executions of a job pipeline + +1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from `Select Pipeline` dropdown in the top-left corner. + + + +2. Select the specific execution you want to inspect. By default the latest execution is selected. + + + +3. After selecting the execution, the right section of the page will display the details about that particular execution. + +|Field|Description| +|:---|:---| +|Triggered|Shows the date, time, user, and commit ID that initiated this run.| +|Environment|Indicates which execution environment (e.g., devtron-ci) was used for this job.| +|Execution started|Timestamp marking when the job actually began running.| +|Execution succeeded|Timestamp marking when the job finished successfully.| +|Worker status|Final outcome of the worker performing the job (e.g., Succeeded or Failed). On failure, the error message is also shown| + + + +Apart from these details, you can also inspect logs, source code, security, and download artifacts (if any). + +### Logs +* In logs tab, you can inspect logs for each pipeline stage and task along with thier runtime. +* Use the `Search log` search bar to search specific keywords or errors. +* You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. +* Select the fullscreen button in the bottom-right corner to view logs in fullscreen. + + + +### Source +The source tab shows which commit is from the source code (configured Git repository) is used to execute the job pipeline. + +It shows following commit details +|Field|Description| +|:---|:---| +|Repository name & icon |The Git repo used with its provider logo| +|Commit hash|A short, clickable commit ID (e.g. 443vecd) that opens the full commit details when clicked.| +|Commit message|Commit message used while psuhing that commit| +|Author|Name & email of the committer.| +|Date & time|When that commit was authored| + + + +### Artifacts +The Artifacts tab shows all archives or files your job has produced such as backup binaries, reports, log bundles and let you download them for inspection or further use your job has produced. + + +### Security + +The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. + + \ No newline at end of file diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index bd2071278..45d19cc58 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -1,34 +1,31 @@ -# Triggering Job +# Triggering Job Pipeline -## Triggering Job Pipeline +After creating the job pipeline, the next step is to trigger the job pipeline. This is the step where the job will executed in the selected environment. -The Job Pipeline can be triggered by selecting `Select Material` +To trigger the job-pipeline: -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) - -Job Pipelines that are set as automatic are always triggered as soon as a new commit is made to the git branch they're sensing. However, Job pipelines can always be manually triggered as and if required. +1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. -Various commits done in the repository can be seen here along with details like Author, Date etc. Select the commit that you want to trigger and then click on `Run Job` to trigger the job pipeline. - -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-job.jpg) +2. Select `Select Material` for the job-pipeline you wish to execute, a modal window will open, under `Code-source` tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) -**Refresh** icon, refreshes Git Commits in the job Pipeline and fetches the latest commits from the `Git Repository`. - -**Ignore Cache** : This option will ignore the previous build cache and create a fresh build. If selected, will take a longer build time than usual. [Click here](../creating-application/workflow/ci-pipeline.md#docker-layer-caching) to read more about controlling cache behavior in Devtron. +3. Select the commit you want to use in the job execution. You can use the search bar to filter the commits hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. -It can be seen that the job pipeline is triggered here and is the _Running_ state. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-job.jpg) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/click-job-details.jpg) +4. Select the `Parameters` tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. -Click your `job pipeline` or click `Run History` to get the details about the job pipeline such as logs, reports etc. + -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-job.jpg) +5. After selecting the commit and configuring runtime inputs, pick the target environment from the `Execute job in` dropdown at the bottom. -Click `Source code` to view the details such as commit id, Author and commit message of the Git Material that you have selected for the job. + -Click `Artifacts` to download the _reports_ of the job, if any. +6. Select `Run Job` to execute your pipeline. -If you have multiple job pipelines, you can select a pipeline from the drop-down list to view th details of logs, source code, or artifacts. + +After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source,artifacts)in [run-history](./run-history.md) either by navigating to `Run History` tab or by clicking `details` above the `Select Material` of the specific pipeline. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/click-job-details.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/getting-started-job.md b/docs/user-guide/jobs/what-is-job.md similarity index 52% rename from docs/user-guide/jobs/getting-started-job.md rename to docs/user-guide/jobs/what-is-job.md index f90452c34..c83f2c1f9 100644 --- a/docs/user-guide/jobs/getting-started-job.md +++ b/docs/user-guide/jobs/what-is-job.md @@ -1,10 +1,10 @@ -# Getting Started With Jobs +# What is Jobs? -Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks within your application environment direlty on the source code. Devtron Jobs leverage Kubernetes Jobs to run isolated, task-specific operations within your Kubernetes cluster. +Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks defined by the user within the user's application environment. Unlike Devtron CI/CD pipelines that primarily focus on building, testing, and deploying applications, Devtron Jobs are designed to handle independent, ephemeral tasks and allows you to execute tasks without impacting Ci/CD workflows or pipelines, making them ideal for specific tasks. -Each Devtron Job corresponds to a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) that creates one or more Pods to carry out a specified task. Once the task is completed, the Pods are terminated, making Devtron Jobs an ideal solution for one-time, recurring, or event-driven workloads. +Each Devtron Job corresponds to a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) that creates one or more Pods to carry out the specific task. Once the task is completed, the Pods are terminated, making Devtron Jobs an ideal solution for one-time, recurring, or event-driven workloads. Jobs can be configured to run as: @@ -16,6 +16,6 @@ Jobs can be configured to run as: ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) -Additionally, Devtron provides integrated [plugins]() that can be utilized within Jobs to enhance automation and streamline operations. You can explore the full list of plugins and their configurations in the [Devtron Plugin Documentation]() +Devtron Jobs support executing custom tasks or predefined operations using integrated pipeline plugins. These plugins extend job functionality by enabling tasks such as code scanning, image signing, vulnerability patching, container image copying, and external automation through tools like Ansible and Bitbucket Runners. To explore the full list of supported plugins and their configuration options, refer to the [Devtron Plugin Documentation](). -To learn how to create a new Job in Devtron, continue with the next section. \ No newline at end of file +To learn how to create a new Job in Devtron, continue to the [Create a new job](./create-a-new-job.md) section. \ No newline at end of file From ec5e23434306dfc742ab5ffbde35c805679cd837 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Thu, 24 Apr 2025 15:27:58 +0530 Subject: [PATCH 07/33] docs:removing CI Pipeline doc --- .../workflow/ci-pipeline-new.md | 110 ------------------ 1 file changed, 110 deletions(-) delete mode 100644 docs/user-guide/creating-application/workflow/ci-pipeline-new.md diff --git a/docs/user-guide/creating-application/workflow/ci-pipeline-new.md b/docs/user-guide/creating-application/workflow/ci-pipeline-new.md deleted file mode 100644 index a167b1aa7..000000000 --- a/docs/user-guide/creating-application/workflow/ci-pipeline-new.md +++ /dev/null @@ -1,110 +0,0 @@ -# CI Pipeline - -{% hint style="info" %} -For Devtron version older than v0.4.0, please refer the [CI Pipeline (legacy)](https://docs.devtron.ai/v/v0.4/devtron/user-guide/creating-application/workflow/ci-pipeline-legacy) page. -{% endhint %} - -## Introduction - -In Devtron, the Build and Deploy from Source Code method allows users to build container images directly from a Git repository and deploy them in a Kubernetes environment. - -## When to Use This Method? - -* When you need to build a container image from your application's source code. -* When you want automated builds triggered by code changes. -* When you require pre-build and post-build customization steps. - -{% hint style="info" %} -hint about docker image -{% endhint %} - -## Step-by-Step Guide to Creating a CI Pipeline - -1. Navigate to Workflow Editor -2. From the Applications menu, select your application. -3. Go to the App Configuration page and select Workflow Editor. -4. Click + New Workflow. -5. Select Build and Deploy from Source Code. - -### Configure Build Pipeline -1. In the Create Build Pipeline window, enter the following details: - -| Field Name | Required/Optional | Description | -| :--- | :--- | :--- | -| Pipeline Name | Required | A unique name for the build pipeline. | -| Source type | Required | Source type to trigger the CI. Available options: [Branch Fixed](#source-type-branch-fixed) \| [Branch Regex](#source-type-branch-regex) \|[Pull Request](#source-type-pull-request) \| [Tag Creation](#source-type-tag-creation) | -| Branch Name | Required | Branch that triggers the CI build | -| Advanced Options | Optional | Create Pre-Build, Build, and Post-Build tasks | - -#### Understanding Source Types - -Devtron provides multiple ways to trigger a build pipeline: - -| Source Type | Description | Additional Requirements | -| :--- | :--- | :--- | -| Branch Fixed | Triggers a CI build whenever changes are pushed to a specified branch. | Requires a predefined branch name.| -| Branch Regex | Allows dynamic branch selection based on a regex pattern, useful for branches following a common naming convention (e.g., feature-*). | Requires a regex pattern to be defined.| -| Pull Request (PR) | Triggers a CI build when a new pull request is created.| Requires webhook configuration for GitHub or Bitbucket.| -| Tag Creation | Triggers a build whenever a new tag is created. | Requires webhook configuration for GitHub or Bitbucket.| - -2. Click Create Pipeline to save the configuration and proceed. You can now use the default settings, or continue below to explore additional configuration options for customizing your pipeline. - -### Configuring Advanced Options - -Devtron provides three stages in a CI pipeline: Pre-Build, Build, and Post-Build. - -1. Pre-Build Stage: This stage is used for preparing the environment before the actual build begins. Tasks such as dependency installation, secret management, and validation can be configured here. - -2. Build Stage: The core stage where the application source code is compiled, a container image is built, and the necessary artifacts are generated. - -3. Post-Build Stage: This stage runs after the build is complete, where additional tasks such as security scans, notifications, or artifact uploads can be executed. - -This guide focuses on configuring the Build Stage. If you want to set up Pre-Build and Post-Build stages, refer to the separate documentation - -* Pre-Build Stage Configuration -* Post-Build Stage Configuration - -#### Scan for Vulnerabilities - -Devtron supports security scanning after the build stage. - -##### Prerequisite - -Ensure you have installed one of the following integrations: -* Clair -* Trivy - -##### How to Enable Security Scan? - -* In the Build Stage tab, enable Scan for vulnerabilities. -* This will scan the built container image for known vulnerabilities. - -#### Custom Image Tag Pattern - -You can define custom image tags for better version tracking. - -* Enable the Custom Image Tag Pattern toggle. -* Define an alphanumeric pattern (e.g., test-v1.0.{x} where x auto-increments with each build). -* Click Update Pipeline. - -{% hint style="info" %} -Ensure custom tags do not start or end with a period (.) or comma (,). -{% endhint %} - -#### Triggering a Build - -Once the CI pipeline is set up, follow these steps to trigger a build: - -* Navigate to Build & Deploy. - -* Click Select Material. - -* Choose the Git commit to build. - -* Click Start Build. - -Once successful, the image tag will be available in: - -* Build History -* Docker Registry  -* CD Pipeline (Image Selection) \ No newline at end of file From fe31384b964d046d3d23c288581ddc1315f63683 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Sat, 26 Apr 2025 20:58:35 +0530 Subject: [PATCH 08/33] docs: added images --- .../configmap-secret/configmap-job | 139 ++++--- .../configmap-secret/secret-job | 96 ++--- .../jobs/configurations/source-code-job | 26 +- .../configurations/workflow-editor-job.md | 363 +++++++++++++++--- docs/user-guide/jobs/create-job.md | 5 +- docs/user-guide/jobs/overview-job.md | 14 +- docs/user-guide/jobs/run-history-job.md | 19 +- docs/user-guide/jobs/triggering-job.md | 14 +- docs/user-guide/jobs/what-is-job.md | 2 - 9 files changed, 471 insertions(+), 207 deletions(-) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job index 4b1520a55..cb1242f3a 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job @@ -6,133 +6,150 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl 1. Go to the **Configurations** → **ConfigMaps & Secrets**. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap.jpg) 2. Click the **+** button next to **ConfigMaps**. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-add.jpg) 3. Enter a name for the ConfigMap (Once defined, name cannot be changed later). In case, you are using a External Kubernetes ConfigMap, name should be exactly same as the as the name given using `kubectl create configmap ` command. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-name.jpg) + 4. **Data Type** - Choose between the following data types: + * [Kubernetes ConfigMap](#kubernetes-configmap): Select the Data Type as Kubernetes ConfigMap, if you wish to create and use the ConfigMap using Devtron. * [Kubernetes External ConfigMap](#kubernetes-external-configmap): Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and wants to use that in Devtron. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) + 5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in following ways

**Mount data as** - Select how you want to mount the ConfigMap: + * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Environment Variables in pods using ConfigMap. + * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. -### Mount data as environment variables + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) + + ### Mount data as environment variables -This will pass your ConfigMap data into your Job pod as environment variables, thus making the configurations values directly acessible by your job. + This will pass your ConfigMap data into your Job pod as environment variables, thus making the configurations values directly accessible by your job. -#### For Kubernetes ConfigMap + #### For Kubernetes ConfigMap - If you have selected Data type as `Kubernetes ConfigMap` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: + If you have selected Data type as `Kubernetes ConfigMap` and mount data as `Environment Variable` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. - + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - + + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-yaml.jpg) - {% embed url="https://www.youtube.com/watch?v=QfJqX6KM2lU" %} + #### For Kubernetes External ConfigMap -#### For Kubernetes External ConfigMap + If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. -If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-env.jpg) -### Mount data as Data Volume - -This option allows you to create a ConfigMap by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. + ### Mount data as Data Volume - ![Figure 4: Selecting Data Volume Option](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/cm-data-volume.jpg) + This option allows you to create a ConfigMap by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. -### Volume Mount Path + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol.jpg) -Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. + ### Volume Mount Path -### Set Sub Path + Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. -When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-mount-path.jpg) -* If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. + ### Set Sub Path -* If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. + When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. -{% hint style="info" %} -### Note -In case of Kubernetes ConfigMap, all keys will be mounted as files on the specified path. -In case of Kubernetes External ConfigMap, manually specify the keys which should be mounted as files. -{% endhint %} + * If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. -### Set File Permission + * If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. -The **Set File Permission** option applies permissions at the ConfigMap level, not to individual keys within the ConfigMap. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-subpath.jpg) -The 3-digit numeric value represents the permission settings for the file: + {% hint style="info" %} + ### Note + In case of Kubernetes ConfigMap, all keys will be mounted as files on the specified path. + In case of Kubernetes External ConfigMap, manually specify the keys which should be mounted as files. + {% endhint %} -* **First digit**: Owner permissions (user). -* **Second digit**: Group permissions. -* **Third digit**: Other users' permissions. + ### Set File Permission -| **Permission** | **Description** | -|----------------|------------------------------------------------| -| **r** (read) | Grants the ability to read the file. | -| **w** (write) | Grants the ability to modify the file. | -| **x** (execute)| Grants the ability to execute the file as a program. | + The **Set File Permission** option applies permissions at the ConfigMap level, not to individual keys within the ConfigMap. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. + + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-file-per.jpg) + + The 3-digit numeric value represents the permission settings for the file: -For example, **755** means: -* Owner can read, write, and execute (7), -* Group can read and execute (5), -* Others can read and execute (5). + * **First digit**: Owner permissions (user). + * **Second digit**: Group permissions. + * **Third digit**: Other users' permissions. -### Data + | **Permission** | **Description** | + |----------------|------------------------------------------------| + | **r** (read) | Grants the ability to read the file. | + | **w** (write) | Grants the ability to modify the file. | + | **x** (execute)| Grants the ability to execute the file as a program. | -#### For Kubernetes ConfigMap + For example, **755** means: + * Owner can read, write, and execute (7), + * Group can read and execute (5), + * Others can read and execute (5). - The key of the ConfigMap should be your filename and the value of the ConfigMap should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that ConfigMap (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). + ### Data -![Figure 5: Adding File Content](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/filecontent-cm.jpg) + #### For Kubernetes ConfigMap -#### For Kubernetes External ConfigMap + If you have selected Data type as `Kubernetes ConfigMap` and mount data as `Data Volume` then, you also need to enter the required data (key-value pairs) in the **Data** field. - If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. + The key of the ConfigMap should be your filename and the value of the ConfigMap should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that ConfigMap (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). + + Enter data in: -7. You may [perform a dry run](#perform-a-dry-run) before clicking **Save**. + * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. -8. Select **Save** to create a ConfigMap. ---- + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-gui.jpg) -## Perform a Dry Run + * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. -Before saving your configured ConfigMap, you can use the **Dry Run** option (as shown below) to preview the final Kubernetes manifest. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-yaml.jpg) -This feature helps you verify your configurations, detect issues, and ensure correctness. + #### For Kubernetes External ConfigMap + + If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. -![Figure 6: Performing a Dry Run](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/dry-run-cm.gif) + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-data-vol.jpg) -Your configurations will appear in the left pane, while the right pane will display a section named `Manifest generated from merged` showing the computed Kubernetes manifest. +6. Select **Save** to create a ConfigMap. --- ## Update ConfigMap -1. Click your ConfigMap available inside the list of **ConfigMaps** inside **Base Configurations**. +1. Click your ConfigMap available inside the list of **ConfigMaps** inside **ConfigMaps & Secrets**. + 2. Modify its values. -3. Click **Update**. + +3. Click **Save Changes**. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-update.jpg) {% hint style="warning" %} ### Note You cannot change the name of a ConfigMap. Create a new ConfigMap instead. {% endhint %} -![Figure 7: Updating Existing ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/update_configmap.jpg) - --- ## Delete ConfigMap @@ -142,8 +159,8 @@ You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, i 1. Click your ConfigMap available inside the list of **ConfigMaps** inside **Base Configurations**. 2. On the right side, click the kebab menu (3 vertical dots). 3. Click **Delete**. -4. Confirm the deletion in the dialogbox. +4. Confirm the deletion in the dialog box. -![Figure 8: Deleting ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/config-maps/delete_configmap.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-delete.jpg) --- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job b/docs/user-guide/jobs/configurations/configmap-secret/secret-job index ec79c7c31..3dc5ffc91 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job @@ -8,29 +8,32 @@ Secret objects let you store and manage sensitive information, such as passwords 1. Go to the **Configurations** → **Base Configurations**. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret.jpg) 2. Click the **+** button next to **Secrets**. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-add.jpg) 3. Enter a name for the Secret (Once defined, name cannot be changed later). In case, you are mounting Existing Kubernetes Secret, name should be exactly same as the as the name given using `kubectl create secret ` command. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-name.jpg) 4. **Data Type** - Choose between the following data types: - * [Kubernetes Secret](#kubernetes-secret): Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. - * [Mount Existing Kubernetes Secret](#mount-existing-kubernetes-secrets): Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and wants to use that in Devtron. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) - * [External Secret Operator (ESO)](#external-secret-operator-eso): External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. +* [Kubernetes Secret](#kubernetes-secret): Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. + +* [Mount Existing Kubernetes Secret](#mount-existing-kubernetes-secrets): Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and wants to use that in Devtron. + +* [External Secret Operator (ESO)](#external-secret-operator-eso): External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. - >Refer the [External Secret Operator (ESO)](#external-secret-operator-eso) section to setup ESO +> `external-secrets` helm chart should be installed before setting up ESO, otherwise the External Secret Operator (ESO) will not appear. Refer the [External Secret Operator (ESO)](#external-secret-operator-eso) section to setup ESO - -
**Note**: Devtron automatically converts secrets from various data types to Kubernetes Secrets. Regardless of the original data type, once the conversion is complete, the Pods can access the secrets in the same way as native Kubernetes Secrets. +
+**Note**: Devtron automatically converts secrets from various data types to Kubernetes Secrets. Regardless of the original data type, once the conversion is complete, the Pods can access the secrets in the same way as native Kubernetes Secrets. 5. After selecting the data type, you can choose how to mount the data of your Secret. Devtron allows you to mount Secret data in following ways

**Mount data as** - Select how you want to mount the Secret: @@ -38,64 +41,68 @@ Secret objects let you store and manage sensitive information, such as passwords * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. -### Mount data as environment variables + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-data.jpg) -This will pass your secret data into your Job pod as environment variables, thus making the configurations values directly accessible by your job. + ### Mount data as environment variables -#### For Kubernetes Secret + This will pass your secret data into your Job pod as environment variables, thus making the configurations values directly accessible by your job. + + #### For Kubernetes Secret If you have selected Data type as `Kubernetes Secret` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. - + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - - - {% embed url="https://www.youtube.com/watch?v=x6IIr6pDZig" %} - + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-yaml.jpg) -### Mount Existing Kubernetes Secrets + ### Mount Existing Kubernetes Secrets -This option allows you to mount an existing Kubernetes Secret in your job pods. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail. + This option allows you to mount an existing Kubernetes Secret in your job pods. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail. -If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. + If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) --- -### Mount Data as Data Volume - + ### Mount Data as Data Volume + This option allows you to create a Secret by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol.jpg) -### Volume Mount Path + ### Volume Mount Path Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-mount-path.jpg) -### Set Sub Path + ### Set Sub Path When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-sub-path.jpg) + * If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. * If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. {% hint style="info" %} -### Note + ### Note In case of Kubernetes Secrets, all keys will be mounted as files on the specified path. In case of External Secrets, manually specify the keys which should be mounted as files. {% endhint %} -### Set File Permission + ### Set File Permission The **Set File Permission** option applies permissions at the Secret level, not to its individual secret keys. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-file-per.jpg) + The 3-digit numeric value represents the permission settings for the file: * **First digit**: Owner permissions (user). @@ -113,43 +120,44 @@ For example, **755** means: * Group can read and execute (5), * Others can read and execute (5). -### Data + ### Data #### For Kubernetes Secret +If you have selected Data type as `Kubernetes Secret` and mount data as `Data Volume` then, you also need to enter the required data (key-value pairs) in the **Data** field. + The key of the Secret should be your filename and the value of the Secret should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that Secret (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). -![Figure 5: Adding File Content](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/filecontent-secret.jpg) +Enter data in: -#### For Mount Existing Kubernetes Secrets + * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. -This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-gui.jpg) ---- -## Perform a Dry Run - -Before saving your configured Secret, you can use the **Dry Run** option (as shown below) to preview the final Kubernetes manifest. + * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. + + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-yaml.jpg) -This feature helps you verify your configurations, detect issues, and ensure correctness. +#### For Mount Existing Kubernetes Secrets -![Figure 7: Performing a Dry Run](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/dry-run-secret.gif) +This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. -Your configurations will appear in the left pane, while the right pane will display a section named `Manifest generated from merged` showing the computed Kubernetes manifest. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-data-vol.jpg) --- ## Update Secret -1. Click your Secret available inside the list of **Secrets** inside **Base Configurations**. +1. Click your Secret available inside the list of **Secrets** inside **ConfigMaps & Secrets**. 2. Modify its values. -3. Click **Update**. +3. Click **Save Changes**. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-update.jpg) {% hint style="warning" %} ### Note You cannot change the name of a Secret. Create a new Secret instead. {% endhint %} -![Figure 8: Updating Existing Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/update-secret.jpg) - --- ## Delete Secret @@ -161,7 +169,7 @@ You may delete a Secret if not in use anymore. Once a Secret is deleted, it will 3. Click **Delete**. 4. Confirm the deletion in the dialogbox. -![Figure 9: Deleting Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/delete-secret.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) --- diff --git a/docs/user-guide/jobs/configurations/source-code-job b/docs/user-guide/jobs/configurations/source-code-job index 0d095ae93..f74bce1c3 100644 --- a/docs/user-guide/jobs/configurations/source-code-job +++ b/docs/user-guide/jobs/configurations/source-code-job @@ -12,25 +12,25 @@ To configure the Source Code, follow these steps: 1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. - - 2. Select the **Source Code** tab from the left sidebar. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) -3. Under Add Git Repository, select the Git Account from the dropdown menu.
You can also select GitHub Public from the same dropdown to configure a public repository that does not require authentication. +3. Under Add Git Repository, select the Git Account from the dropdown menu. You can also select GitHub Public from the same dropdown to configure a public repository that does not require authentication. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) 4. Enter the Repository URL in the Git Repo URL field, corresponding to the selected Git account.
If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) 5. Configure the [Additional Options](#configure-additional-options-optional) for the job as per your requirements. 6. Click on the **Save** button to save the changes. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) + ### Configure Additional Options (optional) #### Exclude specific file/folder in this repo @@ -45,7 +45,7 @@ To define the exclusion or inclusion rules, follow these steps: 1. Check the **Exclude specific file/folder in this repo** checkbox. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) 2. Enter the exclusion or inclusion rules in the **Enter file or folder paths to be included or excluded** field. @@ -62,13 +62,11 @@ To define the exclusion or inclusion rules, follow these steps: You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. - - -![Figure 6: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/git-material/rules.jpg) +![Figure : 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. -![Figure 7: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/git-material/regex-help.jpg) +![Figure : Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) #### Set checkout path @@ -87,10 +85,12 @@ To set the checkout path, follow these steps: |`./src`|Checkout the repository to the src folder| |`./src/app`|Checkout the repository to the app folder inside the src folder| - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) #### Pull submodules recursively This checkbox is used for pulling [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) present in a repo. The submodules will be pulled recursively, and the auth method used for the parent repo will be used for submodules too. -To pull the submodules recursively, check the **Pull submodules recursively** checkbox. \ No newline at end of file +To pull the submodules recursively, check the **Pull submodules recursively** checkbox. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 829ae6a4e..0a2468811 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -1,113 +1,352 @@ # Workflow Editor -In the `Workflow Editor` section, you can configure a job pipeline to be executed. Pipelines can be configured to be triggered automatically or manually based on code change or time. +The **Workflow Editor** in Devtron allows you to create and manage job pipelines. +It provides visual interface to create and configure job pipelines, define Basic Configurations such as trigger types, branch name and allows you to add **Tasks to be executed** in the desired sequence. -* After adding Git repo in the `Source Code` section, go to the `Workflow Editor`. -* Click `Job Pipeline`. -* Provide the information in the following fields on the **Create job pipeline** page: +To create and configure the Job Pipeline -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-pipeline-basic.jpg) +1. Navigate to the **Workflow Editor** tab in the left sidebar of the Job **Configuration** page. Alternatively, you can go to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -| Field Name | Required/Optional | Description | -| :--- | :--- | :--- | -| Pipeline Name | Required | A name for the pipeline | -| Source type | Required | Source type to trigger the job pipeline. Available options: [Branch Fixed](#source-type-branch-fixed) \| [Branch Regex](#source-type-branch-regex) \|[Pull Request](#source-type-pull-request) \| [Tag Creation](#source-type-tag-creation) | -| Branch Name | Required | Branch that triggers the job pipeline. | +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) -* Click **Create Pipeline**. +2. Click **+ Job Pipeline** to create a new Job workflow, a pop-up **Create job workflow** will appear asking you to enter a name for your Job workflow. -* The job pipeline is created. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/job-pipeline-created.jpg) +3. Enter the name for your Job workflow and click on **Create Workflow** button, a new Job workflow will be created, in which you can add a job pipeline. -* To trigger job pipeline, go to the [Trigger Job](triggering-job.md) section. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) -`Note`: You can create more than one job pipeline by clicking **+ Job Pipeline**. +4. To add a job pipeline to your workflow, click anywhere in the `Add job pipeline to this workflow` area under the job workflow name. This opens the **Create job pipeline** Window in which you can create and configure your job. -### Docker Layer Caching [![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/elements/EnterpriseTag.svg)](https://devtron.ai/pricing) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) -[Click here](../creating-application/workflow/ci-pipeline.md#docker-layer-caching) to read more about controlling cache behavior in Devtron. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) -### Source type: Branch Fixed +## Create Job Pipeline -The **Source type** - "Branch Fixed" allows you to trigger a CI build whenever there is a code change on the specified branch. +In **Create job pipeline** window, you can create and configure job pipelines.\ +It includes 2 stages i.e., [**Basic Configurations**](./#basic-configurations) and [**Tasks to be executed**](./#tasks-to-be-executed) -Select the **Source type** as "Branch Fixed" and enter the **Branch Name**. +### Basic Configurations -### Source type: Branch Regex +This stage allows you to define primary configurations such as Pipeline name, Source Type, Branch Name, and how job should be triggered. Refer the following table to configure each field. -`Branch Regex` allows users to easily switch between branches matching the configured Regex before triggering the build pipeline. -In case of `Branch Fixed`, users cannot change the branch name in ci-pipeline unless they have admin access for the app. So, if users with -`Build and Deploy` access should be allowed to switch branch name before triggering ci-pipeline, `Branch Regex` should be selected as source type by a user with Admin access. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-basic-config.jpg) -For example if the user sets the Branch Regex as `feature-*`, then users can trigger from branches such as `feature-1450`, `feature-hot-fix` etc. +| Field Name|Description| +| :--- |:--- | +| Trigger Job Pipeline |

The job execution may be set to:

  • Automatically: Job execution is triggered automatically as the Git source code changes.
  • Manually: Build is triggered manually.
| +| Pipeline Name | Assign a name to your job pipeline| +| Source type | Source type to trigger the job pipeline. Available options: Branch Fixed, Branch Regex, Pull Request, Tag Creation| +| Branch Name| Branch that triggers the CI build| +| Use remote cache|

Enable this option to use the Docker cache from previous builds. Docker's layer caching mechanism allows unchanged docker images layers to be reused across pipeline runs,thus drastically reducing execution times

The globe toggle, next to Docker Layer Caching means that the configuration is inherited from global

  • Enabled: Inherits the caching settings defined globally.
  • Disabled: Allows you to define a pipeline-level configuration specific to this job.
| -### Source type: Pull Request +### Tasks to be executed -The **Source type** - "Pull Request" allows you to configure the CI Pipeline using the PR raised in your repository. +The Stage allows you define tasks for your job. -> Before you begin, [configure the webhook](../creating-application/workflow/ci-pipeline.md#configuring-webhook) for either GitHub or Bitbucket. +You can create one or more tasks. Tasks can be dependent on each other for execution, In other words, the output variable of one task can be used as an input for the next task to execute your job. Tasks will execute in the order they are arranged and can be rearranged by drag-and-drop; however, the order of passing the variables must be followed. -> The "Pull Request" source type feature only works for the host GitHub or Bitbucket cloud for now. To request support for a different Git host, please create a GitHub issue [here](https://github.com/devtron-labs/devtron/issues). +To create a task: +1. Navigate to **Tasks to be executed** in the **Create job pipeline** window. -To trigger the build from specific PRs, you can filter the PRs based on the following keys: +2. Click **Add Task** to add a task in your job pipeline. -| Filter key | Description | -| :--- | :--- | -| `Author` | Author of the PR | -| `Source branch name` | Branch from which the Pull Request is generated | -| `Target branch name` | Branch to which the Pull request will be merged | -| `Title` | Title of the Pull Request | -| `State` | State of the PR. Default is "open" and cannot be changed | +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) -Select the appropriate filter and pass the matching condition as a regular expression (`regex`). +3. A new task will be added (in the left side of the Create job pipeline window),you can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) -> Devtron uses regexp library, view [regexp cheatsheet](https://yourbasic.org/golang/regexp-cheat-sheet/). You can test your custom regex from [here](https://regex101.com/r/lHHuaE/1). +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) -### Source type: Tag Creation +#### Create Task using preset plugins -The **Source type** - "Tag Creation" allows you to build the CI pipeline from a tag. +In Devtron, preset plugins are pre-defined tasks templates, that helps you automate and execute common operations such as provisioning infrastructure, taking backups, exporting container images etc., without writing custom scripts. -> Before you begin, [configure the webhook](../creating-application/workflow/ci-pipeline.md#configuring-webhook) for either GitHub or Bitbucket. +Devtron provides a set of built-in preset plugins, and you can also create your own plugins in devtron according to your specific needs. -To trigger the build from specific tags, you can filter the tags based on the `author` and/or the `tag name`. +To create a task using preset plugins, let's take an scenario, where you want to provision a GKE Cluster in your Google Cloud Console, instead of defining a whole new custom script, you can use the `GKE Provisioner` plugin to provision the GKE cluster. -| Filter key | Description | -| :--- | :--- | -| `Author` | The one who created the tag | -| `Tag name` | Name of the tag for which the webhook will be triggered | +To create a task using the GKE plugin follow the below steps: -Select the appropriate filter and pass the matching condition as a regular expression (`regex`). +1. After Configuring the basic configurations, select **Tasks to be executed** Tab +2. Click **+Add Task** from the left side panel. +3. Search for `GKE Provisioner` in the `Search Plugin` Search bar and select `GKE Provisioner` from the list of plugins. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) -### Add Preset Plugins + * The right-side panel will display the fields specific to the GKE Provisioner plugin which are required to be configured. + * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by-default), along with it's logo. You can change the task's name using the `Task name` field but plugin's logo will remain indicating that it is a preset plugin. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-pipeline-add-tasks.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) -You can also add preset plugins in your job pipeline to execute some standard tasks, such as Code analysis, Load testing, Security scanning etc. Click `Add Task` to add [preset plugins](../creating-application/workflow/ci-build-pre-post-plugins.md#configuring-pre-post-build-tasks). +4. Refer the [GKE Provisioner](/docs/user-guide/plugins/gke-provisioner.md) documentation to configure the `GKE Provisioner` fields with appropriate values. +> Refer to the [Plugins documentation](/docs/user-guide/plugins/README.md) to explore and configure any of the available plugins. + +5. After configuring the fields successfully, your task will be created, if you wish, you can add more tasks by clicking on `+ Add task` in the left-side panel. + +#### Create Task using Custom Script + +In devtron you can also define a task using custom script to meet specific requirements. To create a task a task using a custom script follow the below steps: + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-custom-task.jpg) + +1. After Configuring the basic configurations, select **Tasks to be executed** Tab. + +2. Click **+Add Task** from the left side panel, and then select **Execute custom task**. + + * The right-side panel will display the fields which are required to be configured in order to create the task. + * The left-side panel will now displays a task under **Tasks (IN ORDER OF EXECUTION)**. + +3. Enter the Task name(required) and Task Description (optional). + +4. Select the **Task type**, it can be `Shell` or `Container Image`. + + * **Shell Tasks**: These execute shell scripts directly within the job runtime environment.In this type of tasks you can define inline scripts or use script files from your configured source code. + + * **Container Image Tasks**: These allows you to execute commands and scripts inside a custom docker container, instead of using the default environment provided by devtron, you can specify you own container image with all dependencies and tools required for the tasks. + +These Tasks run using container in container approach, that means, the specified image is pulled and run inside the job pod, thus providing a complete isolated environment. + +5. After selecting the **Task type**, you need to configure task-specific fields based on that **Task type**.Let's look at some examples below to configure both **Shell type** and **Container image** tasks. + +#### Example - Shell Task + +Let's take an example of a **Shell task** for a job that allows you to back up a specific PostgreSQL database and stores it as a file. + +**Tasks Configurations** + +|Field| Values for This Example| Required/Optional | Description| +| :--- | :--- | :--- | :--- | +| **Task Name**| `pg-backup-task`| Required| Enter a name for the task| +| **Task Description**| This task performs a backup of a specific PostgreSQL database and save it as a file and stores the file path as a output variable. | Optional | Short description for the task| +| **Task Type** | `Shell`| Optional| Select the preferred task type | +| Input variables| Refer the [Input Variable table](./#input-variable-table) below | Optional|

These variables provide dynamic values to the script at the time of execution and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| +| Trigger/Skip condition | `Trigger If: DB_NAME == prod-db`| Optional| A conditional statement to execute or skip the task| +| Script| Refer the [Script](./#script)| Required| Custom script for executing Job tasks| +| Output directory path | `/backups`| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| +| Output variables| Refer the [output variable](./#output-variables) table| Optional|

Output variables stores the output as variables and these variables can be used as input variables for the next task.

  • Pass/Failure Condition (Optional): Conditional statements to determine the success/failure of the task. A failed condition stops the execution of the next task and/or build process
| + +**Input Variable Table** + +| Variable | Type | Value | Description | +| ------------ | ------ | ---------------------- | --------------------------------------------- | +| DB\_NAME | String | prod-db | Name of the database to be backed up | +| DB\_USER | String | postgres | Username for the PostgreSQL instance | +| DB\_HOST | String | localhost | PostgreSQL server hostname | +| BACKUP\_PATH | String | /backup | Directory path where the backup file is saved | + +* To add a input variable, click **+ Add Variable** next to the `Input Variable`, a new table appear asking you to enter the variable and its required information. + +* You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
+ +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) + +* You can click the slider icon next to each variable name to make it's value required and add a description for it. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) + +* You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) + +**Script:** + +{% code title="Custom Script" overflow="wrap" lineNumbers="true" %} +```bash +#!/bin/sh +set -eo pipefail +#set -v ## uncomment this to debug the script + +echo "Taking database backup" +bash ./scripts/backup.sh --db-host "$DB_HOST" --db-user "$DB_USER" --db-name "$DB_NAME" --backup-path "$BACKUP_PATH" +``` +{% endcode %} + +In the above script, instead of writing the entire script for the backup task, we have referenced the `backup.sh` script from the Github Repository configured as Source code. This approach avoids the need to rewrite the same script again and again for each task, thus making it reusable and efficient across multiple jobs. + +**backup.sh Script (Stored in Github repository)** + +{% code title="backup.sh" overflow="wrap" lineNumbers="true" %} +```bash +#!/bin/bash + +# Input variables for database connection +DB_HOST="$DB_HOST" +DB_USER="$DB_USER" +DB_NAME="$DB_NAME" +DB_PASSWORD="$DB_PASSWORD" +BACKUP_PATH="$BACKUP_PATH" + +# Define the backup file path +BACKUP_FILE_PATH="/backups/$DB_NAME-$(date +%F).backup" + +# Backup PostgreSQL database +pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" -F c -b -v -f "$BACKUP_FILE_PATH" + +# Check if backup was successful +if [ $? -eq 0 ]; then + BACKUP_STATUS="success" + echo "Backup completed successfully. File path: $BACKUP_FILE_PATH" + echo "BACKUP_STATUS=$BACKUP_STATUS" # Set the output variable + echo "BACKUP_FILE_PATH=$BACKUP_FILE_PATH" # Set the backup file path as output variable +else + BACKUP_STATUS="failure" + echo "Backup failed." + exit 1 +fi +``` +{% endcode %} + +**Output Variables:** + +| Variable | Type | Description | +| ------------------ | ------ | --------------------------------------------------- | +| BACKUP\_FILE\_PATH | String | Stores the file path of the backup file generated. | +| BACKUP\_STATUS | String | Indicates whether the backup was successful or not. | + +**Pass/Fail Condition** + +PASS If: `BACKUP_STATUS == success`\ +PASS If: `BACKUP_FILE_PATH != ""` + +After adding this backup task, you can add more tasks as well, for example, you can add a task to upload the backup files to cloud storage (e.g., AWS S3) or sending a notification about the backup status.These additional tasks can use the output variable BACKUP\_FILE\_PATH to access the backup file generated in the first task. + +#### Example - Container Image Task + +Let's take an example of a **Container Image Task** for a job that provision an AWS s3 bucket using terraform. Here instead of installing dependencies (such as terraform), this task pulls the official terraform image (hashicorp/terraform:1.5.0) in which our task will execute. This means a container will be created inside the job pod and runs terraform commands inside the container thus avoiding the need to install dependencies manually each time. + +**Tasks Configurations** + +| Field| Values for This Example| Required/Optional | Description| +| :---|:---|:---|:---| +| Task name| `provision-s3-bucket`| Required|Enter a name for the task| +| Description| Provision an S3 bucket with Terraform| Optional| A descriptive message for the task| +| Task type| `Container Image`| Optional| Allows you to execute commands and scripts inside a custom docker container| +| Input variables| Refer the [Input Variable table](./#input-variable-table) below | Optional|

These variables provide dynamic values to the script and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| +| Trigger/Skip condition| TF\_ENV == "prod"| Optional| Execute or skip the task based on the condition provided.| +| Container image| hashicorp/terraform:1.5.0| Required| Select an image from the drop-down list or enter a custom value in the format `:`| +| Mount custom code| Refer below| Optional|

Enable to mount the custom code in the container. Enter the script in the box below.

  • **Mount above code at** (required): Path where the code should be mounted
| +| Command| sh| Optional|Mention commands to execute inside the container| +| Args| /run.sh| Optional| The arguments to be passed to the command mentioned in the command field| +| Port mapping| No| Optional| The port number on which the container listens. The port number exposes the container to outside services.| +| Mount code to container| yes| Optional| Mounts the source code (configured git repository) inside the container. Default is "No". If set to "Yes", enter the path where the source should be mounted inside the container.| +| Mount directory from host |No| Optional| Mount any directory from the host into the container. This can be used to mount code or even output directories.| +| Output directory path|No| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| + +**Input Variable Table** + +| Variable | Type | Value | Description | +| ------------ | ------ | ------------------ | -------------------------------------------- | +| AWS\_REGION | String | us-east-1 | AWS region where the bucket will be created. | +| BUCKET\_NAME | String | my-app-logs-bucket | Name of the S3 bucket to create. | + +* To add a input variable, click **+ Add Variable** next to the `Input Variable`, a new table appear asking you to enter the variable and its required information. + +* You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
+ +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) + +* You can click the slider icon next to each variable name to make it's value required and add a description for it. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) + +* You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) + +**Mount Custom Code** + +{% code title="Custom Script" overflow="wrap" lineNumbers="true" %} +```bash +#!/bin/sh +set -eo pipefail + +# Navigate to your Terraform config +cd /sourcecode/terraform/s3 + +# Initialize & apply without prompts +terraform init -input=false +terraform plan +terraform apply -auto-approve \ + -var="region=us-east-1" \ + -var="bucket_name=$BUCKET_NAME" + +# Capture the bucket name output +echo "S3_BUCKET_NAME=$(terraform output -raw bucket_name)" +``` +{% endcode %} + +In the above script, instead of writing the entire terraform scripts for provisioning the s3 bucket, we have stored the scripts `main.tf` and `variable.tf` in the Github Repository configured as Source code. By enabling `mount code to container`, the source code (configured Git Repository) is now mounted inside the container as well and available at `/sourcecode`. This approach avoids the need to rewrite the same scripts multiple times for each task, thus making the scripts reusable and efficient across multiple jobs. + +**main.tf Script (Stored in Github repository)** + +{% code title="main.tf" overflow="wrap" lineNumbers="true" %} +```bash +provider "aws" { + region = var.region +} + +resource "aws_s3_bucket" "this" { + bucket = var.bucket_name + + tags = var.tags +} + +resource "aws_s3_bucket_versioning" "this" { + bucket = aws_s3_bucket.this.id + + versioning_configuration { + status = var.versioning_enabled ? "Enabled" : "Suspended" + } +} +``` +{% endcode %} + +**variables.tf Script (Stored in Github repository)** + +{% code title="variables.tf" overflow="wrap" lineNumbers="true" %} +```bash +variable "bucket_name" { + description = "The name of the S3 bucket" + type = string +} + +variable "region" { + description = "AWS region to create the S3 bucket in" + type = string +} +``` +{% endcode %} + +After adding this s3 provisioner task, you can add more tasks as well, for example, you can add a task to add a bucket policy or sending a notification to slack or email that s3 bucket is provisioned successfully. + +6. After configuring the tasks, Choose the environment in which you want the job to be executed. +7. Select `Create Pipeline` and a job pipeline will be created. + +After creating the pipeline, you can configure configMaps and Secrets (optional) and environment overrides (Optional) before triggering it. ## Update Job Pipeline You can update the configurations of an existing Job Pipeline except for the pipeline's name. -To update a pipeline, select your job pipeline. -In the **Edit job pipeline** window, edit the required fields and select **Update Pipeline**. +To update your job pipeline -## Delete Job Pipeline +1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -You can only delete a job pipeline in your workflow. +2. Select the job pipeline you wish to update, a edit job pipeline modal window will appear. -To delete a job pipeline, go to **Configurations > Workflow Editor** and select **Delete Pipeline**. +3. Change the required configurations as per your requirements ---- +4. Select **Update Pipeline** to update the pipeline -## Next Steps +## Delete Job Pipeline -* After creating and configuring the job pipeline, the next optional step is to configure ConfigMaps and Secrets for your job. Refer the [ConfigMaps & Secrets](./configmap-secret/README.md) to configure them. +To delete a job pipeline -* Devtron also allows you to configure environment-specific ConfigMaps and Secrets. Refer the [Environment Override](./environment-override-job) section to configure them. +1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -* After creating and configuring the ConfigMaps & Secrets, the next step is to trigger your job pipeline. To trigger your configured job-pipeline refer [Triggering a job pipeline](../triggering-job.md) +2. Select the job pipeline you wish to delete, a edit job pipeline modal window will appear. ---- \ No newline at end of file +3. Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. \ No newline at end of file diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index f5771469e..59dad198e 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -11,6 +11,9 @@ In devtron, jobs can be created by two ways: To create a new **Blank Job** in Devtron, follow these steps: 1. Navigate to **Devtron Dashboard** → **Jobs**. + + ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) + 2. Click **Create** button in the top-right corner and select **Job** from the drop-down list. ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) @@ -47,7 +50,7 @@ To create a new **Clone Job** in Devtron, follow these steps: | **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| | **Select an job to clone** | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) 4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](configuration/), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 6f544716d..98a6e0be5 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -21,7 +21,7 @@ The `About` section allows you to: The left side of the `About` section displays essential information about the job. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-about-left.jpg) The table below captures all the key elements presented in this section, along with their descriptions and whether they can be edited by the user. @@ -38,7 +38,7 @@ The table below captures all the key elements presented in this section, along w ### Readme The right side of the `About` section contains a `README` area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) To add or update the `Readme`: 1. Click the **Edit** button in the Readme section. @@ -47,7 +47,7 @@ To add or update the `Readme`: 4. Preview the content using the `Preview` tab. 5. Click **Save** to update the README. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) {% hint style="info" %} After saving, the system displays the email address of the user who last updated the README, along with the date and time. This information appears in the header of the Readme section, beside the title. @@ -57,7 +57,7 @@ To add or update the `Readme`: The **Catalog** in the **About** section displays information about your job—such as Container port, Environment Variables, Arguments, Resources(CPU and RAM) This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). -![Figure 2d: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/catalog.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) `Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron applications. @@ -67,7 +67,7 @@ When you click the **Edit** icon, a form appears based on the defined schema. As * Arguments * Resources(CPU and RAM) - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) {% hint style= "info" %} The structure and labels in the catalog form are entirely configurable by your platform team via JSON schema in **Catalog Framework**. Field names and sections may vary depending on how the schema was defined by your organization. @@ -75,7 +75,7 @@ The structure and labels in the catalog form are entirely configurable by your p Once saved, this information is displayed in a readable format within the Catalog subsection and is accessible to all users who have permission to view the job. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) --- @@ -90,4 +90,4 @@ The Job Pipelines section provides a detailed view of all job pipelines. For eac | Run in environment | Displays the name of the environment in which job is executed. | | Last Run AT| Displays how long ago the job was last triggered.| - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index 1a7c80353..565972bbe 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -8,11 +8,11 @@ Either you have just executed the job and want to inspect live execution or you 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from `Select Pipeline` dropdown in the top-left corner. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) 2. Select the specific execution you want to inspect. By default the latest execution is selected. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) 3. After selecting the execution, the right section of the page will display the details about that particular execution. @@ -24,17 +24,17 @@ Either you have just executed the job and want to inspect live execution or you |Execution succeeded|Timestamp marking when the job finished successfully.| |Worker status|Final outcome of the worker performing the job (e.g., Succeeded or Failed). On failure, the error message is also shown| - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) Apart from these details, you can also inspect logs, source code, security, and download artifacts (if any). ### Logs -* In logs tab, you can inspect logs for each pipeline stage and task along with thier runtime. +* In logs tab, you can inspect logs for each pipeline stage and task along with their runtime. * Use the `Search log` search bar to search specific keywords or errors. * You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. * Select the fullscreen button in the bottom-right corner to view logs in fullscreen. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) ### Source The source tab shows which commit is from the source code (configured Git repository) is used to execute the job pipeline. @@ -44,18 +44,15 @@ It shows following commit details |:---|:---| |Repository name & icon |The Git repo used with its provider logo| |Commit hash|A short, clickable commit ID (e.g. 443vecd) that opens the full commit details when clicked.| -|Commit message|Commit message used while psuhing that commit| +|Commit message|Commit message used while pushing that commit| |Author|Name & email of the committer.| |Date & time|When that commit was authored| - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) ### Artifacts The Artifacts tab shows all archives or files your job has produced such as backup binaries, reports, log bundles and let you download them for inspection or further use your job has produced. - ### Security -The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. - - \ No newline at end of file +The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. \ No newline at end of file diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index 45d19cc58..b2bb36769 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -6,26 +6,28 @@ To trigger the job-pipeline: 1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) + 2. Select `Select Material` for the job-pipeline you wish to execute, a modal window will open, under `Code-source` tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) 3. Select the commit you want to use in the job execution. You can use the search bar to filter the commits hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-job.jpg) +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) 4. Select the `Parameters` tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) 5. After selecting the commit and configuring runtime inputs, pick the target environment from the `Execute job in` dropdown at the bottom. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) 6. Select `Run Job` to execute your pipeline. - +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source,artifacts)in [run-history](./run-history.md) either by navigating to `Run History` tab or by clicking `details` above the `Select Material` of the specific pipeline. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/click-job-details.jpg) \ No newline at end of file +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/what-is-job.md b/docs/user-guide/jobs/what-is-job.md index c83f2c1f9..dd6fc987f 100644 --- a/docs/user-guide/jobs/what-is-job.md +++ b/docs/user-guide/jobs/what-is-job.md @@ -14,8 +14,6 @@ Jobs can be configured to run as: * **Event-driven tasks**: Triggered by specific events such as commits, pull requests, or tag creation. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) - Devtron Jobs support executing custom tasks or predefined operations using integrated pipeline plugins. These plugins extend job functionality by enabling tasks such as code scanning, image signing, vulnerability patching, container image copying, and external automation through tools like Ansible and Bitbucket Runners. To explore the full list of supported plugins and their configuration options, refer to the [Devtron Plugin Documentation](). To learn how to create a new Job in Devtron, continue to the [Create a new job](./create-a-new-job.md) section. \ No newline at end of file From c2be67081bf1b6386f64ec0ac3c762df171acb85 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Sun, 27 Apr 2025 03:28:32 +0530 Subject: [PATCH 09/33] docs:added images for environment override and fix file naming --- .../{configmap-job => configmap-job.md} | 0 .../{secret-job => secret-job.md} | 1 + .../configurations/environment-override-job | 105 --------------- .../environment-override-job.md | 125 ++++++++++++++++++ .../{source-code-job => source-code-job.md} | 0 5 files changed, 126 insertions(+), 105 deletions(-) rename docs/user-guide/jobs/configurations/configmap-secret/{configmap-job => configmap-job.md} (100%) rename docs/user-guide/jobs/configurations/configmap-secret/{secret-job => secret-job.md} (99%) delete mode 100644 docs/user-guide/jobs/configurations/environment-override-job create mode 100644 docs/user-guide/jobs/configurations/environment-override-job.md rename docs/user-guide/jobs/configurations/{source-code-job => source-code-job.md} (100%) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md similarity index 100% rename from docs/user-guide/jobs/configurations/configmap-secret/configmap-job rename to docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md similarity index 99% rename from docs/user-guide/jobs/configurations/configmap-secret/secret-job rename to docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index 3dc5ffc91..f62fff155 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -66,6 +66,7 @@ Secret objects let you store and manage sensitive information, such as passwords If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) + --- ### Mount Data as Data Volume diff --git a/docs/user-guide/jobs/configurations/environment-override-job b/docs/user-guide/jobs/configurations/environment-override-job deleted file mode 100644 index c43682c5d..000000000 --- a/docs/user-guide/jobs/configurations/environment-override-job +++ /dev/null @@ -1,105 +0,0 @@ -# Environment Overrides - -You can view all environments associated with a job under the **Environment Overrides** section. - - - -The Environment Overrides section allows you to customize the **ConfigMaps**, and **Secrets** for different environments such as development, testing, staging, and production. - -## How it works - -* When you add a job pipeline to an job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. - -* The **Environment Overrides** section lets you customize those ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic. - ---- - -## Environment Configurations Page - -{% hint style="warning" %} -### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above (along with access to the environment and applications) to perform environment override. -{% endhint %} - -1. In your job, go to **Configurations** → **Environment Overrides**. - - - -2. Select an environment whose configurations you wish to modify. - - - -3. You will get the following options (similar to the **ConfigMaps & Secrets** page): - * [ConfigMaps](#override-configmap--secret) - * [Secrets](#override-configmap--secret) - -Let's visit each of the configuration files and see how to override their values for the selected environment. - -## Override ConfigMaps & Secrets - -If you want to configure your ConfigMaps and Secrets at the application-level then you can provide them in [ConfigMaps](../configuration/config-maps-and-secrets/configmaps.md) and [Secrets](../configuration/config-maps-and-secrets/secrets.md), but if you want to have environment-specific ConfigMaps & Secrets, use **Environment Override** to create new environment specific ConfigMaps & Secrets or override existing ConfigMaps & Secrets for specific environments. At the time of execution, devtron will pick environment specific ConfigMaps & Secrets according to the environment in which the job is executed and pass them to your job pods. - -1. Select the ConfigMap or Secret you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. - - - -2. To create Override, select the **No Override** tab and click the **Create Override** button. - - - -4. In the same tab (now labelled as **Override**), you can choose any one mode for changing the configuration values: - * **YAML** - This mode has a YAML based editor intended for advanced users. - * **GUI** - This mode has a user-friendly interface intended for beginner to advanced users. - -{% hint style="info" %} -### Note -Users who are not super-admins will land on GUI mode when they override; whereas super-admins will land on YAML mode. This is just the default behavior, users can still toggle the mode if needed. -{% endhint %} - - - -5. You can override the values using [Replace](#using-replace-strategy) merge strategy: - -### Replace Strategy - -* The entire configuration is replaced with your new environment-specific settings. -* The replaced template will no longer depend or inherit from base configuration anymore. -* Best for a complete override. - -| Field | Inherited Configuration | Input (with Replace) | Final Configuration | -|-----------|--------------------|------------------------------|---------------------| -| cpu | 100m | 500m | 500m | -| memory | 256Mi | 512Mi | 512Mi | -| replicas | 2 | *(Not specified)* | *(Removed)* | -| logLevel | "info" | *(Not specified)* | *(Removed)* | -| timeout | (Not specified) | 30s | 30s (Added) | - -Refer the tutorials below to know the process in YAML mode. In case you wish to use GUI mode, skip to [Overriding in GUI mode](#using-gui-mode-for-overriding). - -{% embed url="https://www.youtube.com/watch?v=lSoj8wwOej0" %} - ---- - -## Using GUI Mode for Overriding - -The above sections, i.e., [Override ConfigMap & Secret](#override-configmap--secret) explained the process of environment override using YAML. - -Refer the below tutorial videos to know the process of overriding them using GUI. - -### Override ConfigMaps and Secrets using GUI - -{% embed url="https://www.youtube.com/watch?v=UOTKLVuSkDg" %} - ---- - -## Delete Override - -This action will discard the current overrides and the base configuration file (in this example, deployment template) will be restored back for the environment. - -1. On the right side, click the kebab menu (3 vertical dots). -2. Click **Delete Override**. -3. Confirm the deletion in the dialogbox. - - ---- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md new file mode 100644 index 000000000..bda4e10d7 --- /dev/null +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -0,0 +1,125 @@ +# Environment Overrides + +The Environment Overrides section allows you to customize the **ConfigMaps**, and **Secrets** for different environments such as development, testing, staging, and production and it even allows to create additional **ConfigMaps**, and **Secrets** (if required) for different environments + +## How it works + +* When you add a job pipeline to an job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. + +* The **Environment Overrides** section lets you customize those ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic. + +* The **Environment Overrides** section also lets you create additional ConfigMaps and Secrets per environment without affecting those of other environments. For example, a testing environment may require additional ConfigMaps and Secrets for temporary or test-specific configurations, while a production environment uses only the base ConfigMaps and Secrets needed for running the application. + +--- + +## Environment Configurations Page + +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above (along with access to the environment and applications) to perform environment override. +{% endhint %} + +1. In your job, go to **Configurations** → **Environment Overrides**. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) + +2. Click `Add Environment` and select an environment from the dropdown for which you want your configurations to be modified. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) + +3. The environment will be added under **Environment Override**, if you wish you can add more environments by clicking `Add Environment`. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) + +4. Click on the environment you have added under **Environment Override**, you will get the following options (similar to the **ConfigMaps & Secrets** page): + + * **ConfigMaps** + + * **Secrets** + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) + +5. You can now do one of the following: + + * Override the existing **ConfigMap & Secrets** which are bieng inherited from the base configurations specific to the selected environment. + + * Create additional **ConfigMap & Secrets** specific to the selected environment. + + Let's see how to override the values of ConfigMaps & Secrets for the selected environment. + + ## Override ConfigMaps & Secrets + + If you want to configure your ConfigMaps and Secrets at the application-level then you can provide them in [ConfigMaps](../configuration/config-maps-and-secrets/configmaps.md) and [Secrets](../configuration/config-maps-and-secrets/secrets.md), but if you want to have environment-specific ConfigMaps & Secrets, use **Environment Override** to create new environment specific ConfigMaps & Secrets or override existing ConfigMaps & Secrets for specific environments. At the time of execution, devtron will pick environment specific ConfigMaps & Secrets according to the environment in which the job is executed and pass them to your job pods. + + 1. Under the selected environemnt, select the ConfigMap or Secret you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) + + 2. To create Override, select the **No Override** tab and click the **Create Override** button. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) + + 3. In the same tab (now labelled as **Override**), you can now change the configuration of your ConfigMap or Secret that will be specific to the selected environment. + + **Note** Except `Name` cannot be changed for ConfigMaps & Secrets that are inherited from the base configuration. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) + + 4. Override the data values using [Replace](#using-replace-strategy) merge strategy. + + ### Replace Strategy + + * The entire configuration is replaced with your new environment-specific settings. + * The replaced template will no longer depend or inherit from base configuration anymore. + * Best for a complete override. + + | Field | Inherited Configuration | Input (with Replace) | Final Configuration | + |-----------|--------------------|------------------------------|---------------------| + | cpu | 100m | 500m | 500m | + | memory | 256Mi | 512Mi | 512Mi | + | replicas | 2 | *(Not specified)* | *(Removed)* | + | logLevel | "info" | *(Not specified)* | *(Removed)* | + | timeout | (Not specified) | 30s | 30s (Added) | + + > To know how to configure ConfigMaps & Secrets refer to the following sections:
  • [ConfigMaps](./config-maps-and-secrets/configmaps.md)
  • [Secrets](./config-maps-and-secrets/secrets.md)
+ + +## Create Additional ConfigMaps & Secrets + + To create additional ConfigMaps & Secrets, follow the given steps + + 1. Under the selected environemnt, click the `+` button next to ConfigMap or Secret. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) + + 2. A configuration tab will open (which was previously named override) to add a new ConfigMap or Secret. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) + + Follow the below guide to create a ConfigMap or Secret: + + * [Add ConfigMaps](./config-maps-and-secrets/configmaps.md#add-configmap) + + * [Add Secrets](./config-maps-and-secrets/secrets.md#add-secret) + + 3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under it's name, in the left-section under ConfigMap or Secret respectively. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) + +--- + +## Delete Override + +This action will discard the current overrides and the base configuration file (in this example, deployment template) will be restored back for the environment. + +1. On the right side, click the kebab menu (3 vertical dots). + +2. Click **Delete Override**. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) + +3. Confirm the deletion in the dialogbox. + +![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) + +--- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/source-code-job b/docs/user-guide/jobs/configurations/source-code-job.md similarity index 100% rename from docs/user-guide/jobs/configurations/source-code-job rename to docs/user-guide/jobs/configurations/source-code-job.md From 61e1163e7948d7cd253eb291f04faba2976576e6 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Sun, 27 Apr 2025 18:37:32 +0530 Subject: [PATCH 10/33] docs: added figure captions --- .../configmap-secret/configmap-job.md | 36 ++++++------ .../configmap-secret/secret-job.md | 40 ++++++------- .../environment-override-job.md | 32 +++++------ .../jobs/configurations/source-code-job.md | 18 +++--- .../configurations/workflow-editor-job.md | 52 ++++++++++------- docs/user-guide/jobs/create-job.md | 56 ++++++++++++++++--- docs/user-guide/jobs/overview-job.md | 16 +++--- docs/user-guide/jobs/run-history-job.md | 16 ++++-- docs/user-guide/jobs/triggering-job.md | 18 +++--- 9 files changed, 169 insertions(+), 115 deletions(-) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index cb1242f3a..5a1518004 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -6,33 +6,33 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl 1. Go to the **Configurations** → **ConfigMaps & Secrets**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap.jpg) +![Figure 1a: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap.jpg) 2. Click the **+** button next to **ConfigMaps**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-add.jpg) +![Figure 1b: Create ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-add.jpg) 3. Enter a name for the ConfigMap (Once defined, name cannot be changed later). In case, you are using a External Kubernetes ConfigMap, name should be exactly same as the as the name given using `kubectl create configmap ` command. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-name.jpg) +![Figure 1c: Enter ConfigMap name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-name.jpg) 4. **Data Type** - Choose between the following data types: + ![Figure 1d: ConfigMap data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) + * [Kubernetes ConfigMap](#kubernetes-configmap): Select the Data Type as Kubernetes ConfigMap, if you wish to create and use the ConfigMap using Devtron. * [Kubernetes External ConfigMap](#kubernetes-external-configmap): Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and wants to use that in Devtron. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) - 5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in following ways

**Mount data as** - Select how you want to mount the ConfigMap: * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Environment Variables in pods using ConfigMap. * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) + ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) ### Mount data as environment variables @@ -44,29 +44,29 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-gui.jpg) + ![Figure 2a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-yaml.jpg) + ![Figure 2b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-yaml.jpg) #### For Kubernetes External ConfigMap If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-env.jpg) + ![Figure 3: Kubernetes External ConfigMap for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-env.jpg) ### Mount data as Data Volume This option allows you to create a ConfigMap by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol.jpg) + ![Figure 4a: Mount Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol.jpg) ### Volume Mount Path Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-mount-path.jpg) + ![Figure 4b: Volume Mount Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-mount-path.jpg) ### Set Sub Path @@ -76,7 +76,7 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl * If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-subpath.jpg) + ![Figure 4b: Set Sub Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-subpath.jpg) {% hint style="info" %} ### Note @@ -88,7 +88,7 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl The **Set File Permission** option applies permissions at the ConfigMap level, not to individual keys within the ConfigMap. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-file-per.jpg) + ![Figure 4c: Set File Permission](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-file-per.jpg) The 3-digit numeric value represents the permission settings for the file: @@ -119,17 +119,17 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-gui.jpg) + ![Figure 5a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-yaml.jpg) + ![Figure 5b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-yaml.jpg) #### For Kubernetes External ConfigMap If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-data-vol.jpg) + ![Figure 6a: Kubernetes External ConfigMap for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-data-vol.jpg) 6. Select **Save** to create a ConfigMap. @@ -143,7 +143,7 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl 3. Click **Save Changes**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-update.jpg) +![Figure 7a: Update ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-update.jpg) {% hint style="warning" %} ### Note @@ -161,6 +161,6 @@ You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, i 3. Click **Delete**. 4. Confirm the deletion in the dialog box. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-delete.jpg) +![Figure 8a: Delete ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-delete.jpg) --- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index f62fff155..1e0700a4a 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -8,21 +8,21 @@ Secret objects let you store and manage sensitive information, such as passwords 1. Go to the **Configurations** → **Base Configurations**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret.jpg) +![Figure 1a: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret.jpg) 2. Click the **+** button next to **Secrets**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-add.jpg) +![Figure 1b: Create Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-add.jpg) 3. Enter a name for the Secret (Once defined, name cannot be changed later). In case, you are mounting Existing Kubernetes Secret, name should be exactly same as the as the name given using `kubectl create secret ` command. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-name.jpg) +![Figure 1c: Enter secret name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-name.jpg) 4. **Data Type** - Choose between the following data types: - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) + ![Figure 1d: Secret data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) * [Kubernetes Secret](#kubernetes-secret): Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. @@ -41,7 +41,7 @@ Secret objects let you store and manage sensitive information, such as passwords * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-data.jpg) + ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-data.jpg) ### Mount data as environment variables @@ -53,11 +53,11 @@ Secret objects let you store and manage sensitive information, such as passwords * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-gui.jpg) + ![Figure 2a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-yaml.jpg) + ![Figure 2b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-yaml.jpg) ### Mount Existing Kubernetes Secrets @@ -65,7 +65,7 @@ Secret objects let you store and manage sensitive information, such as passwords If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) + ![Figure 3a: Mount Existing Kubernetes Secrets for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) --- @@ -74,19 +74,19 @@ Secret objects let you store and manage sensitive information, such as passwords This option allows you to create a Secret by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol.jpg) +![Figure 4a: Mount Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol.jpg) ### Volume Mount Path Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-mount-path.jpg) +![Figure 4b: Volume Mount Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-mount-path.jpg) ### Set Sub Path When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-sub-path.jpg) +![Figure 4b: Set Sub Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-sub-path.jpg) * If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. @@ -102,7 +102,7 @@ In case of External Secrets, manually specify the keys which should be mounted a The **Set File Permission** option applies permissions at the Secret level, not to its individual secret keys. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-file-per.jpg) +![Figure 4c: Set File Permission](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-file-per.jpg) The 3-digit numeric value represents the permission settings for the file: @@ -132,17 +132,17 @@ Enter data in: * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-gui.jpg) + ![Figure 5a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-yaml.jpg) + ![Figure 5b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-yaml.jpg) #### For Mount Existing Kubernetes Secrets This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-data-vol.jpg) +![Figure 6a: Mount Existing Kubernetes Secrets for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-data-vol.jpg) --- @@ -152,7 +152,7 @@ This option allows you to mount an existing Kubernetes Secret in your job pods a 2. Modify its values. 3. Click **Save Changes**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-update.jpg) +![Figure 7a: Update secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-update.jpg) {% hint style="warning" %} ### Note @@ -170,7 +170,7 @@ You may delete a Secret if not in use anymore. Once a Secret is deleted, it will 3. Click **Delete**. 4. Confirm the deletion in the dialogbox. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) +![Figure 8a: Delete secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) --- @@ -197,7 +197,7 @@ External Secrets Operator (ESO) is a Kubernetes component that integrates with e 2. Search for the `external-secrets` chart. - ![Figure 10: Searching External Secrets Chart](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/external-secret.jpg) + ![Figure 9a: Searching External Secrets Chart](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/external-secret.jpg) {% hint style="info" %} ### What if external-secrets chart is not found? @@ -206,8 +206,8 @@ Manually add the following chart repository URL in Devtron: `https://charts.exte 3. Give a name to the helm app that will be created from the chart. Also enter the project and environment where you wish to install the chart. - ![Figure 11: Adding Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/ext-secret-fields.jpg) + ![Figure 9b: Adding Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/ext-secret-fields.jpg) 4. Click **Deploy Chart**. -After Deploying the Chart, refer the [ESO Documentation]() to setup ESO for different providers. +After Deploying the Chart, refer the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index bda4e10d7..c74eee194 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -21,15 +21,15 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce 1. In your job, go to **Configurations** → **Environment Overrides**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) +![Figure 1a: Environment Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) 2. Click `Add Environment` and select an environment from the dropdown for which you want your configurations to be modified. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) +![Figure 1b: Add Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) 3. The environment will be added under **Environment Override**, if you wish you can add more environments by clicking `Add Environment`. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) +![Figure 1c: Select Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) 4. Click on the environment you have added under **Environment Override**, you will get the following options (similar to the **ConfigMaps & Secrets** page): @@ -37,11 +37,11 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce * **Secrets** -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) +![Figure 1d: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) 5. You can now do one of the following: - * Override the existing **ConfigMap & Secrets** which are bieng inherited from the base configurations specific to the selected environment. + * Override the existing **ConfigMap & Secrets** which are being inherited from the base configurations specific to the selected environment. * Create additional **ConfigMap & Secrets** specific to the selected environment. @@ -51,19 +51,19 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce If you want to configure your ConfigMaps and Secrets at the application-level then you can provide them in [ConfigMaps](../configuration/config-maps-and-secrets/configmaps.md) and [Secrets](../configuration/config-maps-and-secrets/secrets.md), but if you want to have environment-specific ConfigMaps & Secrets, use **Environment Override** to create new environment specific ConfigMaps & Secrets or override existing ConfigMaps & Secrets for specific environments. At the time of execution, devtron will pick environment specific ConfigMaps & Secrets according to the environment in which the job is executed and pass them to your job pods. - 1. Under the selected environemnt, select the ConfigMap or Secret you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. + 1. Under the selected environment, select the ConfigMap or Secret you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) +![Figure 2a: Select ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) 2. To create Override, select the **No Override** tab and click the **Create Override** button. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) +![Figure 2b: Create Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) 3. In the same tab (now labelled as **Override**), you can now change the configuration of your ConfigMap or Secret that will be specific to the selected environment. **Note** Except `Name` cannot be changed for ConfigMaps & Secrets that are inherited from the base configuration. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) +![Figure 2c: Override ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) 4. Override the data values using [Replace](#using-replace-strategy) merge strategy. @@ -88,13 +88,13 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce To create additional ConfigMaps & Secrets, follow the given steps - 1. Under the selected environemnt, click the `+` button next to ConfigMap or Secret. + 1. Under the selected environment, click the `+` button next to ConfigMap or Secret. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) +![Figure 3a: Add ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) 2. A configuration tab will open (which was previously named override) to add a new ConfigMap or Secret. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) +![Figure 3b: Configure ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) Follow the below guide to create a ConfigMap or Secret: @@ -104,7 +104,7 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce 3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under it's name, in the left-section under ConfigMap or Secret respectively. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) +![Figure 3c: ConfigMap or Secret added](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) --- @@ -116,10 +116,10 @@ This action will discard the current overrides and the base configuration file ( 2. Click **Delete Override**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) +![Figure 4a: Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) -3. Confirm the deletion in the dialogbox. +3. Confirm the deletion in the dialog box. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) +![Figure 4b: Confirm Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) --- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index f74bce1c3..03544254e 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -14,22 +14,22 @@ To configure the Source Code, follow these steps: 2. Select the **Source Code** tab from the left sidebar. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) +![Figure 1a: Select source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) 3. Under Add Git Repository, select the Git Account from the dropdown menu. You can also select GitHub Public from the same dropdown to configure a public repository that does not require authentication. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) +![Figure 1b: Add git account](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) 4. Enter the Repository URL in the Git Repo URL field, corresponding to the selected Git account.
If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) +![Figure 1c: Add git repository](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) 5. Configure the [Additional Options](#configure-additional-options-optional) for the job as per your requirements. 6. Click on the **Save** button to save the changes. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) +![Figure 1d: Save source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) ### Configure Additional Options (optional) @@ -45,7 +45,7 @@ To define the exclusion or inclusion rules, follow these steps: 1. Check the **Exclude specific file/folder in this repo** checkbox. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) +![Figure 2a: Exclude specific file/folder](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) 2. Enter the exclusion or inclusion rules in the **Enter file or folder paths to be included or excluded** field. @@ -62,11 +62,11 @@ To define the exclusion or inclusion rules, follow these steps: You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. -![Figure : 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) +![Figure 2b: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. -![Figure : Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) +![Figure 2c: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) #### Set checkout path @@ -85,7 +85,7 @@ To set the checkout path, follow these steps: |`./src`|Checkout the repository to the src folder| |`./src/app`|Checkout the repository to the app folder inside the src folder| -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) +![Figure 3a: Checkout path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) #### Pull submodules recursively @@ -93,4 +93,4 @@ This checkbox is used for pulling [git submodules](https://git-scm.com/book/en/v To pull the submodules recursively, check the **Pull submodules recursively** checkbox. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) \ No newline at end of file +![Figure 4a: Pull submodules recursively](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 0a2468811..bf543c2f0 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -7,32 +7,32 @@ To create and configure the Job Pipeline 1. Navigate to the **Workflow Editor** tab in the left sidebar of the Job **Configuration** page. Alternatively, you can go to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) +![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) 2. Click **+ Job Pipeline** to create a new Job workflow, a pop-up **Create job workflow** will appear asking you to enter a name for your Job workflow. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) +![Figure 1b: Add job workflow](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) 3. Enter the name for your Job workflow and click on **Create Workflow** button, a new Job workflow will be created, in which you can add a job pipeline. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) +![Figure 1c: Enter job workflow name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) 4. To add a job pipeline to your workflow, click anywhere in the `Add job pipeline to this workflow` area under the job workflow name. This opens the **Create job pipeline** Window in which you can create and configure your job. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) +![Figure 1d: Job workflow created](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) +![Figure 1e: Create job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) ## Create Job Pipeline In **Create job pipeline** window, you can create and configure job pipelines.\ -It includes 2 stages i.e., [**Basic Configurations**](./#basic-configurations) and [**Tasks to be executed**](./#tasks-to-be-executed) +It includes 2 stages i.e., [**Basic Configurations**](#basic-configurations) and [**Tasks to be executed**](#tasks-to-be-executed) ### Basic Configurations This stage allows you to define primary configurations such as Pipeline name, Source Type, Branch Name, and how job should be triggered. Refer the following table to configure each field. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-basic-config.jpg) +![Figure 2a: Configure job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-basic-config.jpg) | Field Name|Description| | :--- |:--- | @@ -54,11 +54,11 @@ To create a task: 2. Click **Add Task** to add a task in your job pipeline. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) +![Figure 3a: Add task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) 3. A new task will be added (in the left side of the Create job pipeline window),you can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) +![Figure 3b: Type of tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) #### Create Task using preset plugins @@ -74,12 +74,12 @@ To create a task using the GKE plugin follow the below steps: 2. Click **+Add Task** from the left side panel. 3. Search for `GKE Provisioner` in the `Search Plugin` Search bar and select `GKE Provisioner` from the list of plugins. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) +![Figure 4a: Search 'Gke Provisioner' plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) * The right-side panel will display the fields specific to the GKE Provisioner plugin which are required to be configured. * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by-default), along with it's logo. You can change the task's name using the `Task name` field but plugin's logo will remain indicating that it is a preset plugin. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) +![Figure 4b: Gke provisioner plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) 4. Refer the [GKE Provisioner](/docs/user-guide/plugins/gke-provisioner.md) documentation to configure the `GKE Provisioner` fields with appropriate values. @@ -91,7 +91,7 @@ To create a task using the GKE plugin follow the below steps: In devtron you can also define a task using custom script to meet specific requirements. To create a task a task using a custom script follow the below steps: -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-custom-task.jpg) +![Figure 5a: Execute custom task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-custom-task.jpg) 1. After Configuring the basic configurations, select **Tasks to be executed** Tab. @@ -142,15 +142,15 @@ Let's take an example of a **Shell task** for a job that allows you to back up a * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
-![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) +![Figure 6a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) * You can click the slider icon next to each variable name to make it's value required and add a description for it. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) +![Figure 6b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) * You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) +![Figure 6b: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) **Script:** @@ -247,15 +247,15 @@ Let's take an example of a **Container Image Task** for a job that provision an * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
-![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) +![Figure 7a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) * You can click the slider icon next to each variable name to make it's value required and add a description for it. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) +![Figure 7b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) * You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) +![Figure 7c: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) **Mount Custom Code** @@ -337,9 +337,11 @@ To update your job pipeline 2. Select the job pipeline you wish to update, a edit job pipeline modal window will appear. -3. Change the required configurations as per your requirements +![Figure 7a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-select.jpg) -4. Select **Update Pipeline** to update the pipeline +3. Change the required configurations as per your requirements and select **Update Pipeline** to update the pipeline + +![Figure 7b: Update job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-pipeline.jpg) ## Delete Job Pipeline @@ -349,4 +351,12 @@ To delete a job pipeline 2. Select the job pipeline you wish to delete, a edit job pipeline modal window will appear. -3. Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. \ No newline at end of file +![Figure 8a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) + +3. Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. + +![Figure 8b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) + +4. A pop-up window will appear asking you to confirm the **Delete Pipeline** action. + +![Figure 8c: Confirm Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 59dad198e..42e186101 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -12,11 +12,11 @@ To create a new **Blank Job** in Devtron, follow these steps: 1. Navigate to **Devtron Dashboard** → **Jobs**. - ![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) + ![Figure 1a: Job's page](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) 2. Click **Create** button in the top-right corner and select **Job** from the drop-down list. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) +![Figure 1b: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) 3. The **Create Job** page opens. From the left panel, select **Blank job**, then enter the required details as listed in the table below. @@ -25,11 +25,13 @@ To create a new **Blank Job** in Devtron, follow these steps: | **Project**| User-defined name for the job in Devtron.| | **Job Name**| User-defined name for the job in Devtron.| | **Description** | Enter the description of a job.| -| **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| +| **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)
| + +![Figure 1b: Blank job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) +4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](/docs/user-guide/jobs/configurations/README.md)to continue setting up the job pipeline. -4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](configuration/)to continue setting up the job pipeline. +--- ## Create a Clone Job @@ -38,7 +40,7 @@ To create a new **Clone Job** in Devtron, follow these steps: 1. From the **Devtron Dashboard** → **Jobs**. 2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) +![Figure 2a: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) 3. The **Create Job** page opens. From the left panel, select **Clone Job**, then enter the required details as listed in the table below. @@ -50,8 +52,44 @@ To create a new **Clone Job** in Devtron, follow these steps: | **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| | **Select an job to clone** | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) +![Figure 2b: Clone job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) + +4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](/docs/user-guide/jobs/configurations/README.md), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. + +--- + +After creating a job, the next step is to configure the job, refer the [Configurations](/docs/user-guide/jobs/configurations/README.md) section to configure the job. + +--- + +## Delete Job + +To delete a job: + +1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. + +2. To delete the job, you have to first delete any configured pipelines in the jobs. + + ### Delete job pipelines + + * Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. + + * Select the job pipeline you wish to delete, a edit job pipeline modal window will appear. + +![Figure 3a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) + + * Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. + +![Figure 3b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) + + * A pop-up window will appear asking you to confirm the **Delete Pipeline** action. + +![Figure 3c: Confirm delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) + +3. Select **Delete Job** to delete the job. + +![Figure 4a: Delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job.jpg) -4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](configuration/), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. +4. A pop-up window will appear asking you to confirm the **Delete Job** action. -After creating a job, the next step is to configure the job, refer the [Configurations](./configuration/README.md) section to configure the job. \ No newline at end of file +![Figure 4b: Confirm delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 98a6e0be5..61eda0d36 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -2,7 +2,7 @@ The Overview page provides a centralized view of a job’s details within Devtron. It allows users to quickly access information about the job, manage tags, view job pipelines — all in a single, organized interface. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) +![Figure 1a: Job's overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) The `Overview` page contains three main sections: * [`About`](#about): Contains job's metadata such as name, description, project, project, creator, and it also includes options to manage tags. @@ -21,7 +21,7 @@ The `About` section allows you to: The left side of the `About` section displays essential information about the job. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-about-left.jpg) +![Figure 1b: Job's basic info](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-about-left.jpg) The table below captures all the key elements presented in this section, along with their descriptions and whether they can be edited by the user. @@ -38,7 +38,7 @@ The table below captures all the key elements presented in this section, along w ### Readme The right side of the `About` section contains a `README` area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) +![Figure 2a: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) To add or update the `Readme`: 1. Click the **Edit** button in the Readme section. @@ -47,7 +47,7 @@ To add or update the `Readme`: 4. Preview the content using the `Preview` tab. 5. Click **Save** to update the README. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) +![Figure 2b: Edit Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) {% hint style="info" %} After saving, the system displays the email address of the user who last updated the README, along with the date and time. This information appears in the header of the Readme section, beside the title. @@ -57,7 +57,7 @@ To add or update the `Readme`: The **Catalog** in the **About** section displays information about your job—such as Container port, Environment Variables, Arguments, Resources(CPU and RAM) This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) +![Figure 3a: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) `Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron applications. @@ -67,7 +67,7 @@ When you click the **Edit** icon, a form appears based on the defined schema. As * Arguments * Resources(CPU and RAM) -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) +![Figure 3b: Edit Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) {% hint style= "info" %} The structure and labels in the catalog form are entirely configurable by your platform team via JSON schema in **Catalog Framework**. Field names and sections may vary depending on how the schema was defined by your organization. @@ -75,7 +75,7 @@ The structure and labels in the catalog form are entirely configurable by your p Once saved, this information is displayed in a readable format within the Catalog subsection and is accessible to all users who have permission to view the job. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) +![Figure 3c: Catalog overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) --- @@ -90,4 +90,4 @@ The Job Pipelines section provides a detailed view of all job pipelines. For eac | Run in environment | Displays the name of the environment in which job is executed. | | Last Run AT| Displays how long ago the job was last triggered.| -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) +![Figure 4: Job Pipelines](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index 565972bbe..0d73ca439 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -8,11 +8,11 @@ Either you have just executed the job and want to inspect live execution or you 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from `Select Pipeline` dropdown in the top-left corner. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) +![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) 2. Select the specific execution you want to inspect. By default the latest execution is selected. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) +![Figure 1b: Select specific execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) 3. After selecting the execution, the right section of the page will display the details about that particular execution. @@ -24,7 +24,7 @@ Either you have just executed the job and want to inspect live execution or you |Execution succeeded|Timestamp marking when the job finished successfully.| |Worker status|Final outcome of the worker performing the job (e.g., Succeeded or Failed). On failure, the error message is also shown| -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) +![Figure 1c: Execution's details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) Apart from these details, you can also inspect logs, source code, security, and download artifacts (if any). @@ -34,7 +34,7 @@ Apart from these details, you can also inspect logs, source code, security, and * You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. * Select the fullscreen button in the bottom-right corner to view logs in fullscreen. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) +![Figure 2a: Logs](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) ### Source The source tab shows which commit is from the source code (configured Git repository) is used to execute the job pipeline. @@ -48,11 +48,15 @@ It shows following commit details |Author|Name & email of the committer.| |Date & time|When that commit was authored| -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) +![Figure 2b: Source](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) ### Artifacts The Artifacts tab shows all archives or files your job has produced such as backup binaries, reports, log bundles and let you download them for inspection or further use your job has produced. ### Security -The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. \ No newline at end of file +The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. + +--- + +After inspecting run history you can also setup the [Job Overview](/docs/user-guide/jobs/overview-job.md) so that others can easily use the job in future. \ No newline at end of file diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index b2bb36769..52415add7 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -6,28 +6,30 @@ To trigger the job-pipeline: 1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) +![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) 2. Select `Select Material` for the job-pipeline you wish to execute, a modal window will open, under `Code-source` tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) +![Figure 1b: Select material for specific pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) 3. Select the commit you want to use in the job execution. You can use the search bar to filter the commits hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) +![Figure 1c: Select commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) 4. Select the `Parameters` tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) +![Figure 1d: Configure runtime parameters](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) -5. After selecting the commit and configuring runtime inputs, pick the target environment from the `Execute job in` dropdown at the bottom. +5. After selecting the commit and configuring runtime parameters, pick the target environment from the `Execute job in` dropdown at the bottom. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) +![Figure 1e: Select environment for job's execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) 6. Select `Run Job` to execute your pipeline. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) +![Figure 1f: Run job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) + +--- After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source,artifacts)in [run-history](./run-history.md) either by navigating to `Run History` tab or by clicking `details` above the `Select Material` of the specific pipeline. -![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) \ No newline at end of file +![Figure 2: Job status](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) \ No newline at end of file From 5dcce678ec1fc874a3137c5fa25d84036206dc86 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Sun, 27 Apr 2025 23:18:38 +0530 Subject: [PATCH 11/33] fixes broken links --- docs/user-guide/jobs/README.md | 16 +- .../configmap-secret/configmap-job.md | 12 +- .../configmap-secret/secret-job.md | 21 +-- .../environment-override-job.md | 19 +- .../jobs/configurations/source-code-job.md | 40 +++-- .../configurations/workflow-editor-job.md | 164 ++++++++++-------- docs/user-guide/jobs/create-job.md | 12 +- docs/user-guide/jobs/overview-job.md | 19 +- docs/user-guide/jobs/run-history-job.md | 4 +- docs/user-guide/jobs/triggering-job.md | 10 +- docs/user-guide/jobs/what-is-job.md | 4 +- 11 files changed, 173 insertions(+), 148 deletions(-) diff --git a/docs/user-guide/jobs/README.md b/docs/user-guide/jobs/README.md index d3430111d..c721e97e1 100644 --- a/docs/user-guide/jobs/README.md +++ b/docs/user-guide/jobs/README.md @@ -9,22 +9,22 @@ To learn more about how Jobs work, see the below sections * [Creating a Job](./create-job.md) -* [Configurations](./configuration-job.md) +* [Configurations](./configurations/README.md) - * [Source Code](./configuration/source-code.md) + * [Source Code](./configurations/source-code-job.md) - * [Workflow editor](./configuration/workflow-editor.md) + * [Workflow editor](./configurations/workflow-editor-job.md) - * [ConfigMaps & Secrets](./configuration/config-maps-and-secrets/README.md) + * [ConfigMaps & Secrets](./configurations/configmap-secret/README.md) - * [ConfigMaps](./configuration/config-maps-and-secrets/configmaps.md) + * [ConfigMaps](./configurations/configmap-secret/configmap-job.md) - * [Secrets](./configuration/config-maps-and-secrets/secrets.md) + * [Secrets](./configurations/configmap-secret/secret-job.md) - * [Environments Override](./configuration/environment-overrides.md) + * [Environments Override](./configurations/environment-override-job.md) * [Trigger Job ](./triggering-job.md) -* [Run History](./run-history.md) +* [Run History](./run-history-job.md) * [Job Overview](./overview-job.md) \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index 5a1518004..37c361b3a 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -2,6 +2,8 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variables or mounted files. Unlike secrets, ConfigMaps are meant for non-sensitive data. Moreover, you can update configurations without modifying or rebuilding your container images, thus making the deployments more efficient. +--- + ## Add ConfigMap 1. Go to the **Configurations** → **ConfigMaps & Secrets**. @@ -20,17 +22,17 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl 4. **Data Type** - Choose between the following data types: - ![Figure 1d: ConfigMap data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) + * **Kubernetes ConfigMap**: Select the Data Type as Kubernetes ConfigMap, if you wish to create and use the ConfigMap using Devtron. - * [Kubernetes ConfigMap](#kubernetes-configmap): Select the Data Type as Kubernetes ConfigMap, if you wish to create and use the ConfigMap using Devtron. + * **Kubernetes External ConfigMap**: Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and wants to use that in Devtron. - * [Kubernetes External ConfigMap](#kubernetes-external-configmap): Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and wants to use that in Devtron. + ![Figure 1d: ConfigMap data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) 5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in following ways

**Mount data as** - Select how you want to mount the ConfigMap: - * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Environment Variables in pods using ConfigMap. + * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Environment Variables in pods using ConfigMap. - * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. + * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index 1e0700a4a..6fc19423f 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -4,6 +4,8 @@ Secrets and ConfigMaps are both used to store configurations but there is one ma Secret objects let you store and manage sensitive information, such as passwords, authentication tokens, and ssh keys. Embedding this information in secrets is safer and more flexible than putting it verbatim in a Pod definition or in a container image. +--- + ## Add Secret 1. Go to the **Configurations** → **Base Configurations**. @@ -22,17 +24,16 @@ Secret objects let you store and manage sensitive information, such as passwords 4. **Data Type** - Choose between the following data types: - ![Figure 1d: Secret data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) + * **Kubernetes Secret**: Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. -* [Kubernetes Secret](#kubernetes-secret): Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. + * **Mount Existing Kubernetes Secret**: Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and wants to use that in Devtron. -* [Mount Existing Kubernetes Secret](#mount-existing-kubernetes-secrets): Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and wants to use that in Devtron. - -* [External Secret Operator (ESO)](#external-secret-operator-eso): External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. + * **External Secret Operator (ESO)**: External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. -> `external-secrets` helm chart should be installed before setting up ESO, otherwise the External Secret Operator (ESO) will not appear. Refer the [External Secret Operator (ESO)](#external-secret-operator-eso) section to setup ESO + > `external-secrets` helm chart should be installed before setting up ESO, otherwise the External Secret Operator (ESO) will not appear. Refer the [External Secret Operator (ESO)](#external-secret-operator-eso) section to setup ESO + +![Figure 1d: Secret data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) -
**Note**: Devtron automatically converts secrets from various data types to Kubernetes Secrets. Regardless of the original data type, once the conversion is complete, the Pods can access the secrets in the same way as native Kubernetes Secrets. 5. After selecting the data type, you can choose how to mount the data of your Secret. Devtron allows you to mount Secret data in following ways

**Mount data as** - Select how you want to mount the Secret: @@ -49,7 +50,7 @@ Secret objects let you store and manage sensitive information, such as passwords #### For Kubernetes Secret - If you have selected Data type as `Kubernetes Secret` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: + If you have selected Data type as `Kubernetes Secret` and mount data as `Environment Variable` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. @@ -121,7 +122,7 @@ For example, **755** means: * Group can read and execute (5), * Others can read and execute (5). - ### Data +### Data #### For Kubernetes Secret If you have selected Data type as `Kubernetes Secret` and mount data as `Data Volume` then, you also need to enter the required data (key-value pairs) in the **Data** field. @@ -210,4 +211,4 @@ Manually add the following chart repository URL in Devtron: `https://charts.exte 4. Click **Deploy Chart**. -After Deploying the Chart, refer the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. +After Deploying the Chart, refer the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index c74eee194..8aa74d0b9 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -23,11 +23,11 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce ![Figure 1a: Environment Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) -2. Click `Add Environment` and select an environment from the dropdown for which you want your configurations to be modified. +2. Click **Add Environment** and select an environment from the dropdown for which you want your configurations to be modified. ![Figure 1b: Add Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) -3. The environment will be added under **Environment Override**, if you wish you can add more environments by clicking `Add Environment`. +3. The environment will be added under **Environment Override**, if you wish you can add more environments by clicking **Add Environment**. ![Figure 1c: Select Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) @@ -47,11 +47,13 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce Let's see how to override the values of ConfigMaps & Secrets for the selected environment. - ## Override ConfigMaps & Secrets +--- + +## Override ConfigMaps & Secrets - If you want to configure your ConfigMaps and Secrets at the application-level then you can provide them in [ConfigMaps](../configuration/config-maps-and-secrets/configmaps.md) and [Secrets](../configuration/config-maps-and-secrets/secrets.md), but if you want to have environment-specific ConfigMaps & Secrets, use **Environment Override** to create new environment specific ConfigMaps & Secrets or override existing ConfigMaps & Secrets for specific environments. At the time of execution, devtron will pick environment specific ConfigMaps & Secrets according to the environment in which the job is executed and pass them to your job pods. + If you want to have environment-specific **ConfigMaps & Secrets**, use **Environment Override** to override them for specific environments or create new environment specific **ConfigMaps & Secrets**. At the time of execution, devtron will pick environment specific **ConfigMaps & Secrets** according to the environment in which the job is executed and pass them to your job pods. - 1. Under the selected environment, select the ConfigMap or Secret you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. + 1. Under the selected environment, select the **ConfigMap** or **Secret** you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. ![Figure 2a: Select ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) @@ -65,9 +67,9 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce ![Figure 2c: Override ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) - 4. Override the data values using [Replace](#using-replace-strategy) merge strategy. + 4. Override the data values using [Replace](#replace-strategy) merge strategy. - ### Replace Strategy +### Replace Strategy * The entire configuration is replaced with your new environment-specific settings. * The replaced template will no longer depend or inherit from base configuration anymore. @@ -83,6 +85,7 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce > To know how to configure ConfigMaps & Secrets refer to the following sections:
  • [ConfigMaps](./config-maps-and-secrets/configmaps.md)
  • [Secrets](./config-maps-and-secrets/secrets.md)
+--- ## Create Additional ConfigMaps & Secrets @@ -92,7 +95,7 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce ![Figure 3a: Add ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) - 2. A configuration tab will open (which was previously named override) to add a new ConfigMap or Secret. + 2. A configuration tab will open (which was previously named override) to add a new **ConfigMap** or **Secret**. ![Figure 3b: Configure ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index 03544254e..ddc5755d2 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -1,10 +1,4 @@ -# Configuration - -After creating a Job, the next step is to configure it. This involves specifying the source code and using the Workflow Editor to define the sequence of tasks, such as code scanning, vulnerability checks, or data migrations, and setting up the conditions for when these tasks should run. - -The following sections will guide you through configuring the source code, setting up the Workflow Editor, and defining ConfigMaps, Secrets, and Environment Overrides for the job. - -## Source Code +# Source Code In Devtron, the Source Code configuration is used to specify the repository that contains your scripts, terraform files, YAML configurations, or other resources. The repository acts as a central location for these files, allowing you to reference and execute them in your job without needing to rewrite the scripts in the Workflow Editor each time. @@ -16,11 +10,11 @@ To configure the Source Code, follow these steps: ![Figure 1a: Select source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) -3. Under Add Git Repository, select the Git Account from the dropdown menu. You can also select GitHub Public from the same dropdown to configure a public repository that does not require authentication. +3. Under **Add Git Repository**, select the **Git Account** from the dropdown menu. You can also select `GitHub Public` from the same dropdown to configure a public repository that does not require authentication. ![Figure 1b: Add git account](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) -4. Enter the Repository URL in the Git Repo URL field, corresponding to the selected Git account.
+4. Enter the **Repository URL** in the Git Repo `URL` field, corresponding to the selected Git account.
If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. ![Figure 1c: Add git repository](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) @@ -31,9 +25,11 @@ If GitHub Public is selected, you can enter the URL of any public repository, as ![Figure 1d: Save source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) -### Configure Additional Options (optional) +--- + +## Configure Additional Options (optional) -#### Exclude specific file/folder in this repo +### Exclude specific file/folder in this repo Devtron allows you to exclude specific files or folders from the repository from being included in the job execution. This is particularly useful for avoiding unnecessary files or folders that do not contribute to the job’s tasks that are not relevant to the current job execution. @@ -51,12 +47,12 @@ To define the exclusion or inclusion rules, follow these steps: | Sample Rules | Description | Impact on Commits | |:---|:---|:---| -| `!README.md` | **Exclusion of a single file in root folder:** | Commits containing changes made only in README.md file will not be shown | -| `!README.md`
`!index.js` | **Exclusion of multiple files in root folder:** | Commits containing changes made only in README.md or/and index.js files will not be shown | -| `README.md` | **Inclusion of a single file in root folder:** | Commits containing changes made only in README.md file will be shown. Rest all will be excluded. | -| `!src/extensions/printer/code2.py` | **Exclusion of a single file in a folder tree:** |Commits containing changes made specifically to code2.py file will not be shown | +| `!README.md` | **Exclusion of a single file in root folder** | Commits containing changes made only in README.md file will not be shown | +| `!README.md`
`!index.js` | **Exclusion of multiple files in root folder** | Commits containing changes made only in README.md or/and index.js files will not be shown | +| `README.md` | **Inclusion of a single file in root folder** | Commits containing changes made only in README.md file will be shown. Rest all will be excluded. | +| `!src/extensions/printer/code2.py` | **Exclusion of a single file in a folder tree** |Commits containing changes made specifically to code2.py file will not be shown | | `!src/*` | **Exclusion of a single folder and all its files:** |Commits containing changes made specifically to files within src folder will not be shown | -| `!README.md`
`index.js` | **Exclusion and inclusion of files:** | Commits containing changes made only in README.md will not be shown, but commits made in index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | +| `!README.md`
`index.js` | **Exclusion and inclusion of files** | Commits containing changes made only in README.md will not be shown, but commits made in index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | | `!README.md`
`README.md` | **Exclusion and inclusion of conflicting files** | If conflicting paths are defined in the rule, the one defined later will be considered. In this case, commits containing changes made only in README.md will be shown. | @@ -69,7 +65,7 @@ Since file paths can be long, Devtron supports regex too for writing the paths. ![Figure 2c: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) -#### Set checkout path +### Set checkout path Devtron allows you to define a custom directory path where the repository will be checked out during job execution. By default, the repository is checked out to the root directory (./). However, you can set a custom path to specify a particular folder within the repository to be accessed and utilized during job execution. @@ -87,10 +83,16 @@ To set the checkout path, follow these steps: ![Figure 3a: Checkout path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) -#### Pull submodules recursively +### Pull submodules recursively This checkbox is used for pulling [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) present in a repo. The submodules will be pulled recursively, and the auth method used for the parent repo will be used for submodules too. To pull the submodules recursively, check the **Pull submodules recursively** checkbox. -![Figure 4a: Pull submodules recursively](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) \ No newline at end of file +![Figure 4a: Pull submodules recursively](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) + +--- + +After configuring **Source Code**, the next step to create and configure job pipelines. + +Refer the [Workflow editor](./workflow-editor-job.md) section to create and configure job pipelines. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index bf543c2f0..883e943fd 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -1,7 +1,7 @@ # Workflow Editor The **Workflow Editor** in Devtron allows you to create and manage job pipelines. -It provides visual interface to create and configure job pipelines, define Basic Configurations such as trigger types, branch name and allows you to add **Tasks to be executed** in the desired sequence. +It provides visual interface to create and configure job pipelines, define basic configurations such as trigger types, branch name and allows you to add **Tasks to be executed** in the desired sequence. To create and configure the Job Pipeline @@ -17,16 +17,23 @@ To create and configure the Job Pipeline ![Figure 1c: Enter job workflow name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) -4. To add a job pipeline to your workflow, click anywhere in the `Add job pipeline to this workflow` area under the job workflow name. This opens the **Create job pipeline** Window in which you can create and configure your job. +4. To add a job pipeline to your workflow, click anywhere in the **Add job pipeline to this workflow** area under the job workflow name. This opens the **Create job pipeline** Window in which you can create and configure your job. ![Figure 1d: Job workflow created](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) ![Figure 1e: Create job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) +--- + ## Create Job Pipeline -In **Create job pipeline** window, you can create and configure job pipelines.\ -It includes 2 stages i.e., [**Basic Configurations**](#basic-configurations) and [**Tasks to be executed**](#tasks-to-be-executed) +In **Create job pipeline** window, you can create and configure job pipelines. + +It includes 2 stages + +* [**Basic Configurations**](#basic-configurations) + +* [**Tasks to be executed**](#tasks-to-be-executed) ### Basic Configurations @@ -36,11 +43,11 @@ This stage allows you to define primary configurations such as Pipeline name, So | Field Name|Description| | :--- |:--- | -| Trigger Job Pipeline |

The job execution may be set to:

  • Automatically: Job execution is triggered automatically as the Git source code changes.
  • Manually: Build is triggered manually.
| -| Pipeline Name | Assign a name to your job pipeline| -| Source type | Source type to trigger the job pipeline. Available options: Branch Fixed, Branch Regex, Pull Request, Tag Creation| -| Branch Name| Branch that triggers the CI build| -| Use remote cache|

Enable this option to use the Docker cache from previous builds. Docker's layer caching mechanism allows unchanged docker images layers to be reused across pipeline runs,thus drastically reducing execution times

The globe toggle, next to Docker Layer Caching means that the configuration is inherited from global

  • Enabled: Inherits the caching settings defined globally.
  • Disabled: Allows you to define a pipeline-level configuration specific to this job.
| +| `Trigger Job Pipeline` |

The job execution may be set to:

  • Automatically: Job execution is triggered automatically as the Git source code changes.
  • Manually: Build is triggered manually.
| +| `Pipeline Name` | Assign a name to your job pipeline| +| `Source type` | Source type to trigger the job pipeline. Available options: Branch Fixed, Branch Regex, Pull Request, Tag Creation| +| `Branch Name`| Branch that triggers the CI build| +| `Use remote cache`|

Enable this option to use the Docker cache from previous builds. Docker's layer caching mechanism allows unchanged docker images layers to be reused across pipeline runs,thus drastically reducing execution times

The globe toggle, next to Docker Layer Caching means that the configuration is inherited from global

  • Enabled: Inherits the caching settings defined globally.
  • Disabled: Allows you to define a pipeline-level configuration specific to this job.
| ### Tasks to be executed @@ -66,26 +73,29 @@ In Devtron, preset plugins are pre-defined tasks templates, that helps you autom Devtron provides a set of built-in preset plugins, and you can also create your own plugins in devtron according to your specific needs. -To create a task using preset plugins, let's take an scenario, where you want to provision a GKE Cluster in your Google Cloud Console, instead of defining a whole new custom script, you can use the `GKE Provisioner` plugin to provision the GKE cluster. +To create a task using preset plugins, let's take an scenario, where you want to provision a GKE Cluster in your Google Cloud Console, instead of defining a whole new custom script, you can use the **GKE Provisioner** plugin to provision the GKE cluster. -To create a task using the GKE plugin follow the below steps: +To create a task using the **GKE Provisioner** plugin follow the below steps: 1. After Configuring the basic configurations, select **Tasks to be executed** Tab + 2. Click **+Add Task** from the left side panel. -3. Search for `GKE Provisioner` in the `Search Plugin` Search bar and select `GKE Provisioner` from the list of plugins. + +3. Search for `GKE Provisioner` in the **Search Plugin** Search bar and select **GKE Provisioner** from the list of plugins. ![Figure 4a: Search 'Gke Provisioner' plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) - * The right-side panel will display the fields specific to the GKE Provisioner plugin which are required to be configured. - * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by-default), along with it's logo. You can change the task's name using the `Task name` field but plugin's logo will remain indicating that it is a preset plugin. + * The right-side panel will display the fields specific to the **GKE Provisioner** plugin which are required to be configured. + + * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by-default), along with it's logo.
You can change the task's name using the **Task name** field but plugin's logo will remain indicating that it is a preset plugin. ![Figure 4b: Gke provisioner plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) -4. Refer the [GKE Provisioner](/docs/user-guide/plugins/gke-provisioner.md) documentation to configure the `GKE Provisioner` fields with appropriate values. +4. Refer the [GKE Provisioner](/docs/user-guide/plugins/gke-provisioner.md) documentation to configure the **GKE Provisioner** fields with appropriate values. > Refer to the [Plugins documentation](/docs/user-guide/plugins/README.md) to explore and configure any of the available plugins. -5. After configuring the fields successfully, your task will be created, if you wish, you can add more tasks by clicking on `+ Add task` in the left-side panel. +5. After configuring the fields successfully, your task will be created, if you wish, you can add more tasks by clicking on **+ Add task** in the left-side panel. #### Create Task using Custom Script @@ -97,48 +107,49 @@ In devtron you can also define a task using custom script to meet specific requi 2. Click **+Add Task** from the left side panel, and then select **Execute custom task**. - * The right-side panel will display the fields which are required to be configured in order to create the task. - * The left-side panel will now displays a task under **Tasks (IN ORDER OF EXECUTION)**. + * The right-side panel will display the fields which are required to be configured in order to create the task. + + * The left-side panel will now displays a task under **Tasks (IN ORDER OF EXECUTION)**. 3. Enter the Task name(required) and Task Description (optional). 4. Select the **Task type**, it can be `Shell` or `Container Image`. - * **Shell Tasks**: These execute shell scripts directly within the job runtime environment.In this type of tasks you can define inline scripts or use script files from your configured source code. + * **Shell Tasks**: These execute shell scripts directly within the job runtime environment. In this type of tasks you can define inline scripts or use script files from your configured source code. - * **Container Image Tasks**: These allows you to execute commands and scripts inside a custom docker container, instead of using the default environment provided by devtron, you can specify you own container image with all dependencies and tools required for the tasks. + * **Container Image Tasks**: These allows you to execute commands and scripts inside a custom docker container, instead of using the default environment provided by devtron, you can specify you own container image with all dependencies and tools required for the tasks. These Tasks run using container in container approach, that means, the specified image is pulled and run inside the job pod, thus providing a complete isolated environment. -5. After selecting the **Task type**, you need to configure task-specific fields based on that **Task type**.Let's look at some examples below to configure both **Shell type** and **Container image** tasks. +5. After selecting the **Task type**, you need to configure task-specific fields based on that **Task type**. Let's look at some examples below to configure both **Shell type** and **Container image** tasks. #### Example - Shell Task Let's take an example of a **Shell task** for a job that allows you to back up a specific PostgreSQL database and stores it as a file. -**Tasks Configurations** +#### Tasks Configurations |Field| Values for This Example| Required/Optional | Description| | :--- | :--- | :--- | :--- | -| **Task Name**| `pg-backup-task`| Required| Enter a name for the task| -| **Task Description**| This task performs a backup of a specific PostgreSQL database and save it as a file and stores the file path as a output variable. | Optional | Short description for the task| -| **Task Type** | `Shell`| Optional| Select the preferred task type | -| Input variables| Refer the [Input Variable table](./#input-variable-table) below | Optional|

These variables provide dynamic values to the script at the time of execution and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| -| Trigger/Skip condition | `Trigger If: DB_NAME == prod-db`| Optional| A conditional statement to execute or skip the task| -| Script| Refer the [Script](./#script)| Required| Custom script for executing Job tasks| -| Output directory path | `/backups`| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| -| Output variables| Refer the [output variable](./#output-variables) table| Optional|

Output variables stores the output as variables and these variables can be used as input variables for the next task.

  • Pass/Failure Condition (Optional): Conditional statements to determine the success/failure of the task. A failed condition stops the execution of the next task and/or build process
| - -**Input Variable Table** - -| Variable | Type | Value | Description | -| ------------ | ------ | ---------------------- | --------------------------------------------- | -| DB\_NAME | String | prod-db | Name of the database to be backed up | -| DB\_USER | String | postgres | Username for the PostgreSQL instance | -| DB\_HOST | String | localhost | PostgreSQL server hostname | -| BACKUP\_PATH | String | /backup | Directory path where the backup file is saved | +| `Task Name`| `pg-backup-task`| Required| Enter a name for the task| +| `Task Description`| `This task performs a backup of a specific PostgreSQL database and save it as a file and stores the file path as a output variable.` | Optional | Short description for the task| +| `Task Type` | `Shell`| Optional| Select the preferred task type | +| `Input variables`| Refer the [Input Variable table](#input-variable-table) below | Optional|

These variables provide dynamic values to the script at the time of execution and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| +| `Trigger/Skip condition` | `Trigger If: DB_NAME == prod-db`| Optional| A conditional statement to execute or skip the task| +| `Script`| Refer the [Script](#script) below| Required| Custom script for executing Job tasks| +| `Output directory path` | `/backups`| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| +| `Output variables`| Refer the [output variable](#output-variables) table| Optional|

Output variables stores the output as variables and these variables can be used as input variables for the next task.

  • [Pass/Failure Condition](#pass-fail-condition) (Optional): Conditional statements to determine the success/failure of the task. A failed condition stops the execution of the next task and/or build process
| + +#### Input Variable Table + +| Variable|Type| Value| Description| +| :--- | :--- | :--- | :--- | +| `DB_NAME`| `String` | `prod-db`| Name of the database to be backed up| +| `DB_USER`| `String` | `postgres`| Username for the PostgreSQL instance| +| `DB_HOST`| `String` | `localhost`| PostgreSQL server hostname| +| `BACKUP_PATH`| `String` | `/backup`| Directory path where the backup file is saved| -* To add a input variable, click **+ Add Variable** next to the `Input Variable`, a new table appear asking you to enter the variable and its required information. +* To add a input variable, click **+ Add Variable** next to the **Input Variable**, a new table appear asking you to enter the variable and its required information. * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
@@ -152,7 +163,7 @@ Let's take an example of a **Shell task** for a job that allows you to back up a ![Figure 6b: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) -**Script:** +#### Script {% code title="Custom Script" overflow="wrap" lineNumbers="true" %} ```bash @@ -200,48 +211,48 @@ fi ``` {% endcode %} -**Output Variables:** +#### Output Variables | Variable | Type | Description | | ------------------ | ------ | --------------------------------------------------- | -| BACKUP\_FILE\_PATH | String | Stores the file path of the backup file generated. | -| BACKUP\_STATUS | String | Indicates whether the backup was successful or not. | +| `BACKUP_FILE_PATH` | `String` | Stores the file path of the backup file generated. | +| `BACKUP_STATUS` | `String` | Indicates whether the backup was successful or not. | -**Pass/Fail Condition** +#### Pass/Fail Condition -PASS If: `BACKUP_STATUS == success`\ +PASS If: `BACKUP_STATUS == success` PASS If: `BACKUP_FILE_PATH != ""` -After adding this backup task, you can add more tasks as well, for example, you can add a task to upload the backup files to cloud storage (e.g., AWS S3) or sending a notification about the backup status.These additional tasks can use the output variable BACKUP\_FILE\_PATH to access the backup file generated in the first task. +After adding this backup task, you can add more tasks as well, for example, you can add a task to upload the backup files to cloud storage (e.g., AWS S3) or sending a notification about the backup status.These additional tasks can use the output variable `BACKUP_FILE_PATH` to access the backup file generated in the first task. #### Example - Container Image Task Let's take an example of a **Container Image Task** for a job that provision an AWS s3 bucket using terraform. Here instead of installing dependencies (such as terraform), this task pulls the official terraform image (hashicorp/terraform:1.5.0) in which our task will execute. This means a container will be created inside the job pod and runs terraform commands inside the container thus avoiding the need to install dependencies manually each time. -**Tasks Configurations** +#### Tasks Configurations | Field| Values for This Example| Required/Optional | Description| | :---|:---|:---|:---| -| Task name| `provision-s3-bucket`| Required|Enter a name for the task| -| Description| Provision an S3 bucket with Terraform| Optional| A descriptive message for the task| -| Task type| `Container Image`| Optional| Allows you to execute commands and scripts inside a custom docker container| -| Input variables| Refer the [Input Variable table](./#input-variable-table) below | Optional|

These variables provide dynamic values to the script and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| -| Trigger/Skip condition| TF\_ENV == "prod"| Optional| Execute or skip the task based on the condition provided.| -| Container image| hashicorp/terraform:1.5.0| Required| Select an image from the drop-down list or enter a custom value in the format `:`| -| Mount custom code| Refer below| Optional|

Enable to mount the custom code in the container. Enter the script in the box below.

  • **Mount above code at** (required): Path where the code should be mounted
| -| Command| sh| Optional|Mention commands to execute inside the container| -| Args| /run.sh| Optional| The arguments to be passed to the command mentioned in the command field| -| Port mapping| No| Optional| The port number on which the container listens. The port number exposes the container to outside services.| -| Mount code to container| yes| Optional| Mounts the source code (configured git repository) inside the container. Default is "No". If set to "Yes", enter the path where the source should be mounted inside the container.| -| Mount directory from host |No| Optional| Mount any directory from the host into the container. This can be used to mount code or even output directories.| -| Output directory path|No| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| - -**Input Variable Table** - -| Variable | Type | Value | Description | -| ------------ | ------ | ------------------ | -------------------------------------------- | -| AWS\_REGION | String | us-east-1 | AWS region where the bucket will be created. | -| BUCKET\_NAME | String | my-app-logs-bucket | Name of the S3 bucket to create. | +| `Task name`| `provision-s3-bucket`| Required|Enter a name for the task| +| `Description`| Provision an S3 bucket with Terraform| Optional| A descriptive message for the task| +| `Task type`| `Container Image`| Optional| Allows you to execute commands and scripts inside a custom docker container| +| `Input variables`| Refer the [Input Variable table](#input-variable-table-1) below | Optional|

These variables provide dynamic values to the script and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| +| `Trigger/Skip condition`| `TF_ENV == "prod"`| Optional| Execute or skip the task based on the condition provided.| +| `Container image`| `hashicorp/terraform:1.5.0`| Required| Select an image from the drop-down list or enter a custom value in the format `:`| +| `Mount custom code`| Refer below [Mount custom code](#mount-custom-code) section| Optional|

Enable to mount the custom code in the container. Enter the script in the box below.

  • **Mount above code at** (required): Path where the code should be mounted
| +| `Command`| `sh`| Optional|Mention commands to execute inside the container| +| `Args`| `/run.sh`| Optional| The arguments to be passed to the command mentioned in the command field| +| `Port mapping`| `No`| Optional| The port number on which the container listens. The port number exposes the container to outside services.| +| `Mount code to container`| `yes`| Optional| Mounts the source code (configured git repository) inside the container. Default is "No". If set to "Yes", enter the path where the source should be mounted inside the container.| +| `Mount directory from host` |`No`| Optional| Mount any directory from the host into the container. This can be used to mount code or even output directories.| +| `Output directory path`|`No`| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| + +#### Input Variable Table + +| Variable| Type| Value| Description| +| :--- | :---| :--- | :--- | +| `AWS_REGION`| `String` | `us-east-1`| AWS region where the bucket will be created. | +| `BUCKET_NAME` | `String` | `my-app-logs-bucket` | Name of the S3 bucket to create.| * To add a input variable, click **+ Add Variable** next to the `Input Variable`, a new table appear asking you to enter the variable and its required information. @@ -257,7 +268,7 @@ Let's take an example of a **Container Image Task** for a job that provision an ![Figure 7c: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) -**Mount Custom Code** +#### Mount Custom Code {% code title="Custom Script" overflow="wrap" lineNumbers="true" %} ```bash @@ -324,9 +335,12 @@ variable "region" { After adding this s3 provisioner task, you can add more tasks as well, for example, you can add a task to add a bucket policy or sending a notification to slack or email that s3 bucket is provisioned successfully. 6. After configuring the tasks, Choose the environment in which you want the job to be executed. -7. Select `Create Pipeline` and a job pipeline will be created. -After creating the pipeline, you can configure configMaps and Secrets (optional) and environment overrides (Optional) before triggering it. +7. Select **Create Pipeline** and a job pipeline will be created. + +After creating the pipeline, you can configure ConfigMaps and Secrets (optional) and environment overrides (Optional) before triggering it. + +--- ## Update Job Pipeline @@ -335,7 +349,7 @@ To update your job pipeline 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -2. Select the job pipeline you wish to update, a edit job pipeline modal window will appear. +2. Select the **Job pipeline** you wish to update, a **Edit job pipeline** modal window will appear. ![Figure 7a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-select.jpg) @@ -343,17 +357,19 @@ To update your job pipeline ![Figure 7b: Update job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-pipeline.jpg) +--- + ## Delete Job Pipeline To delete a job pipeline 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -2. Select the job pipeline you wish to delete, a edit job pipeline modal window will appear. +2. Select the **Job pipeline** you wish to delete, a **Edit job pipeline** modal window will appear. ![Figure 8a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) -3. Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. +3. Select **Delete Pipeline** at the bottom left corner of the **Edit job pipeline** modal window to delete the job pipeline. ![Figure 8b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 42e186101..09c72f734 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -6,6 +6,8 @@ In devtron, jobs can be created by two ways: * **Clone Job**: This allows you to create a new job by reusing the configuration of an existing job. +--- + ## Create a Blank Job To create a new **Blank Job** in Devtron, follow these steps: @@ -58,10 +60,6 @@ To create a new **Clone Job** in Devtron, follow these steps: --- -After creating a job, the next step is to configure the job, refer the [Configurations](/docs/user-guide/jobs/configurations/README.md) section to configure the job. - ---- - ## Delete Job To delete a job: @@ -92,4 +90,8 @@ To delete a job: 4. A pop-up window will appear asking you to confirm the **Delete Job** action. -![Figure 4b: Confirm delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) \ No newline at end of file +![Figure 4b: Confirm delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) + +--- + +After creating a job, the next step is to configure the job, refer the [Configurations](./configurations/README.md) section to configure the job. \ No newline at end of file diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 61eda0d36..13326e6d8 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -4,22 +4,22 @@ The Overview page provides a centralized view of a job’s details within Devtro ![Figure 1a: Job's overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) -The `Overview` page contains three main sections: -* [`About`](#about): Contains job's metadata such as name, description, project, project, creator, and it also includes options to manage tags. +The **Overview** page contains three main sections: +* [**About**](#about): Contains job's metadata such as name, description, project, project, creator, and it also includes options to manage tags. -* [`Job Pipelines`](#job-pipelines): Displays all job pipelines along with their last status and quick access to associated workflows. +* [**Job Pipelines**](#job-pipelines): Displays all job pipelines along with their last status and quick access to associated workflows. --- ## About -The `About` section allows you to: +The **About** section allows you to: * View key job details * Change the project your application is assigned to * Manage tags that you may have added during the job’s creation -The left side of the `About` section displays essential information about the job. +The left side of the **About** section displays essential information about the job. ![Figure 1b: Job's basic info](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-about-left.jpg) @@ -32,19 +32,18 @@ The table below captures all the key elements presented in this section, along w | `Project` |Yes|Indicates the current project under which the application is organized.
You can change the project directly from this section.
  1. Click the `Edit` icon next to the current project.
  2. In the `Change Project` window, select the new project from the dropdown.
  3. Click `Save`.
Changing the project will revoke access for existing users and grant access only to those who have permissions in the newly selected project.| | `Created on` |No|Shows the exact date and time when the application was created.| | `Created by`|No|Displays the email address of the user who created the application.| - | `Tags` |Yes|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the `Edit` icon next to `Tags`.
  2. On the `Manage Tags` page, Click `+ Add tag` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
  5. Click `Save`, Configured Tags will reflect immediately under `Tags` in `About` Section
| ### Readme -The right side of the `About` section contains a `README` area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. +The right side of the **About** section contains a **README** area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. ![Figure 2a: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) -To add or update the `Readme`: +To add or update the **Readme**: 1. Click the **Edit** button in the Readme section. 2. A Markdown editor will appear where you can write or modify content under the `Write` tab. 3. Use standard Markdown syntax to format text, create lists, insert links, and more. -4. Preview the content using the `Preview` tab. +4. Preview the content using the **Preview** tab. 5. Click **Save** to update the README. ![Figure 2b: Edit Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) @@ -65,7 +64,7 @@ When you click the **Edit** icon, a form appears based on the defined schema. As * Container port (e.g., API contract, service documentation) * Environment Variables * Arguments -* Resources(CPU and RAM) +* Resources(CPU and RAM) ![Figure 3b: Edit Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index 0d73ca439..54be4fd52 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -6,7 +6,7 @@ The run history allows you to review each and every execution of job-pipelines. Either you have just executed the job and want to inspect live execution or you just want to check previous executions of a job pipeline -1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from `Select Pipeline` dropdown in the top-left corner. +1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from **Select Pipeline** dropdown in the top-left corner. ![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) @@ -59,4 +59,4 @@ The Security tab provides a view of vulnerability scanning results for code, the --- -After inspecting run history you can also setup the [Job Overview](/docs/user-guide/jobs/overview-job.md) so that others can easily use the job in future. \ No newline at end of file +After inspecting run history you can also setup the [Job Overview](./overview-job.md) so that others can easily use the job in future. \ No newline at end of file diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index 52415add7..a9c235d41 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -8,7 +8,7 @@ To trigger the job-pipeline: ![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) -2. Select `Select Material` for the job-pipeline you wish to execute, a modal window will open, under `Code-source` tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. +2. Select **Select Material** for the job-pipeline you wish to execute, a modal window will open, under **Code-source** tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. ![Figure 1b: Select material for specific pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) @@ -16,20 +16,20 @@ To trigger the job-pipeline: ![Figure 1c: Select commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) -4. Select the `Parameters` tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. +4. Select the **Parameters** tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. ![Figure 1d: Configure runtime parameters](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) -5. After selecting the commit and configuring runtime parameters, pick the target environment from the `Execute job in` dropdown at the bottom. +5. After selecting the commit and configuring runtime parameters, pick the target environment from the **Execute job in** dropdown at the bottom. ![Figure 1e: Select environment for job's execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) -6. Select `Run Job` to execute your pipeline. +6. Select **Run Job** to execute your pipeline. ![Figure 1f: Run job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) --- -After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source,artifacts)in [run-history](./run-history.md) either by navigating to `Run History` tab or by clicking `details` above the `Select Material` of the specific pipeline. +After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source,artifacts)in [run-history](./run-history.md) either by navigating to **Run History** tab or by clicking `details` above the **Select Material** of the specific pipeline. ![Figure 2: Job status](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/what-is-job.md b/docs/user-guide/jobs/what-is-job.md index dd6fc987f..eda634487 100644 --- a/docs/user-guide/jobs/what-is-job.md +++ b/docs/user-guide/jobs/what-is-job.md @@ -14,6 +14,6 @@ Jobs can be configured to run as: * **Event-driven tasks**: Triggered by specific events such as commits, pull requests, or tag creation. -Devtron Jobs support executing custom tasks or predefined operations using integrated pipeline plugins. These plugins extend job functionality by enabling tasks such as code scanning, image signing, vulnerability patching, container image copying, and external automation through tools like Ansible and Bitbucket Runners. To explore the full list of supported plugins and their configuration options, refer to the [Devtron Plugin Documentation](). +Devtron Jobs support executing custom tasks or predefined operations using integrated pipeline plugins. These plugins extend job functionality by enabling tasks such as code scanning, image signing, vulnerability patching, container image copying, and external automation through tools like Ansible and Bitbucket Runners. To explore the full list of supported plugins and their configuration options, refer to the [Devtron Plugin Documentation](/docs/user-guide/plugins/README.md). -To learn how to create a new Job in Devtron, continue to the [Create a new job](./create-a-new-job.md) section. \ No newline at end of file +To learn how to create a new Job in Devtron, continue to the [Create a new job](./create-job.md) section. \ No newline at end of file From 2efc2e2a17ba15c865ba0e07dd4cf6fae3f379c0 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Mon, 28 Apr 2025 00:02:40 +0530 Subject: [PATCH 12/33] docs: optimised according to gitbook --- .../environment-override-job.md | 64 +++++++++---------- .../jobs/configurations/source-code-job.md | 48 +++++++------- .../configurations/workflow-editor-job.md | 56 ++++++++-------- docs/user-guide/jobs/create-job.md | 44 ++++++------- docs/user-guide/jobs/overview-job.md | 1 + docs/user-guide/jobs/run-history-job.md | 57 +++++++++-------- docs/user-guide/jobs/triggering-job.md | 12 ++-- 7 files changed, 142 insertions(+), 140 deletions(-) diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index 8aa74d0b9..68fe65245 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -21,15 +21,15 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce 1. In your job, go to **Configurations** → **Environment Overrides**. -![Figure 1a: Environment Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) + ![Figure 1a: Environment Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) 2. Click **Add Environment** and select an environment from the dropdown for which you want your configurations to be modified. -![Figure 1b: Add Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) + ![Figure 1b: Add Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) 3. The environment will be added under **Environment Override**, if you wish you can add more environments by clicking **Add Environment**. -![Figure 1c: Select Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) + ![Figure 1c: Select Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) 4. Click on the environment you have added under **Environment Override**, you will get the following options (similar to the **ConfigMaps & Secrets** page): @@ -37,7 +37,7 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce * **Secrets** -![Figure 1d: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) + ![Figure 1d: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) 5. You can now do one of the following: @@ -51,53 +51,53 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce ## Override ConfigMaps & Secrets - If you want to have environment-specific **ConfigMaps & Secrets**, use **Environment Override** to override them for specific environments or create new environment specific **ConfigMaps & Secrets**. At the time of execution, devtron will pick environment specific **ConfigMaps & Secrets** according to the environment in which the job is executed and pass them to your job pods. +If you want to have environment-specific **ConfigMaps & Secrets**, use **Environment Override** to override them for specific environments or create new environment specific **ConfigMaps & Secrets**. At the time of execution, devtron will pick environment specific **ConfigMaps & Secrets** according to the environment in which the job is executed and pass them to your job pods. - 1. Under the selected environment, select the **ConfigMap** or **Secret** you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. +1. Under the selected environment, select the **ConfigMap** or **Secret** you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. -![Figure 2a: Select ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) + ![Figure 2a: Select ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) - 2. To create Override, select the **No Override** tab and click the **Create Override** button. +2. To create Override, select the **No Override** tab and click the **Create Override** button. -![Figure 2b: Create Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) + ![Figure 2b: Create Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) - 3. In the same tab (now labelled as **Override**), you can now change the configuration of your ConfigMap or Secret that will be specific to the selected environment. +3. In the same tab (now labelled as **Override**), you can now change the configuration of your ConfigMap or Secret that will be specific to the selected environment. **Note** Except `Name` cannot be changed for ConfigMaps & Secrets that are inherited from the base configuration. -![Figure 2c: Override ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) + ![Figure 2c: Override ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) - 4. Override the data values using [Replace](#replace-strategy) merge strategy. +4. Override the data values using [Replace](#replace-strategy) merge strategy. ### Replace Strategy - * The entire configuration is replaced with your new environment-specific settings. - * The replaced template will no longer depend or inherit from base configuration anymore. - * Best for a complete override. +* The entire configuration is replaced with your new environment-specific settings. +* The replaced template will no longer depend or inherit from base configuration anymore. +* Best for a complete override. - | Field | Inherited Configuration | Input (with Replace) | Final Configuration | - |-----------|--------------------|------------------------------|---------------------| - | cpu | 100m | 500m | 500m | - | memory | 256Mi | 512Mi | 512Mi | - | replicas | 2 | *(Not specified)* | *(Removed)* | - | logLevel | "info" | *(Not specified)* | *(Removed)* | - | timeout | (Not specified) | 30s | 30s (Added) | +| Field | Inherited Configuration | Input (with Replace) | Final Configuration | +|-----------|--------------------|------------------------------|---------------------| +| cpu | 100m | 500m | 500m | +| memory | 256Mi | 512Mi | 512Mi | +| replicas | 2 | *(Not specified)* | *(Removed)* | +| logLevel | "info" | *(Not specified)* | *(Removed)* | +| timeout | (Not specified) | 30s | 30s (Added) | - > To know how to configure ConfigMaps & Secrets refer to the following sections:
  • [ConfigMaps](./config-maps-and-secrets/configmaps.md)
  • [Secrets](./config-maps-and-secrets/secrets.md)
+> To know how to configure ConfigMaps & Secrets refer to the following sections:
  • [ConfigMaps](./config-maps-and-secrets/configmaps.md)
  • [Secrets](./config-maps-and-secrets/secrets.md)
--- ## Create Additional ConfigMaps & Secrets - To create additional ConfigMaps & Secrets, follow the given steps +To create additional ConfigMaps & Secrets, follow the given steps - 1. Under the selected environment, click the `+` button next to ConfigMap or Secret. +1. Under the selected environment, click the `+` button next to ConfigMap or Secret. -![Figure 3a: Add ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) + ![Figure 3a: Add ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) - 2. A configuration tab will open (which was previously named override) to add a new **ConfigMap** or **Secret**. +2. A configuration tab will open (which was previously named override) to add a new **ConfigMap** or **Secret**. -![Figure 3b: Configure ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) + ![Figure 3b: Configure ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) Follow the below guide to create a ConfigMap or Secret: @@ -105,9 +105,9 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce * [Add Secrets](./config-maps-and-secrets/secrets.md#add-secret) - 3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under it's name, in the left-section under ConfigMap or Secret respectively. +3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under it's name, in the left-section under ConfigMap or Secret respectively. -![Figure 3c: ConfigMap or Secret added](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) + ![Figure 3c: ConfigMap or Secret added](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) --- @@ -119,10 +119,10 @@ This action will discard the current overrides and the base configuration file ( 2. Click **Delete Override**. -![Figure 4a: Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) + ![Figure 4a: Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) 3. Confirm the deletion in the dialog box. -![Figure 4b: Confirm Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) + ![Figure 4b: Confirm Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) --- \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index ddc5755d2..d741de70d 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -8,22 +8,22 @@ To configure the Source Code, follow these steps: 2. Select the **Source Code** tab from the left sidebar. -![Figure 1a: Select source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) + ![Figure 1a: Select source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) 3. Under **Add Git Repository**, select the **Git Account** from the dropdown menu. You can also select `GitHub Public` from the same dropdown to configure a public repository that does not require authentication. -![Figure 1b: Add git account](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) + ![Figure 1b: Add git account](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) 4. Enter the **Repository URL** in the Git Repo `URL` field, corresponding to the selected Git account.
If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. -![Figure 1c: Add git repository](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) + ![Figure 1c: Add git repository](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) 5. Configure the [Additional Options](#configure-additional-options-optional) for the job as per your requirements. 6. Click on the **Save** button to save the changes. -![Figure 1d: Save source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) + ![Figure 1d: Save source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) --- @@ -41,28 +41,28 @@ To define the exclusion or inclusion rules, follow these steps: 1. Check the **Exclude specific file/folder in this repo** checkbox. -![Figure 2a: Exclude specific file/folder](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) + ![Figure 2a: Exclude specific file/folder](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) 2. Enter the exclusion or inclusion rules in the **Enter file or folder paths to be included or excluded** field. -| Sample Rules | Description | Impact on Commits | -|:---|:---|:---| -| `!README.md` | **Exclusion of a single file in root folder** | Commits containing changes made only in README.md file will not be shown | -| `!README.md`
`!index.js` | **Exclusion of multiple files in root folder** | Commits containing changes made only in README.md or/and index.js files will not be shown | -| `README.md` | **Inclusion of a single file in root folder** | Commits containing changes made only in README.md file will be shown. Rest all will be excluded. | -| `!src/extensions/printer/code2.py` | **Exclusion of a single file in a folder tree** |Commits containing changes made specifically to code2.py file will not be shown | -| `!src/*` | **Exclusion of a single folder and all its files:** |Commits containing changes made specifically to files within src folder will not be shown | -| `!README.md`
`index.js` | **Exclusion and inclusion of files** | Commits containing changes made only in README.md will not be shown, but commits made in index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | -| `!README.md`
`README.md` | **Exclusion and inclusion of conflicting files** | If conflicting paths are defined in the rule, the one defined later will be considered. In this case, commits containing changes made only in README.md will be shown. | + | Sample Rules | Description | Impact on Commits | + |:---|:---|:---| + | `!README.md` | **Exclusion of a single file in root folder** | Commits containing changes made only in README.md file will not be shown | + | `!README.md`
`!index.js` | **Exclusion of multiple files in root folder** | Commits containing changes made only in README.md or/and index.js files will not be shown | + | `README.md` | **Inclusion of a single file in root folder** | Commits containing changes made only in README.md file will be shown. Rest all will be excluded. | + | `!src/extensions/printer/code2.py` | **Exclusion of a single file in a folder tree** |Commits containing changes made specifically to code2.py file will not be shown | + | `!src/*` | **Exclusion of a single folder and all its files:** |Commits containing changes made specifically to files within src folder will not be shown | + | `!README.md`
`index.js` | **Exclusion and inclusion of files** | Commits containing changes made only in README.md will not be shown, but commits made in index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | + | `!README.md`
`README.md` | **Exclusion and inclusion of conflicting files** | If conflicting paths are defined in the rule, the one defined later will be considered. In this case, commits containing changes made only in README.md will be shown. | -You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. + You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. -![Figure 2b: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) + ![Figure 2b: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) -Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. + Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. -![Figure 2c: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) + ![Figure 2c: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) ### Set checkout path @@ -75,13 +75,13 @@ To set the checkout path, follow these steps: 2. Enter the path to the folder you want to check out from the repository in the **Set checkout path** field. -|Sample paths|Description| -|:---|:---| -|`./`|Checkout the repository to the root directory i.e., the entire repository itself| -|`./src`|Checkout the repository to the src folder| -|`./src/app`|Checkout the repository to the app folder inside the src folder| + |Sample paths|Description| + |:---|:---| + |`./`|Checkout the repository to the root directory i.e., the entire repository itself| + |`./src`|Checkout the repository to the src folder| + |`./src/app`|Checkout the repository to the app folder inside the src folder| -![Figure 3a: Checkout path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) + ![Figure 3a: Checkout path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) ### Pull submodules recursively diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 883e943fd..40aec9528 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -7,21 +7,21 @@ To create and configure the Job Pipeline 1. Navigate to the **Workflow Editor** tab in the left sidebar of the Job **Configuration** page. Alternatively, you can go to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. -![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) + ![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) 2. Click **+ Job Pipeline** to create a new Job workflow, a pop-up **Create job workflow** will appear asking you to enter a name for your Job workflow. -![Figure 1b: Add job workflow](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) + ![Figure 1b: Add job workflow](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) 3. Enter the name for your Job workflow and click on **Create Workflow** button, a new Job workflow will be created, in which you can add a job pipeline. -![Figure 1c: Enter job workflow name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) + ![Figure 1c: Enter job workflow name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) 4. To add a job pipeline to your workflow, click anywhere in the **Add job pipeline to this workflow** area under the job workflow name. This opens the **Create job pipeline** Window in which you can create and configure your job. -![Figure 1d: Job workflow created](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) + ![Figure 1d: Job workflow created](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) -![Figure 1e: Create job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) + ![Figure 1e: Create job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) --- @@ -61,11 +61,11 @@ To create a task: 2. Click **Add Task** to add a task in your job pipeline. -![Figure 3a: Add task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) + ![Figure 3a: Add task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) 3. A new task will be added (in the left side of the Create job pipeline window),you can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) -![Figure 3b: Type of tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) + ![Figure 3b: Type of tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) #### Create Task using preset plugins @@ -83,13 +83,13 @@ To create a task using the **GKE Provisioner** plugin follow the below steps: 3. Search for `GKE Provisioner` in the **Search Plugin** Search bar and select **GKE Provisioner** from the list of plugins. -![Figure 4a: Search 'Gke Provisioner' plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) + ![Figure 4a: Search 'Gke Provisioner' plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) * The right-side panel will display the fields specific to the **GKE Provisioner** plugin which are required to be configured. * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by-default), along with it's logo.
You can change the task's name using the **Task name** field but plugin's logo will remain indicating that it is a preset plugin. -![Figure 4b: Gke provisioner plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) + ![Figure 4b: Gke provisioner plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) 4. Refer the [GKE Provisioner](/docs/user-guide/plugins/gke-provisioner.md) documentation to configure the **GKE Provisioner** fields with appropriate values. @@ -144,24 +144,24 @@ Let's take an example of a **Shell task** for a job that allows you to back up a | Variable|Type| Value| Description| | :--- | :--- | :--- | :--- | -| `DB_NAME`| `String` | `prod-db`| Name of the database to be backed up| -| `DB_USER`| `String` | `postgres`| Username for the PostgreSQL instance| -| `DB_HOST`| `String` | `localhost`| PostgreSQL server hostname| -| `BACKUP_PATH`| `String` | `/backup`| Directory path where the backup file is saved| +| `DB_NAME`| String | `prod-db`| Name of the database to be backed up| +| `DB_USER`| String | `postgres`| Username for the PostgreSQL instance| +| `DB_HOST`| String | `localhost`| PostgreSQL server hostname| +| `BACKUP_PATH`| String | `/backup`| Directory path where the backup file is saved| * To add a input variable, click **+ Add Variable** next to the **Input Variable**, a new table appear asking you to enter the variable and its required information. * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
-![Figure 6a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) + ![Figure 6a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) * You can click the slider icon next to each variable name to make it's value required and add a description for it. -![Figure 6b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) + ![Figure 6b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) * You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. -![Figure 6b: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) + ![Figure 6b: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) #### Script @@ -215,8 +215,8 @@ fi | Variable | Type | Description | | ------------------ | ------ | --------------------------------------------------- | -| `BACKUP_FILE_PATH` | `String` | Stores the file path of the backup file generated. | -| `BACKUP_STATUS` | `String` | Indicates whether the backup was successful or not. | +| `BACKUP_FILE_PATH` | String | Stores the file path of the backup file generated. | +| `BACKUP_STATUS` | String | Indicates whether the backup was successful or not. | #### Pass/Fail Condition @@ -251,22 +251,22 @@ Let's take an example of a **Container Image Task** for a job that provision an | Variable| Type| Value| Description| | :--- | :---| :--- | :--- | -| `AWS_REGION`| `String` | `us-east-1`| AWS region where the bucket will be created. | -| `BUCKET_NAME` | `String` | `my-app-logs-bucket` | Name of the S3 bucket to create.| +| `AWS_REGION`| String | `us-east-1`| AWS region where the bucket will be created. | +| `BUCKET_NAME` | String | `my-app-logs-bucket` | Name of the S3 bucket to create.| * To add a input variable, click **+ Add Variable** next to the `Input Variable`, a new table appear asking you to enter the variable and its required information. * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
-![Figure 7a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) + ![Figure 7a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) * You can click the slider icon next to each variable name to make it's value required and add a description for it. -![Figure 7b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) + ![Figure 7b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) * You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. -![Figure 7c: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) + ![Figure 7c: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) #### Mount Custom Code @@ -351,11 +351,11 @@ To update your job pipeline 2. Select the **Job pipeline** you wish to update, a **Edit job pipeline** modal window will appear. -![Figure 7a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-select.jpg) + ![Figure 7a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-select.jpg) 3. Change the required configurations as per your requirements and select **Update Pipeline** to update the pipeline -![Figure 7b: Update job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-pipeline.jpg) + ![Figure 7b: Update job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-pipeline.jpg) --- @@ -367,12 +367,12 @@ To delete a job pipeline 2. Select the **Job pipeline** you wish to delete, a **Edit job pipeline** modal window will appear. -![Figure 8a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) + ![Figure 8a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) 3. Select **Delete Pipeline** at the bottom left corner of the **Edit job pipeline** modal window to delete the job pipeline. -![Figure 8b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) + ![Figure 8b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) 4. A pop-up window will appear asking you to confirm the **Delete Pipeline** action. -![Figure 8c: Confirm Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) \ No newline at end of file + ![Figure 8c: Confirm Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) \ No newline at end of file diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 09c72f734..c06e7fc7d 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -18,18 +18,18 @@ To create a new **Blank Job** in Devtron, follow these steps: 2. Click **Create** button in the top-right corner and select **Job** from the drop-down list. -![Figure 1b: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) + ![Figure 1b: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) 3. The **Create Job** page opens. From the left panel, select **Blank job**, then enter the required details as listed in the table below. -| Fields| Description| -|:---|:---| -| **Project**| User-defined name for the job in Devtron.| -| **Job Name**| User-defined name for the job in Devtron.| -| **Description** | Enter the description of a job.| -| **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)
| + | Fields| Description| + |:---|:---| + | `Project`| User-defined name for the job in Devtron.| + | `Job Name`| User-defined name for the job in Devtron.| + | `Description` | Enter the description of a job.| + | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)
| -![Figure 1b: Blank job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) + ![Figure 1b: Blank job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) 4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](/docs/user-guide/jobs/configurations/README.md)to continue setting up the job pipeline. @@ -42,19 +42,19 @@ To create a new **Clone Job** in Devtron, follow these steps: 1. From the **Devtron Dashboard** → **Jobs**. 2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. -![Figure 2a: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) + ![Figure 2a: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) 3. The **Create Job** page opens. From the left panel, select **Clone Job**, then enter the required details as listed in the table below. -| Fields| Description| -|:---|:--- | -| **Project**| User-defined name for the job in Devtron.| -| **Job Name**| User-defined name for the job in Devtron.| -| **Description**| Enter the description of a job.| -| **Tags**|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| -| **Select an job to clone** | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| + | Fields| Description| + |:---|:--- | + | `Project`| User-defined name for the job in Devtron.| + | `Job Name`| User-defined name for the job in Devtron.| + | `Description`| Enter the description of a job.| + | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| + | `Select an job to clone` | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| -![Figure 2b: Clone job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) + ![Figure 2b: Clone job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) 4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](/docs/user-guide/jobs/configurations/README.md), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. @@ -74,23 +74,23 @@ To delete a job: * Select the job pipeline you wish to delete, a edit job pipeline modal window will appear. -![Figure 3a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) + ![Figure 3a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) * Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. -![Figure 3b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) + ![Figure 3b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) * A pop-up window will appear asking you to confirm the **Delete Pipeline** action. -![Figure 3c: Confirm delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) + ![Figure 3c: Confirm delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) 3. Select **Delete Job** to delete the job. -![Figure 4a: Delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job.jpg) + ![Figure 4a: Delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job.jpg) 4. A pop-up window will appear asking you to confirm the **Delete Job** action. -![Figure 4b: Confirm delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) + ![Figure 4b: Confirm delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) --- diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 13326e6d8..2fa9c1c40 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -35,6 +35,7 @@ The table below captures all the key elements presented in this section, along w | `Tags` |Yes|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the `Edit` icon next to `Tags`.
  2. On the `Manage Tags` page, Click `+ Add tag` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
  5. Click `Save`, Configured Tags will reflect immediately under `Tags` in `About` Section
| ### Readme + The right side of the **About** section contains a **README** area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. ![Figure 2a: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index 54be4fd52..964a91902 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -8,54 +8,55 @@ Either you have just executed the job and want to inspect live execution or you 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from **Select Pipeline** dropdown in the top-left corner. -![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) + ![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) 2. Select the specific execution you want to inspect. By default the latest execution is selected. -![Figure 1b: Select specific execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) + ![Figure 1b: Select specific execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) 3. After selecting the execution, the right section of the page will display the details about that particular execution. -|Field|Description| -|:---|:---| -|Triggered|Shows the date, time, user, and commit ID that initiated this run.| -|Environment|Indicates which execution environment (e.g., devtron-ci) was used for this job.| -|Execution started|Timestamp marking when the job actually began running.| -|Execution succeeded|Timestamp marking when the job finished successfully.| -|Worker status|Final outcome of the worker performing the job (e.g., Succeeded or Failed). On failure, the error message is also shown| + |Field|Description| + |:---|:---| + |`Triggered`|Shows the date, time, user, and commit ID that initiated this run.| + |`Environment`|Indicates which execution environment (e.g., devtron-ci) was used for this job.| + |`Execution started`|Timestamp marking when the job actually began running.| + |`Execution succeeded`|Timestamp marking when the job finished successfully.| + |`Worker status`|Final outcome of the worker performing the job (e.g., Succeeded or Failed). On failure, the error message is also shown| -![Figure 1c: Execution's details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) + ![Figure 1c: Execution's details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) Apart from these details, you can also inspect logs, source code, security, and download artifacts (if any). ### Logs -* In logs tab, you can inspect logs for each pipeline stage and task along with their runtime. -* Use the `Search log` search bar to search specific keywords or errors. -* You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. -* Select the fullscreen button in the bottom-right corner to view logs in fullscreen. + * In logs tab, you can inspect logs for each pipeline stage and task along with their runtime. + * Use the `Search log` search bar to search specific keywords or errors. + * You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. + * Select the fullscreen button in the bottom-right corner to view logs in fullscreen. -![Figure 2a: Logs](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) + ![Figure 2a: Logs](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) ### Source -The source tab shows which commit is from the source code (configured Git repository) is used to execute the job pipeline. + The source tab shows which commit is from the source code (configured Git repository) is used to execute the job pipeline. -It shows following commit details -|Field|Description| -|:---|:---| -|Repository name & icon |The Git repo used with its provider logo| -|Commit hash|A short, clickable commit ID (e.g. 443vecd) that opens the full commit details when clicked.| -|Commit message|Commit message used while pushing that commit| -|Author|Name & email of the committer.| -|Date & time|When that commit was authored| + It shows following commit details + |Field|Description| + |:---|:---| + |`Repository name & icon` |The Git repo used with its provider logo| + |`Commit hash`|A short, clickable commit ID (e.g. 443vecd) that opens the full commit details when clicked.| + |`Commit message`|Commit message used while pushing that commit| + |`Author`|Name & email of the committer.| + |`Date & time`|When that commit was authored| -![Figure 2b: Source](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) + ![Figure 2b: Source](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) -### Artifacts -The Artifacts tab shows all archives or files your job has produced such as backup binaries, reports, log bundles and let you download them for inspection or further use your job has produced. +### Artifacts + + The Artifacts tab shows all archives or files your job has produced such as backup binaries, reports, log bundles and let you download them for inspection or further use your job has produced. ### Security -The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. + The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. --- diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index a9c235d41..c1554b422 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -6,27 +6,27 @@ To trigger the job-pipeline: 1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. -![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) + ![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) 2. Select **Select Material** for the job-pipeline you wish to execute, a modal window will open, under **Code-source** tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. -![Figure 1b: Select material for specific pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) + ![Figure 1b: Select material for specific pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) 3. Select the commit you want to use in the job execution. You can use the search bar to filter the commits hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. -![Figure 1c: Select commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) + ![Figure 1c: Select commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) 4. Select the **Parameters** tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. -![Figure 1d: Configure runtime parameters](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) + ![Figure 1d: Configure runtime parameters](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) 5. After selecting the commit and configuring runtime parameters, pick the target environment from the **Execute job in** dropdown at the bottom. -![Figure 1e: Select environment for job's execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) + ![Figure 1e: Select environment for job's execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) 6. Select **Run Job** to execute your pipeline. -![Figure 1f: Run job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) + ![Figure 1f: Run job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) --- From 2f2c086131701f8575b8e7d616233ae8e50c82c8 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Mon, 28 Apr 2025 00:19:13 +0530 Subject: [PATCH 13/33] docs: refinements and fixes --- docs/user-guide/jobs/configurations/README.md | 6 +++--- .../configmap-secret/configmap-job.md | 13 ++++++++++++- .../configmap-secret/secret-job.md | 17 ++++++++++++++++- .../configurations/environment-override-job.md | 4 +++- .../jobs/configurations/workflow-editor-job.md | 8 +++++--- 5 files changed, 39 insertions(+), 9 deletions(-) diff --git a/docs/user-guide/jobs/configurations/README.md b/docs/user-guide/jobs/configurations/README.md index 3221de2e1..31dcac72c 100644 --- a/docs/user-guide/jobs/configurations/README.md +++ b/docs/user-guide/jobs/configurations/README.md @@ -4,6 +4,6 @@ After you have created a Job, the next step is, to configure the job. This means In the following sections we will explore how you can configure your Job which includes, -1. Configuring the [Source Code](/jobs/configuration/source-code.md) -2. Creating and configuring the job pipeline through [Workflow Editor](/jobs/configuration/workflow-editor.md). -3. Defining [ConfigMaps](/jobs/configuration/config-maps-and-secrets/configmaps.md) & [Secrets](/jobs/configuration/config-maps-and-secrets/secrets.md), and [Environment Overrides](/jobs/configuration/environment-overrides.md) for the job. \ No newline at end of file +1. Configuring the [Source Code](./source-code-job.md) +2. Creating and configuring the job pipeline through [Workflow Editor](./workflow-editor-job.md). +3. Defining [ConfigMaps](./configmap-secret/configmap-job.md) & [Secrets](./configmap-secret/secret-job.md), and [Environment Overrides](./environment-override-job.md) for the job. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index 37c361b3a..eeb0e652a 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -159,10 +159,21 @@ You cannot change the name of a ConfigMap. Create a new ConfigMap instead. You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, it will not be used in future deployments. 1. Click your ConfigMap available inside the list of **ConfigMaps** inside **Base Configurations**. + 2. On the right side, click the kebab menu (3 vertical dots). + 3. Click **Delete**. + 4. Confirm the deletion in the dialog box. ![Figure 8a: Delete ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-delete.jpg) ---- \ No newline at end of file +--- + +After configuring ConfigMaps + + * Refer the [Secrets](./secret-job.md) section to configure secrets + + * Refer the [Environment Override](../environment-override-job.md) section to configure Environment Overrides. + + * Refer the [Trigger Job](../../triggering-job.md) section to trigger the job-pipeline. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index 6fc19423f..5593b3dd1 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -150,7 +150,9 @@ This option allows you to mount an existing Kubernetes Secret in your job pods a ## Update Secret 1. Click your Secret available inside the list of **Secrets** inside **ConfigMaps & Secrets**. + 2. Modify its values. + 3. Click **Save Changes**. ![Figure 7a: Update secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-update.jpg) @@ -167,8 +169,11 @@ You cannot change the name of a Secret. Create a new Secret instead. You may delete a Secret if not in use anymore. Once a Secret is deleted, it will not be used in future deployments. 1. Click your Secret available inside the list of **Secrets** inside **Base Configurations**. + 2. On the right side, click the kebab menu (3 vertical dots). + 3. Click **Delete**. + 4. Confirm the deletion in the dialogbox. ![Figure 8a: Delete secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) @@ -211,4 +216,14 @@ Manually add the following chart repository URL in Devtron: `https://charts.exte 4. Click **Deploy Chart**. -After Deploying the Chart, refer the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. \ No newline at end of file +After Deploying the Chart, refer the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. + +--- + +After configuring Secrets + + * Refer the [ConfigMaps](./configmap-job.md) section to configure ConfigMaps + + * Refer the [Environment Override](../environment-override-job.md) section to configure Environment Overrides. + + * Refer the [Trigger Job](../../triggering-job.md) section to trigger the job-pipeline. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index 68fe65245..642f185d6 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -125,4 +125,6 @@ This action will discard the current overrides and the base configuration file ( ![Figure 4b: Confirm Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) ---- \ No newline at end of file +--- + +After setting up **Environment Overrides**, you can refer the [Trigger Job](../triggering-job.md) section to trigger your job-pipeline in different environments. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 40aec9528..55c44919e 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -338,8 +338,6 @@ After adding this s3 provisioner task, you can add more tasks as well, for examp 7. Select **Create Pipeline** and a job pipeline will be created. -After creating the pipeline, you can configure ConfigMaps and Secrets (optional) and environment overrides (Optional) before triggering it. - --- ## Update Job Pipeline @@ -375,4 +373,8 @@ To delete a job pipeline 4. A pop-up window will appear asking you to confirm the **Delete Pipeline** action. - ![Figure 8c: Confirm Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) \ No newline at end of file + ![Figure 8c: Confirm Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) + +--- + +After creating the pipeline, you can configure [ConfigMaps](./configmap-secret/configmap-job.md) (optional) and [Secrets](./configmap-secret/secret-job.md) (optional) and [Environment overrides](./environment-override-job.md) (optional) before triggering it. \ No newline at end of file From e4f06d6c13edf65c4613e9382c09308bf56cdf1e Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Mon, 28 Apr 2025 00:41:33 +0530 Subject: [PATCH 14/33] docs: Added RBAC --- docs/user-guide/jobs/configurations/README.md | 2 ++ .../configmap-secret/configmap-job.md | 15 +++++++++++++++ .../configurations/configmap-secret/secret-job.md | 15 +++++++++++++++ .../jobs/configurations/source-code-job.md | 5 +++++ .../jobs/configurations/workflow-editor-job.md | 15 +++++++++++++++ docs/user-guide/jobs/create-job.md | 15 +++++++++++++++ docs/user-guide/jobs/run-history-job.md | 7 +++++++ docs/user-guide/jobs/triggering-job.md | 5 +++++ 8 files changed, 79 insertions(+) diff --git a/docs/user-guide/jobs/configurations/README.md b/docs/user-guide/jobs/configurations/README.md index 31dcac72c..6e12a07f1 100644 --- a/docs/user-guide/jobs/configurations/README.md +++ b/docs/user-guide/jobs/configurations/README.md @@ -5,5 +5,7 @@ After you have created a Job, the next step is, to configure the job. This means In the following sections we will explore how you can configure your Job which includes, 1. Configuring the [Source Code](./source-code-job.md) + 2. Creating and configuring the job pipeline through [Workflow Editor](./workflow-editor-job.md). + 3. Defining [ConfigMaps](./configmap-secret/configmap-job.md) & [Secrets](./configmap-secret/secret-job.md), and [Environment Overrides](./environment-override-job.md) for the job. \ No newline at end of file diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index eeb0e652a..5d6ad6c33 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -6,6 +6,11 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl ## Add ConfigMap +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + 1. Go to the **Configurations** → **ConfigMaps & Secrets**. ![Figure 1a: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap.jpg) @@ -139,6 +144,11 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl ## Update ConfigMap +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + 1. Click your ConfigMap available inside the list of **ConfigMaps** inside **ConfigMaps & Secrets**. 2. Modify its values. @@ -156,6 +166,11 @@ You cannot change the name of a ConfigMap. Create a new ConfigMap instead. ## Delete ConfigMap +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, it will not be used in future deployments. 1. Click your ConfigMap available inside the list of **ConfigMaps** inside **Base Configurations**. diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index 5593b3dd1..bfd98f252 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -8,6 +8,11 @@ Secret objects let you store and manage sensitive information, such as passwords ## Add Secret +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + 1. Go to the **Configurations** → **Base Configurations**. ![Figure 1a: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret.jpg) @@ -149,6 +154,11 @@ This option allows you to mount an existing Kubernetes Secret in your job pods a ## Update Secret +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + 1. Click your Secret available inside the list of **Secrets** inside **ConfigMaps & Secrets**. 2. Modify its values. @@ -166,6 +176,11 @@ You cannot change the name of a Secret. Create a new Secret instead. ## Delete Secret +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + You may delete a Secret if not in use anymore. Once a Secret is deleted, it will not be used in future deployments. 1. Click your Secret available inside the list of **Secrets** inside **Base Configurations**. diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index d741de70d..e45740684 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -2,6 +2,11 @@ In Devtron, the Source Code configuration is used to specify the repository that contains your scripts, terraform files, YAML configurations, or other resources. The repository acts as a central location for these files, allowing you to reference and execute them in your job without needing to rewrite the scripts in the Workflow Editor each time. +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + To configure the Source Code, follow these steps: 1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 55c44919e..eac2e21ef 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -5,6 +5,11 @@ It provides visual interface to create and configure job pipelines, define basic To create and configure the Job Pipeline +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + 1. Navigate to the **Workflow Editor** tab in the left sidebar of the Job **Configuration** page. Alternatively, you can go to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. ![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) @@ -342,6 +347,11 @@ After adding this s3 provisioner task, you can add more tasks as well, for examp ## Update Job Pipeline +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + You can update the configurations of an existing Job Pipeline except for the pipeline's name. To update your job pipeline @@ -359,6 +369,11 @@ To update your job pipeline ## Delete Job Pipeline +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + To delete a job pipeline 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index c06e7fc7d..3dfe33fda 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -10,6 +10,11 @@ In devtron, jobs can be created by two ways: ## Create a Blank Job +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + To create a new **Blank Job** in Devtron, follow these steps: 1. Navigate to **Devtron Dashboard** → **Jobs**. @@ -37,6 +42,11 @@ To create a new **Blank Job** in Devtron, follow these steps: ## Create a Clone Job +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above (along with access to the environment and applications) to perform environment override. +{% endhint %} + To create a new **Clone Job** in Devtron, follow these steps: 1. From the **Devtron Dashboard** → **Jobs**. @@ -62,6 +72,11 @@ To create a new **Clone Job** in Devtron, follow these steps: ## Delete Job +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + To delete a job: 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index 964a91902..d19d1912d 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -4,6 +4,13 @@ The run history allows you to review each and every execution of job-pipelines. ## Accessing run history for specific pipeline +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. + +In case of [View role](../global-configurations/authorization/user-access.md#role-based-access-levels), user should also have permission to access the specific Job. +{% endhint %} + Either you have just executed the job and want to inspect live execution or you just want to check previous executions of a job pipeline 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from **Select Pipeline** dropdown in the top-left corner. diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index c1554b422..7f9211d2f 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -4,6 +4,11 @@ After creating the job pipeline, the next step is to trigger the job pipeline. T To trigger the job-pipeline: +{% hint style="warning" %} +### Who Can Perform This Action? +Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +{% endhint %} + 1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. ![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) From 0807c382a679bd95f8c850c2b9127d80ea868d51 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Mon, 28 Apr 2025 11:27:18 +0530 Subject: [PATCH 15/33] docs: updated summary.md --- docs/SUMMARY.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 200575d7c..b1ac3b219 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -103,10 +103,17 @@ * [Application Metrics](user-guide/creating-application/app-metrics.md) * [Overview](user-guide/creating-application/overview.md) * [Jobs](user-guide/jobs/README.md) + * [What is job?](user-guide/jobs/what-is-job.md) * [Create a new job](user-guide/jobs/create-job.md) - * [Configurations](user-guide/jobs/configuration-job.md) - * [Workflow Editor](user-guide/jobs/workflow-editor-job.md) + * [Configurations](user-guide/jobs/configurations/README.md) + * [Source Code](user-guide/jobs/configurations/source-code-job.md) + * [Workflow Editor](user-guide/jobs/configurations/workflow-editor-job.md) + * [ConfigMaps & Secrets](user-guide/jobs/configurations/configmap-secret/README.md) + * [ConfigMaps](user-guide/jobs/configurations/configmap-secret/configmap-job.md) + * [Secrets](user-guide/jobs/configurations/configmap-secret/secret-job.md) + * [Environment Overrides](user-guide/jobs/configurations/environment-override-job.md) * [Trigger Job](user-guide/jobs/triggering-job.md) + * [Run History](user-guide/jobs/run-history-job.md) * [Overview](user-guide/jobs/overview-job.md) * [Application Groups](user-guide/application-groups.md) * [Software Distribution Hub](user-guide/software-distribution-hub/README.md) From a51b376cee04323d2223a6ec6aa9091728fefa27 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Mon, 28 Apr 2025 17:59:01 +0530 Subject: [PATCH 16/33] docs: updated RBAC and minor fixes --- docs/SUMMARY.md | 2 +- .../configurations/configmap-secret/configmap-job.md | 9 ++++++--- .../jobs/configurations/configmap-secret/secret-job.md | 9 ++++++--- .../jobs/configurations/environment-override-job.md | 3 ++- docs/user-guide/jobs/configurations/source-code-job.md | 3 ++- .../jobs/configurations/workflow-editor-job.md | 9 ++++++--- docs/user-guide/jobs/create-job.md | 6 ++++-- docs/user-guide/jobs/overview-job.md | 2 ++ docs/user-guide/jobs/run-history-job.md | 5 ++--- docs/user-guide/jobs/triggering-job.md | 3 ++- 10 files changed, 33 insertions(+), 18 deletions(-) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index b1ac3b219..99109c020 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -114,7 +114,7 @@ * [Environment Overrides](user-guide/jobs/configurations/environment-override-job.md) * [Trigger Job](user-guide/jobs/triggering-job.md) * [Run History](user-guide/jobs/run-history-job.md) - * [Overview](user-guide/jobs/overview-job.md) + * [Job Overview](user-guide/jobs/overview-job.md) * [Application Groups](user-guide/application-groups.md) * [Software Distribution Hub](user-guide/software-distribution-hub/README.md) * [Tenants](user-guide/software-distribution-hub/tenants.md) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index 5d6ad6c33..c0f973cd1 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -8,7 +8,8 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. Go to the **Configurations** → **ConfigMaps & Secrets**. @@ -146,7 +147,8 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. Click your ConfigMap available inside the list of **ConfigMaps** inside **ConfigMaps & Secrets**. @@ -168,7 +170,8 @@ You cannot change the name of a ConfigMap. Create a new ConfigMap instead. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, it will not be used in future deployments. diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index bfd98f252..2ed03031f 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -10,7 +10,8 @@ Secret objects let you store and manage sensitive information, such as passwords {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. Go to the **Configurations** → **Base Configurations**. @@ -156,7 +157,8 @@ This option allows you to mount an existing Kubernetes Secret in your job pods a {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. Click your Secret available inside the list of **Secrets** inside **ConfigMaps & Secrets**. @@ -178,7 +180,8 @@ You cannot change the name of a Secret. Create a new Secret instead. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} You may delete a Secret if not in use anymore. Once a Secret is deleted, it will not be used in future deployments. diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index 642f185d6..17933fac0 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -16,7 +16,8 @@ The Environment Overrides section allows you to customize the **ConfigMaps**, an {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above (along with access to the environment and applications) to perform environment override. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. In your job, go to **Configurations** → **Environment Overrides**. diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index e45740684..6b895f036 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -4,7 +4,8 @@ In Devtron, the Source Code configuration is used to specify the repository that {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} To configure the Source Code, follow these steps: diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index eac2e21ef..7fd239c0c 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -7,7 +7,8 @@ To create and configure the Job Pipeline {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. Navigate to the **Workflow Editor** tab in the left sidebar of the Job **Configuration** page. Alternatively, you can go to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. @@ -349,7 +350,8 @@ After adding this s3 provisioner task, you can add more tasks as well, for examp {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} You can update the configurations of an existing Job Pipeline except for the pipeline's name. @@ -371,7 +373,8 @@ To update your job pipeline {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} To delete a job pipeline diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 3dfe33fda..c1d08246f 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -12,7 +12,8 @@ In devtron, jobs can be created by two ways: {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} To create a new **Blank Job** in Devtron, follow these steps: @@ -74,7 +75,8 @@ To create a new **Clone Job** in Devtron, follow these steps: {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} To delete a job: diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 2fa9c1c40..7df4d1685 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -59,6 +59,8 @@ The **Catalog** in the **About** section displays information about your job—s ![Figure 3a: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) +You can use the **Catalog framework** to maintain information about your job such as Environment Variables, Resources(CPU and RAM), service documentations etc. This makes it easier for others to understand, manage and use your job. + `Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron applications. When you click the **Edit** icon, a form appears based on the defined schema. As an job owner, you can fill out fields like: diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index d19d1912d..bd1537d45 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -6,9 +6,8 @@ The run history allows you to review each and every execution of job-pipelines. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. - -In case of [View role](../global-configurations/authorization/user-access.md#role-based-access-levels), user should also have permission to access the specific Job. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} Either you have just executed the job and want to inspect live execution or you just want to check previous executions of a job pipeline diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index 7f9211d2f..bcc17474c 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -6,7 +6,8 @@ To trigger the job-pipeline: {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have [Admin role](../global-configurations/authorization/user-access.md#role-based-access-levels) or above. +Users need to have **Admin role** or **Super Admin role**. +Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} 1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. From 460bb1b7e7762c8095e29307aa14ff7cf49d672a Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Wed, 7 May 2025 10:16:59 +0000 Subject: [PATCH 17/33] docs: fixes navigation steps --- docs/user-guide/jobs/configurations/source-code-job.md | 2 +- docs/user-guide/jobs/configurations/workflow-editor-job.md | 6 +++--- docs/user-guide/jobs/run-history-job.md | 2 +- docs/user-guide/jobs/triggering-job.md | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index 6b895f036..00f298b62 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -10,7 +10,7 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce To configure the Source Code, follow these steps: -1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. +1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to **Configurations** tab of your job.. 2. Select the **Source Code** tab from the left sidebar. diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 7fd239c0c..919375873 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -11,7 +11,7 @@ Users need to have **Admin role** or **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} -1. Navigate to the **Workflow Editor** tab in the left sidebar of the Job **Configuration** page. Alternatively, you can go to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. +1. Navigate to the **Workflow Editor** in the left sidebar of the Job **Configuration** page. ![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) @@ -357,7 +357,7 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce You can update the configurations of an existing Job Pipeline except for the pipeline's name. To update your job pipeline -1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. +1. Navigate to **Configurations** → **Workflow Editor** of the specific job you want to update. 2. Select the **Job pipeline** you wish to update, a **Edit job pipeline** modal window will appear. @@ -379,7 +379,7 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce To delete a job pipeline -1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. +1. Navigate to **Configurations** → **Workflow Editor** for the job you want to delete. 2. Select the **Job pipeline** you wish to delete, a **Edit job pipeline** modal window will appear. diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index bd1537d45..c9ee1f139 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -12,7 +12,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. Either you have just executed the job and want to inspect live execution or you just want to check previous executions of a job pipeline -1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Run History**, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from **Select Pipeline** dropdown in the top-left corner. +1. Navigate to **Run History** tab of your job, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from **Select Pipeline** dropdown in the top-left corner. ![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index bcc17474c..a57f034f8 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -10,7 +10,7 @@ Users need to have **Admin role** or **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} -1. Navigate to the **Devtron Dashboard** → **Jobs** → **Select the job** → **Trigger Job**, which list all configured pipelines. +1. Navigate to the **Trigger Job** tab of your job, which list all configured pipelines. ![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) From 4c7b9e9c6cb0c2ce8d50024dc1cb1a845579073c Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:34:38 +0530 Subject: [PATCH 18/33] Grammar fixes for README.md --- docs/user-guide/jobs/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/jobs/README.md b/docs/user-guide/jobs/README.md index c721e97e1..01fda2a50 100644 --- a/docs/user-guide/jobs/README.md +++ b/docs/user-guide/jobs/README.md @@ -1,8 +1,8 @@ # Jobs -Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks defined by the user within the user's application environment. +Devtron Jobs provides a streamlined way to execute specific tasks or a set of tasks defined by the user within the user's application environment. -To learn more about how Jobs work, see the below sections +To learn more about how Jobs work, see the sections below * [What is Jobs](./what-is-job.md) @@ -27,4 +27,4 @@ To learn more about how Jobs work, see the below sections * [Run History](./run-history-job.md) -* [Job Overview](./overview-job.md) \ No newline at end of file +* [Job Overview](./overview-job.md) From 76735189b3db32c1dcf19afc497052bfa4d9f384 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:36:50 +0530 Subject: [PATCH 19/33] Grammar fixes for configurations --- docs/user-guide/jobs/configurations/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/jobs/configurations/README.md b/docs/user-guide/jobs/configurations/README.md index 6e12a07f1..6a1f02310 100644 --- a/docs/user-guide/jobs/configurations/README.md +++ b/docs/user-guide/jobs/configurations/README.md @@ -1,11 +1,11 @@ # Configuration -After you have created a Job, the next step is, to configure the job. This means specifying the source code and using the Workflow Editor to create and configure the job pipeline, which include defining tasks such as code scanning, vulnerability checks, or data migrations, and configuring the sequence in which these tasks should be executed. +After you have created a Job, the next step is to configure the job. This means specifying the source code and using the Workflow Editor to create and configure the job pipeline, which includes defining tasks such as code scanning, vulnerability checks, or data migrations, and configuring the sequence in which these tasks should be executed. -In the following sections we will explore how you can configure your Job which includes, +In the following sections, we will explore how you can configure your Job, which includes, 1. Configuring the [Source Code](./source-code-job.md) 2. Creating and configuring the job pipeline through [Workflow Editor](./workflow-editor-job.md). -3. Defining [ConfigMaps](./configmap-secret/configmap-job.md) & [Secrets](./configmap-secret/secret-job.md), and [Environment Overrides](./environment-override-job.md) for the job. \ No newline at end of file +3. Defining [ConfigMaps](./configmap-secret/configmap-job.md) & [Secrets](./configmap-secret/secret-job.md), and [Environment Overrides](./environment-override-job.md) for the job. From 682d55e4a8f2de709d727ed18e26f12711ebc724 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:40:15 +0530 Subject: [PATCH 20/33] grammar fixes for config map readme --- .../jobs/configurations/configmap-secret/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/README.md b/docs/user-guide/jobs/configurations/configmap-secret/README.md index a2b404fb8..0a7ad46e3 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/README.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/README.md @@ -2,9 +2,9 @@ ## ConfigMaps A ConfigMap stores key-value pairs that your jobs can use as environment variables or mounted files. ConfigMaps are meant for non-sensitive data. Moreover, you can update configurations without modifying or rebuilding your container images, thus making the deployments more efficient. -To configure a ConfigMap for your job-pipeline, refer the [ConfigMaps](./configmap-job) section. +To configure a ConfigMap for your job pipeline, refer to the [ConfigMaps](./configmap-job) section. ## Secrets -Secrets and ConfigMaps are both used to store configurations but there is one major difference between them: ConfigMap stores key-values in normal text format; whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users and it is only visible to the users having edit permission. +Secrets and ConfigMaps are both used to store configurations, but there is one major difference between them: ConfigMaps store key-values in normal text format, whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users, and it is only visible to the users having edit permission. -To configure a Secret for your job-pipeline, refer the [Secrets](./secret-job) section. \ No newline at end of file +To configure a Secret for your job pipeline, refer to the [Secrets](./secret-job) section. From 9d6ada2b56dd4244164372144dcde6a918cd52e9 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:44:48 +0530 Subject: [PATCH 21/33] grammar fixes for configmap-job.md --- .../configmap-secret/configmap-job.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index c0f973cd1..a03b58f17 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -8,7 +8,7 @@ A ConfigMap stores key-value pairs that your jobs can use as environment variabl {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -20,9 +20,9 @@ Refer the [User permissions](../global-configurations/authorization/user-access. ![Figure 1b: Create ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-add.jpg) -3. Enter a name for the ConfigMap (Once defined, name cannot be changed later). +3. Enter a name for the ConfigMap (Once defined, the name cannot be changed later). - In case, you are using a External Kubernetes ConfigMap, name should be exactly same as the as the name given using `kubectl create configmap ` command. + In case you are using an External Kubernetes ConfigMap, the name should be exactly the same as the name given using the `kubectl create configmap ` command. ![Figure 1c: Enter ConfigMap name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-name.jpg) @@ -30,27 +30,27 @@ Refer the [User permissions](../global-configurations/authorization/user-access. * **Kubernetes ConfigMap**: Select the Data Type as Kubernetes ConfigMap, if you wish to create and use the ConfigMap using Devtron. - * **Kubernetes External ConfigMap**: Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and wants to use that in Devtron. + * **Kubernetes External ConfigMap**: Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and want to use that in Devtron. ![Figure 1d: ConfigMap data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) -5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in following ways

**Mount data as** - Select how you want to mount the ConfigMap: +5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in the following ways:

**Mount data as** - Select how you want to mount the ConfigMap: * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Environment Variables in pods using ConfigMap. - * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. + * [**Data Volume**](#mount-data-as-data-volume) – Select this option if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) ### Mount data as environment variables - This will pass your ConfigMap data into your Job pod as environment variables, thus making the configurations values directly accessible by your job. + This will pass your ConfigMap data into your Job pod as environment variables, thus making the configuration values directly accessible by your job. #### For Kubernetes ConfigMap - If you have selected Data type as `Kubernetes ConfigMap` and mount data as `Environment Variable` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: + If you have selected Data type as `Kubernetes ConfigMap` and mount data as `Environment Variable`, then you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: - * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. + * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. ![Figure 2a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-gui.jpg) @@ -60,13 +60,13 @@ Refer the [User permissions](../global-configurations/authorization/user-access. #### For Kubernetes External ConfigMap - If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. + If you have selected Data type as `Kubernetes External ConfigMap`, then no data is required, as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. ![Figure 3: Kubernetes External ConfigMap for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-env.jpg) ### Mount data as Data Volume - This option allows you to create a ConfigMap by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. + This option allows you to create a ConfigMap by passing the content of a file. The content could be plain text, json, yaml, bash script, etc. ![Figure 4a: Mount Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol.jpg) @@ -89,7 +89,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. {% hint style="info" %} ### Note In case of Kubernetes ConfigMap, all keys will be mounted as files on the specified path. - In case of Kubernetes External ConfigMap, manually specify the keys which should be mounted as files. + In case of Kubernetes External ConfigMap, manually specify the keys that should be mounted as files. {% endhint %} ### Set File Permission @@ -119,13 +119,13 @@ Refer the [User permissions](../global-configurations/authorization/user-access. #### For Kubernetes ConfigMap - If you have selected Data type as `Kubernetes ConfigMap` and mount data as `Data Volume` then, you also need to enter the required data (key-value pairs) in the **Data** field. + If you have selected Data type as `Kubernetes ConfigMap` and mount data as `Data Volume`, then you also need to enter the required data (key-value pairs) in the **Data** field. - The key of the ConfigMap should be your filename and the value of the ConfigMap should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that ConfigMap (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). + The key of the ConfigMap should be your filename, and the value of the ConfigMap should be your file content. In the below example, your `file.json` is the key, and the JSON content is the value of that ConfigMap (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). Enter data in: - * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. + * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. ![Figure 5a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-gui.jpg) @@ -135,7 +135,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. #### For Kubernetes External ConfigMap - If you have selected Data type as `Kubernetes External ConfigMap` then, no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. + If you have selected Data type as `Kubernetes External ConfigMap`, then no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. ![Figure 6a: Kubernetes External ConfigMap for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-data-vol.jpg) @@ -147,7 +147,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -170,7 +170,7 @@ You cannot change the name of a ConfigMap. Create a new ConfigMap instead. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -194,4 +194,4 @@ After configuring ConfigMaps * Refer the [Environment Override](../environment-override-job.md) section to configure Environment Overrides. - * Refer the [Trigger Job](../../triggering-job.md) section to trigger the job-pipeline. \ No newline at end of file + * Refer the [Trigger Job](../../triggering-job.md) section to trigger the job-pipeline. From 684bf112c3abf23459448f6194e25659436775dd Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:51:24 +0530 Subject: [PATCH 22/33] grammar fixes secret-job.md --- .../configmap-secret/secret-job.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index 2ed03031f..b7c9bc06e 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -1,8 +1,8 @@ # Secrets -Secrets and ConfigMaps are both used to store configurations but there is one major difference between them: ConfigMap stores key-values in normal text format; whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users and it is only visible to the users having edit permission. +Secrets and ConfigMaps are both used to store configurations, but there is one major difference between them: ConfigMaps store key-values in normal text format, whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users, and it is only visible to the users having edit permission. -Secret objects let you store and manage sensitive information, such as passwords, authentication tokens, and ssh keys. Embedding this information in secrets is safer and more flexible than putting it verbatim in a Pod definition or in a container image. +Secret objects let you store and manage sensitive information, such as passwords, authentication tokens, and SSH keys. Embedding this information in secrets is safer and more flexible than putting it verbatim in a Pod definition or in a container image. --- @@ -10,7 +10,7 @@ Secret objects let you store and manage sensitive information, such as passwords {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -22,9 +22,9 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a ![Figure 1b: Create Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-add.jpg) -3. Enter a name for the Secret (Once defined, name cannot be changed later). +3. Enter a name for the Secret (Once defined, the name cannot be changed later). - In case, you are mounting Existing Kubernetes Secret, name should be exactly same as the as the name given using `kubectl create secret ` command. + In case you are mounting an existing Kubernetes Secret, the name should be exactly the same as the name given using the `kubectl create secret ` command. ![Figure 1c: Enter secret name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-name.jpg) @@ -32,33 +32,33 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a * **Kubernetes Secret**: Select the Data Type as Kubernetes Secret, if you wish to create and use the Secret using Devtron. - * **Mount Existing Kubernetes Secret**: Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and wants to use that in Devtron. + * **Mount Existing Kubernetes Secret**: Select the Data Type as Existing Kubernetes Secret if you have already created a Secret using the kubectl command and want to use that in Devtron. * **External Secret Operator (ESO)**: External Secrets Operator (ESO) is a Kubernetes component that integrates with external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, and more. It retrieves secrets from these external sources and injects them into Kubernetes Secrets automatically. - > `external-secrets` helm chart should be installed before setting up ESO, otherwise the External Secret Operator (ESO) will not appear. Refer the [External Secret Operator (ESO)](#external-secret-operator-eso) section to setup ESO + > `external-secrets` helm chart should be installed before setting up ESO; otherwise, the External Secret Operator (ESO) will not appear. Refer to the [External Secret Operator (ESO)](#external-secret-operator-eso) section to set up ESO ![Figure 1d: Secret data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) **Note**: Devtron automatically converts secrets from various data types to Kubernetes Secrets. Regardless of the original data type, once the conversion is complete, the Pods can access the secrets in the same way as native Kubernetes Secrets. -5. After selecting the data type, you can choose how to mount the data of your Secret. Devtron allows you to mount Secret data in following ways

**Mount data as** - Select how you want to mount the Secret: +5. After selecting the data type, you can choose how to mount the data of your Secret. Devtron allows you to mount Secret data in the following ways:

**Mount data as** - Select how you want to mount the Secret: * [**Environment Variable**](#mount-data-as-environment-variables) – Select this option if you want to inject Secret data(key-value pairs) as Environment Variables in pods using Secret. - * [**Data Volume**](#mount-data-as-data-volume) – Select this option, if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. + * [**Data Volume**](#mount-data-as-data-volume) – Select this option if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-data.jpg) ### Mount data as environment variables - This will pass your secret data into your Job pod as environment variables, thus making the configurations values directly accessible by your job. + This will pass your secret data into your Job pod as environment variables, thus making the configuration values directly accessible by your job. #### For Kubernetes Secret - If you have selected Data type as `Kubernetes Secret` and mount data as `Environment Variable` then, you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: + If you have selected Data type as `Kubernetes Secret` and mount data as `Environment Variable`, then you also need to enter the required data (key-value pairs) in the **Data** field

Enter data in: - * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. + * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. ![Figure 2a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-gui.jpg) @@ -68,9 +68,9 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a ### Mount Existing Kubernetes Secrets - This option allows you to mount an existing Kubernetes Secret in your job pods. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail. + This option allows you to mount an existing Kubernetes Secret in your job pods. A Secret will not be created by the system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail. - If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. + If you have selected Data type as `Mount Existing Kubernetes Secrets`, then no data is required, as Devtron will fetch the existing Secret data and use it to create a Secret. ![Figure 3a: Mount Existing Kubernetes Secrets for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) @@ -79,7 +79,7 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a ### Mount Data as Data Volume -This option allows you to create a Secret by passing the content of a file. The content could be a plain text, json, yaml, bash script, etc. +This option allows you to create a Secret by passing the content of a file. The content could be plain text, json, yaml, bash script, etc. ![Figure 4a: Mount Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol.jpg) @@ -102,7 +102,7 @@ When mounting multiple files to the same location, you can use the **Set Sub Pat {% hint style="info" %} ### Note In case of Kubernetes Secrets, all keys will be mounted as files on the specified path. -In case of External Secrets, manually specify the keys which should be mounted as files. +In case of External Secrets, manually specify the keys that should be mounted as files. {% endhint %} ### Set File Permission @@ -131,13 +131,13 @@ For example, **755** means: ### Data #### For Kubernetes Secret -If you have selected Data type as `Kubernetes Secret` and mount data as `Data Volume` then, you also need to enter the required data (key-value pairs) in the **Data** field. +If you have selected Data type as `Kubernetes Secret` and mount data as `Data Volume`, then you also need to enter the required data (key-value pairs) in the **Data** field. -The key of the Secret should be your filename and the value of the Secret should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that Secret (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). +The key of the Secret should be your filename, and the value of the Secret should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that Secret (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). Enter data in: - * **GUI mode** – User-friendly interface. Click **+Add** button and enter the **Key** and **Value** fields without quotes. + * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. ![Figure 5a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-gui.jpg) @@ -147,7 +147,7 @@ Enter data in: #### For Mount Existing Kubernetes Secrets -This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by system so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets` then, no data is required as devtron will fetch the existing Secret data and use it to create a Secret. +This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by the system, so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets`, then no data is required as Devtron will fetch the existing Secret data and use it to create a Secret. ![Figure 6a: Mount Existing Kubernetes Secrets for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-data-vol.jpg) @@ -157,7 +157,7 @@ This option allows you to mount an existing Kubernetes Secret in your job pods a {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -180,7 +180,7 @@ You cannot change the name of a Secret. Create a new Secret instead. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -192,7 +192,7 @@ You may delete a Secret if not in use anymore. Once a Secret is deleted, it will 3. Click **Delete**. -4. Confirm the deletion in the dialogbox. +4. Confirm the deletion in the dialog box. ![Figure 8a: Delete secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) @@ -224,17 +224,17 @@ External Secrets Operator (ESO) is a Kubernetes component that integrates with e ![Figure 9a: Searching External Secrets Chart](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/external-secret.jpg) {% hint style="info" %} -### What if external-secrets chart is not found? +### What if the external-secrets chart is not found? Manually add the following chart repository URL in Devtron: `https://charts.external-secrets.io`. Follow this [guide](../../global-configurations/chart-repo.md#add-chart-repository) to know the steps. {% endhint %} -3. Give a name to the helm app that will be created from the chart. Also enter the project and environment where you wish to install the chart. +3. Give a name to the helm app that will be created from the chart. Also, enter the project and environment where you wish to install the chart. ![Figure 9b: Adding Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/ext-secret-fields.jpg) 4. Click **Deploy Chart**. -After Deploying the Chart, refer the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. +After deploying the Chart, refer to the [ESO Documentation](/docs/user-guide/creating-application/eso/README.md) to setup ESO for different providers. --- @@ -244,4 +244,4 @@ After configuring Secrets * Refer the [Environment Override](../environment-override-job.md) section to configure Environment Overrides. - * Refer the [Trigger Job](../../triggering-job.md) section to trigger the job-pipeline. \ No newline at end of file + * Refer the [Trigger Job](../../triggering-job.md) section to trigger the job-pipeline. From a7ba124b08fc33f5451150956a7204bfd844b8fb Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:58:11 +0530 Subject: [PATCH 23/33] minor fixes in environment-override-job.md --- .../environment-override-job.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index 17933fac0..d39090d00 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -1,12 +1,12 @@ # Environment Overrides -The Environment Overrides section allows you to customize the **ConfigMaps**, and **Secrets** for different environments such as development, testing, staging, and production and it even allows to create additional **ConfigMaps**, and **Secrets** (if required) for different environments +The Environment Overrides section allows you to customize the **ConfigMaps**, and **Secrets** for different environments such as development, testing, staging, and production, and it even allows you to create additional **ConfigMaps**, and **Secrets** (if required) for different environments ## How it works -* When you add a job pipeline to an job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. +* When you add a job pipeline to a job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. -* The **Environment Overrides** section lets you customize those ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic. +* The **Environment Overrides** section lets you customize the ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic. * The **Environment Overrides** section also lets you create additional ConfigMaps and Secrets per environment without affecting those of other environments. For example, a testing environment may require additional ConfigMaps and Secrets for temporary or test-specific configurations, while a production environment uses only the base ConfigMaps and Secrets needed for running the application. @@ -16,7 +16,7 @@ The Environment Overrides section allows you to customize the **ConfigMaps**, an {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -28,7 +28,7 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce ![Figure 1b: Add Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) -3. The environment will be added under **Environment Override**, if you wish you can add more environments by clicking **Add Environment**. +3. The environment will be added under **Environment Override**. If you wish, you can add more environments by clicking **Add Environment**. ![Figure 1c: Select Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) @@ -52,9 +52,9 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce ## Override ConfigMaps & Secrets -If you want to have environment-specific **ConfigMaps & Secrets**, use **Environment Override** to override them for specific environments or create new environment specific **ConfigMaps & Secrets**. At the time of execution, devtron will pick environment specific **ConfigMaps & Secrets** according to the environment in which the job is executed and pass them to your job pods. +If you want to have environment-specific **ConfigMaps & Secrets**, use **Environment Override** to override them for specific environments or create new environment-specific **ConfigMaps & Secrets**. At the time of execution, Devtron will pick environment-specific **ConfigMaps & Secrets** according to the environment in which the job is executed and pass them to your job pods. -1. Under the selected environment, select the **ConfigMap** or **Secret** you wish to override, by default the ConfigMap or Secret is inherited from the base configuration. +1. Under the selected environment, select the **ConfigMap** or **Secret** you wish to override; by default, the ConfigMap or Secret is inherited from the base configuration. ![Figure 2a: Select ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) @@ -73,7 +73,7 @@ If you want to have environment-specific **ConfigMaps & Secrets**, use **Environ ### Replace Strategy * The entire configuration is replaced with your new environment-specific settings. -* The replaced template will no longer depend or inherit from base configuration anymore. +* The replaced template will no longer depend on or inherit from the base configuration anymore. * Best for a complete override. | Field | Inherited Configuration | Input (with Replace) | Final Configuration | @@ -100,13 +100,13 @@ To create additional ConfigMaps & Secrets, follow the given steps ![Figure 3b: Configure ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) - Follow the below guide to create a ConfigMap or Secret: + Follow the guide below to create a ConfigMap or Secret: * [Add ConfigMaps](./config-maps-and-secrets/configmaps.md#add-configmap) * [Add Secrets](./config-maps-and-secrets/secrets.md#add-secret) -3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under it's name, in the left-section under ConfigMap or Secret respectively. +3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under its name, in the left section under ConfigMap or Secret, respectively. ![Figure 3c: ConfigMap or Secret added](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) @@ -114,7 +114,7 @@ To create additional ConfigMaps & Secrets, follow the given steps ## Delete Override -This action will discard the current overrides and the base configuration file (in this example, deployment template) will be restored back for the environment. +This action will discard the current overrides, and the base configuration file (in this example, the deployment template) will be restored back for the environment. 1. On the right side, click the kebab menu (3 vertical dots). @@ -128,4 +128,4 @@ This action will discard the current overrides and the base configuration file ( --- -After setting up **Environment Overrides**, you can refer the [Trigger Job](../triggering-job.md) section to trigger your job-pipeline in different environments. \ No newline at end of file +After setting up **Environment Overrides**, you can refer to the [Trigger Job](../triggering-job.md) section to trigger your job pipeline in different environments. From d7d017dc4b438626d855ef4144280285ee3eca85 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 15:59:57 +0530 Subject: [PATCH 24/33] fixes in source-code-job.md --- .../jobs/configurations/source-code-job.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index 00f298b62..1e6e274d8 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -1,16 +1,16 @@ # Source Code -In Devtron, the Source Code configuration is used to specify the repository that contains your scripts, terraform files, YAML configurations, or other resources. The repository acts as a central location for these files, allowing you to reference and execute them in your job without needing to rewrite the scripts in the Workflow Editor each time. +In Devtron, the Source Code configuration is used to specify the repository that contains your scripts, Terraform files, YAML configurations, or other resources. The repository acts as a central location for these files, allowing you to reference and execute them in your job without needing to rewrite the scripts in the Workflow Editor each time. {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} To configure the Source Code, follow these steps: -1. If the job has been just created, you will be automatically directed to the Configurations page. If not, navigate to **Configurations** tab of your job.. +1. If the job has just been created, you will be automatically directed to the Configurations page. If not, navigate to the **Configurations** tab of your job.. 2. Select the **Source Code** tab from the left sidebar. @@ -39,7 +39,7 @@ If GitHub Public is selected, you can enter the URL of any public repository, as Devtron allows you to exclude specific files or folders from the repository from being included in the job execution. This is particularly useful for avoiding unnecessary files or folders that do not contribute to the job’s tasks that are not relevant to the current job execution. -You can define either exclusion rules or inclusion rules to filter the files and folders ensuring that only the necessary parts of the repository are used in the job. +You can define either exclusion rules or inclusion rules to filter the files and folders, ensuring that only the necessary parts of the repository are used in the job. Commits that contain only changes to excluded files or folders will be marked as excluded when selecting commits to trigger the job, preventing them from being included in the build. @@ -53,12 +53,12 @@ To define the exclusion or inclusion rules, follow these steps: | Sample Rules | Description | Impact on Commits | |:---|:---|:---| - | `!README.md` | **Exclusion of a single file in root folder** | Commits containing changes made only in README.md file will not be shown | + | `!README.md` | **Exclusion of a single file in root folder** | Commits containing changes made only in the README.md file will not be shown | | `!README.md`
`!index.js` | **Exclusion of multiple files in root folder** | Commits containing changes made only in README.md or/and index.js files will not be shown | - | `README.md` | **Inclusion of a single file in root folder** | Commits containing changes made only in README.md file will be shown. Rest all will be excluded. | + | `README.md` | **Inclusion of a single file in root folder** | Commits containing changes made only in the README.md file will be shown. Rest all will be excluded. | | `!src/extensions/printer/code2.py` | **Exclusion of a single file in a folder tree** |Commits containing changes made specifically to code2.py file will not be shown | - | `!src/*` | **Exclusion of a single folder and all its files:** |Commits containing changes made specifically to files within src folder will not be shown | - | `!README.md`
`index.js` | **Exclusion and inclusion of files** | Commits containing changes made only in README.md will not be shown, but commits made in index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | + | `!src/*` | **Exclusion of a single folder and all its files:** |Commits containing changes made specifically to files within the `src` folder will not be shown | + | `!README.md`
`index.js` | **Exclusion and inclusion of files** | Commits containing changes made only in README.md will not be shown, but commits made in the index.js file will be shown. All other commits apart from the aforementioned files will be excluded. | | `!README.md`
`README.md` | **Exclusion and inclusion of conflicting files** | If conflicting paths are defined in the rule, the one defined later will be considered. In this case, commits containing changes made only in README.md will be shown. | @@ -83,7 +83,7 @@ To set the checkout path, follow these steps: |Sample paths|Description| |:---|:---| - |`./`|Checkout the repository to the root directory i.e., the entire repository itself| + |`./`|Checkout the repository to the root directory, i.e., the entire repository itself| |`./src`|Checkout the repository to the src folder| |`./src/app`|Checkout the repository to the app folder inside the src folder| @@ -99,6 +99,6 @@ To pull the submodules recursively, check the **Pull submodules recursively** ch --- -After configuring **Source Code**, the next step to create and configure job pipelines. +After configuring **Source Code**, the next step is to create and configure job pipelines. -Refer the [Workflow editor](./workflow-editor-job.md) section to create and configure job pipelines. \ No newline at end of file +Refer to the [Workflow editor](./workflow-editor-job.md) section to create and configure job pipelines. From de92d2ec6e2718b0932a1bac84bb38c83a0e1383 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 16:07:23 +0530 Subject: [PATCH 25/33] fixes in workflow-editor-job.md --- .../configurations/workflow-editor-job.md | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 919375873..96447c532 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -1,13 +1,13 @@ # Workflow Editor The **Workflow Editor** in Devtron allows you to create and manage job pipelines. -It provides visual interface to create and configure job pipelines, define basic configurations such as trigger types, branch name and allows you to add **Tasks to be executed** in the desired sequence. +It provides a visual interface to create and configure job pipelines, define basic configurations such as trigger types, branch name, and allows you to add **Tasks to be executed** in the desired sequence. To create and configure the Job Pipeline {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -15,11 +15,11 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce ![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) -2. Click **+ Job Pipeline** to create a new Job workflow, a pop-up **Create job workflow** will appear asking you to enter a name for your Job workflow. +2. Click **+ Job Pipeline** to create a new Job workflow. A pop-up **Create job workflow** will appear, asking you to enter a name for your Job workflow. ![Figure 1b: Add job workflow](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) -3. Enter the name for your Job workflow and click on **Create Workflow** button, a new Job workflow will be created, in which you can add a job pipeline. +3. Enter the name for your Job workflow and click on the **Create Workflow** button. A new Job workflow will be created, in which you can add a job pipeline. ![Figure 1c: Enter job workflow name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) @@ -33,7 +33,7 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce ## Create Job Pipeline -In **Create job pipeline** window, you can create and configure job pipelines. +In the **Create job pipeline** window, you can create and configure job pipelines. It includes 2 stages @@ -43,7 +43,7 @@ It includes 2 stages ### Basic Configurations -This stage allows you to define primary configurations such as Pipeline name, Source Type, Branch Name, and how job should be triggered. Refer the following table to configure each field. +This stage allows you to define primary configurations such as Pipeline name, Source Type, Branch Name, and how the job should be triggered. Refer to the following table to configure each field. ![Figure 2a: Configure job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-basic-config.jpg) @@ -53,13 +53,13 @@ This stage allows you to define primary configurations such as Pipeline name, So | `Pipeline Name` | Assign a name to your job pipeline| | `Source type` | Source type to trigger the job pipeline. Available options: Branch Fixed, Branch Regex, Pull Request, Tag Creation| | `Branch Name`| Branch that triggers the CI build| -| `Use remote cache`|

Enable this option to use the Docker cache from previous builds. Docker's layer caching mechanism allows unchanged docker images layers to be reused across pipeline runs,thus drastically reducing execution times

The globe toggle, next to Docker Layer Caching means that the configuration is inherited from global

  • Enabled: Inherits the caching settings defined globally.
  • Disabled: Allows you to define a pipeline-level configuration specific to this job.
| +| `Use remote cache`|

Enable this option to use the Docker cache from previous builds. Docker's layer caching mechanism allows unchanged docker images layers to be reused across pipeline runs, thus drastically reducing execution times

The globe toggle, next to Docker Layer Caching means that the configuration is inherited from global

  • Enabled: Inherits the caching settings defined globally.
  • Disabled: Allows you to define a pipeline-level configuration specific to this job.
| ### Tasks to be executed -The Stage allows you define tasks for your job. +The Stage allows you to define tasks for your job. -You can create one or more tasks. Tasks can be dependent on each other for execution, In other words, the output variable of one task can be used as an input for the next task to execute your job. Tasks will execute in the order they are arranged and can be rearranged by drag-and-drop; however, the order of passing the variables must be followed. +You can create one or more tasks. Tasks can be dependent on each other for execution. In other words, the output variable of one task can be used as an input for the next task to execute your job. Tasks will execute in the order they are arranged and can be rearranged by drag-and-drop; however, the order of passing the variables must be followed. To create a task: @@ -69,21 +69,21 @@ To create a task: ![Figure 3a: Add task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) -3. A new task will be added (in the left side of the Create job pipeline window),you can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) +3. A new task will be added (on the left side of the Create job pipeline window). You can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) ![Figure 3b: Type of tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) -#### Create Task using preset plugins +#### Create a Task using preset plugins -In Devtron, preset plugins are pre-defined tasks templates, that helps you automate and execute common operations such as provisioning infrastructure, taking backups, exporting container images etc., without writing custom scripts. +In Devtron, preset plugins are pre-defined tasks templates that helps you automate and execute common operations such as provisioning infrastructure, taking backups, exporting container images etc., without writing custom scripts. -Devtron provides a set of built-in preset plugins, and you can also create your own plugins in devtron according to your specific needs. +Devtron provides a set of built-in preset plugins, and you can also create your own plugins in Devtron according to your specific needs. -To create a task using preset plugins, let's take an scenario, where you want to provision a GKE Cluster in your Google Cloud Console, instead of defining a whole new custom script, you can use the **GKE Provisioner** plugin to provision the GKE cluster. +To create a task using preset plugins, let's take a scenario where you want to provision a GKE Cluster in your Google Cloud Console. Instead of defining a whole new custom script, you can use the **GKE Provisioner** plugin to provision the GKE cluster. -To create a task using the **GKE Provisioner** plugin follow the below steps: +To create a task using the **GKE Provisioner** plugin, follow the steps below: -1. After Configuring the basic configurations, select **Tasks to be executed** Tab +1. After configuring the basic configurations, select the **Tasks to be executed** Tab 2. Click **+Add Task** from the left side panel. @@ -91,9 +91,9 @@ To create a task using the **GKE Provisioner** plugin follow the below steps: ![Figure 4a: Search 'Gke Provisioner' plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) - * The right-side panel will display the fields specific to the **GKE Provisioner** plugin which are required to be configured. + * The right-side panel will display the fields specific to the **GKE Provisioner** plugin, which are required to be configured. - * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by-default), along with it's logo.
You can change the task's name using the **Task name** field but plugin's logo will remain indicating that it is a preset plugin. + * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by default), along with its logo.
You can change the task's name using the **Task name** field but plugin's logo will remain indicating that it is a preset plugin. ![Figure 4b: Gke provisioner plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) @@ -101,50 +101,50 @@ To create a task using the **GKE Provisioner** plugin follow the below steps: > Refer to the [Plugins documentation](/docs/user-guide/plugins/README.md) to explore and configure any of the available plugins. -5. After configuring the fields successfully, your task will be created, if you wish, you can add more tasks by clicking on **+ Add task** in the left-side panel. +5. After configuring the fields successfully, your task will be created. If you wish, you can add more tasks by clicking on **+ Add task** in the left-side panel. #### Create Task using Custom Script -In devtron you can also define a task using custom script to meet specific requirements. To create a task a task using a custom script follow the below steps: +In Devtron, you can also define a task using a custom script to meet specific requirements. To create a task a task using a custom script, follow the steps below: ![Figure 5a: Execute custom task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-custom-task.jpg) -1. After Configuring the basic configurations, select **Tasks to be executed** Tab. +1. After configuring the basic configurations, select the **Tasks to be executed** Tab. 2. Click **+Add Task** from the left side panel, and then select **Execute custom task**. - * The right-side panel will display the fields which are required to be configured in order to create the task. + * The right-side panel will display the fields that are required to be configured in order to create the task. - * The left-side panel will now displays a task under **Tasks (IN ORDER OF EXECUTION)**. + * The left-side panel will now display a task under **Tasks (IN ORDER OF EXECUTION)**. 3. Enter the Task name(required) and Task Description (optional). 4. Select the **Task type**, it can be `Shell` or `Container Image`. - * **Shell Tasks**: These execute shell scripts directly within the job runtime environment. In this type of tasks you can define inline scripts or use script files from your configured source code. + * **Shell Tasks**: These execute shell scripts directly within the job runtime environment. In this type of task, you can define inline scripts or use script files from your configured source code. - * **Container Image Tasks**: These allows you to execute commands and scripts inside a custom docker container, instead of using the default environment provided by devtron, you can specify you own container image with all dependencies and tools required for the tasks. + * **Container Image Tasks**: These allow you to execute commands and scripts inside a custom Docker container. Instead of using the default environment provided by Devtron, you can specify your own container image with all dependencies and tools required for the tasks. -These Tasks run using container in container approach, that means, the specified image is pulled and run inside the job pod, thus providing a complete isolated environment. +These Tasks run using container in container approach, which means the specified image is pulled and run inside the job pod, thus providing a complete isolated environment. 5. After selecting the **Task type**, you need to configure task-specific fields based on that **Task type**. Let's look at some examples below to configure both **Shell type** and **Container image** tasks. #### Example - Shell Task -Let's take an example of a **Shell task** for a job that allows you to back up a specific PostgreSQL database and stores it as a file. +Let's take an example of a **Shell task** for a job that allows you to back up a specific PostgreSQL database and store it as a file. #### Tasks Configurations |Field| Values for This Example| Required/Optional | Description| | :--- | :--- | :--- | :--- | | `Task Name`| `pg-backup-task`| Required| Enter a name for the task| -| `Task Description`| `This task performs a backup of a specific PostgreSQL database and save it as a file and stores the file path as a output variable.` | Optional | Short description for the task| +| `Task Description`| `This task performs a backup of a specific PostgreSQL database and saves it as a file, and stores the file path as an output variable.` | Optional | Short description for the task| | `Task Type` | `Shell`| Optional| Select the preferred task type | | `Input variables`| Refer the [Input Variable table](#input-variable-table) below | Optional|

These variables provide dynamic values to the script at the time of execution and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| | `Trigger/Skip condition` | `Trigger If: DB_NAME == prod-db`| Optional| A conditional statement to execute or skip the task| | `Script`| Refer the [Script](#script) below| Required| Custom script for executing Job tasks| -| `Output directory path` | `/backups`| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| -| `Output variables`| Refer the [output variable](#output-variables) table| Optional|

Output variables stores the output as variables and these variables can be used as input variables for the next task.

  • [Pass/Failure Condition](#pass-fail-condition) (Optional): Conditional statements to determine the success/failure of the task. A failed condition stops the execution of the next task and/or build process
| +| `Output directory path` | `/backups`| Optional| Directory path where output files such as logs, errors, etc., will be available after the execution.| +| `Output variables`| Refer to the [output variable](#output-variables) table| Optional|

Output variables store the output as variables, and these variables can be used as input variables for the next task.

  • [Pass/Failure Condition](#pass-fail-condition) (Optional): Conditional statements to determine the success/failure of the task. A failed condition stops the execution of the next task and/or build process
| #### Input Variable Table @@ -155,13 +155,13 @@ Let's take an example of a **Shell task** for a job that allows you to back up a | `DB_HOST`| String | `localhost`| PostgreSQL server hostname| | `BACKUP_PATH`| String | `/backup`| Directory path where the backup file is saved| -* To add a input variable, click **+ Add Variable** next to the **Input Variable**, a new table appear asking you to enter the variable and its required information. +* To add an input variable, click **+ Add Variable** next to the **Input Variable**, a new table appears asking you to enter the variable and its required information. * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
![Figure 6a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) -* You can click the slider icon next to each variable name to make it's value required and add a description for it. +* You can click the slider icon next to each variable name to make its value required and add a description for it. ![Figure 6b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) @@ -203,12 +203,12 @@ BACKUP_FILE_PATH="/backups/$DB_NAME-$(date +%F).backup" # Backup PostgreSQL database pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" -F c -b -v -f "$BACKUP_FILE_PATH" -# Check if backup was successful +# Check if the backup was successful if [ $? -eq 0 ]; then BACKUP_STATUS="success" echo "Backup completed successfully. File path: $BACKUP_FILE_PATH" echo "BACKUP_STATUS=$BACKUP_STATUS" # Set the output variable - echo "BACKUP_FILE_PATH=$BACKUP_FILE_PATH" # Set the backup file path as output variable + echo "BACKUP_FILE_PATH=$BACKUP_FILE_PATH" # Set the backup file path as an output variable else BACKUP_STATUS="failure" echo "Backup failed." @@ -229,11 +229,11 @@ fi PASS If: `BACKUP_STATUS == success` PASS If: `BACKUP_FILE_PATH != ""` -After adding this backup task, you can add more tasks as well, for example, you can add a task to upload the backup files to cloud storage (e.g., AWS S3) or sending a notification about the backup status.These additional tasks can use the output variable `BACKUP_FILE_PATH` to access the backup file generated in the first task. +After adding this backup task, you can add more tasks as well, for example, you can add a task to upload the backup files to cloud storage (e.g., AWS S3) or send a notification about the backup status. These additional tasks can use the output variable `BACKUP_FILE_PATH` to access the backup file generated in the first task. #### Example - Container Image Task -Let's take an example of a **Container Image Task** for a job that provision an AWS s3 bucket using terraform. Here instead of installing dependencies (such as terraform), this task pulls the official terraform image (hashicorp/terraform:1.5.0) in which our task will execute. This means a container will be created inside the job pod and runs terraform commands inside the container thus avoiding the need to install dependencies manually each time. +Let's take an example of a **Container Image Task** for a job that provisions an AWS S3 bucket using Terraform. Here, instead of installing dependencies (such as terraform), this task pulls the official terraform image (hashicorp/terraform:1.5.0) in which our task will execute. This means a container will be created inside the job pod and runs terraform commands inside the container, thus avoiding the need to install dependencies manually each time. #### Tasks Configurations @@ -241,7 +241,7 @@ Let's take an example of a **Container Image Task** for a job that provision an | :---|:---|:---|:---| | `Task name`| `provision-s3-bucket`| Required|Enter a name for the task| | `Description`| Provision an S3 bucket with Terraform| Optional| A descriptive message for the task| -| `Task type`| `Container Image`| Optional| Allows you to execute commands and scripts inside a custom docker container| +| `Task type`| `Container Image`| Optional| Allows you to execute commands and scripts inside a custom Docker container| | `Input variables`| Refer the [Input Variable table](#input-variable-table-1) below | Optional|

These variables provide dynamic values to the script and are defined directly in the UI.

  • Variable name: Alphanumeric chars and (_) only
  • Source or input value: The variable's value can be global, output from the previous task, or a custom value.
    Accepted data types include: STRING
| | `Trigger/Skip condition`| `TF_ENV == "prod"`| Optional| Execute or skip the task based on the condition provided.| | `Container image`| `hashicorp/terraform:1.5.0`| Required| Select an image from the drop-down list or enter a custom value in the format `:`| @@ -249,7 +249,7 @@ Let's take an example of a **Container Image Task** for a job that provision an | `Command`| `sh`| Optional|Mention commands to execute inside the container| | `Args`| `/run.sh`| Optional| The arguments to be passed to the command mentioned in the command field| | `Port mapping`| `No`| Optional| The port number on which the container listens. The port number exposes the container to outside services.| -| `Mount code to container`| `yes`| Optional| Mounts the source code (configured git repository) inside the container. Default is "No". If set to "Yes", enter the path where the source should be mounted inside the container.| +| `Mount code to container`| `yes`| Optional| Mounts the source code (configured git repository) inside the container. The default is "No". If set to "Yes", enter the path where the source should be mounted inside the container.| | `Mount directory from host` |`No`| Optional| Mount any directory from the host into the container. This can be used to mount code or even output directories.| | `Output directory path`|`No`| Optional| Directory path where output files such as logs, errors, etc. will be available after the execution.| @@ -260,13 +260,13 @@ Let's take an example of a **Container Image Task** for a job that provision an | `AWS_REGION`| String | `us-east-1`| AWS region where the bucket will be created. | | `BUCKET_NAME` | String | `my-app-logs-bucket` | Name of the S3 bucket to create.| -* To add a input variable, click **+ Add Variable** next to the `Input Variable`, a new table appear asking you to enter the variable and its required information. +* To add an input variable, click **+ Add Variable** next to the `Input Variable`, a new table appears asking you to enter the variable and its required information. * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
![Figure 7a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) -* You can click the slider icon next to each variable name to make it's value required and add a description for it. +* You can click the slider icon next to each variable name to make its value required and add a description for it. ![Figure 7b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) @@ -296,7 +296,7 @@ echo "S3_BUCKET_NAME=$(terraform output -raw bucket_name)" ``` {% endcode %} -In the above script, instead of writing the entire terraform scripts for provisioning the s3 bucket, we have stored the scripts `main.tf` and `variable.tf` in the Github Repository configured as Source code. By enabling `mount code to container`, the source code (configured Git Repository) is now mounted inside the container as well and available at `/sourcecode`. This approach avoids the need to rewrite the same scripts multiple times for each task, thus making the scripts reusable and efficient across multiple jobs. +In the above script, instead of writing the entire Terraform script for provisioning the S3 bucket, we have stored the script `main.tf` and `variable.tf` in the Github Repository configured as Source code. By enabling `mount code to container`, the source code (configured Git Repository) is now mounted inside the container as well and available at `/sourcecode`. This approach avoids the need to rewrite the same scripts multiple times for each task, thus making the scripts reusable and efficient across multiple jobs. **main.tf Script (Stored in Github repository)** @@ -338,11 +338,11 @@ variable "region" { ``` {% endcode %} -After adding this s3 provisioner task, you can add more tasks as well, for example, you can add a task to add a bucket policy or sending a notification to slack or email that s3 bucket is provisioned successfully. +After adding this S3 provisioner task, you can add more tasks as well, for example, you can add a task to add a bucket policy or send a notification to slack or email that s3 bucket is provisioned successfully. -6. After configuring the tasks, Choose the environment in which you want the job to be executed. +6. After configuring the tasks, choose the environment in which you want the job to be executed. -7. Select **Create Pipeline** and a job pipeline will be created. +7. Select **Create Pipeline**, and a job pipeline will be created. --- @@ -350,7 +350,7 @@ After adding this s3 provisioner task, you can add more tasks as well, for examp {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -373,7 +373,7 @@ To update your job pipeline {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -395,4 +395,4 @@ To delete a job pipeline --- -After creating the pipeline, you can configure [ConfigMaps](./configmap-secret/configmap-job.md) (optional) and [Secrets](./configmap-secret/secret-job.md) (optional) and [Environment overrides](./environment-override-job.md) (optional) before triggering it. \ No newline at end of file +After creating the pipeline, you can configure [ConfigMaps](./configmap-secret/configmap-job.md) (optional) and [Secrets](./configmap-secret/secret-job.md) (optional) and [Environment overrides](./environment-override-job.md) (optional) before triggering it. From 65e33f2ec056d06cb91128734938cb0dc1140eb8 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 16:08:54 +0530 Subject: [PATCH 26/33] fixes in create-job.md --- docs/user-guide/jobs/create-job.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index c1d08246f..792f3716f 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -1,6 +1,6 @@ # Create Job -In devtron, jobs can be created by two ways: +In Devtron, jobs can be created in two ways: * **Blank Job**: This allows you to create a new job from scratch by manually defining all configurations. @@ -12,7 +12,7 @@ In devtron, jobs can be created by two ways: {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -75,7 +75,7 @@ To create a new **Clone Job** in Devtron, follow these steps: {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} @@ -83,13 +83,13 @@ To delete a job: 1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. -2. To delete the job, you have to first delete any configured pipelines in the jobs. +2. To delete the job, you have to first delete any configured pipelines in the job workflow. ### Delete job pipelines * Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. - * Select the job pipeline you wish to delete, a edit job pipeline modal window will appear. + * Select the job pipeline you wish to delete, and an edit job pipeline modal window will appear. ![Figure 3a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) @@ -111,4 +111,4 @@ To delete a job: --- -After creating a job, the next step is to configure the job, refer the [Configurations](./configurations/README.md) section to configure the job. \ No newline at end of file +After creating a job, the next step is to configure the job. Refer to the [Configurations](./configurations/README.md) section to configure the job. From d5b6800103c026ba2c4dc36a3872b9c13f47d112 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 16:10:38 +0530 Subject: [PATCH 27/33] fixes in overview-job.md --- docs/user-guide/jobs/overview-job.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 7df4d1685..d9ccf10cc 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -1,6 +1,6 @@ # Overview -The Overview page provides a centralized view of a job’s details within Devtron. It allows users to quickly access information about the job, manage tags, view job pipelines — all in a single, organized interface. +The Overview page provides a centralized view of a job’s details within Devtron. It allows users to quickly access information about the job, manage tags, and view job pipelines — all in a single, organized interface. ![Figure 1a: Job's overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) @@ -55,15 +55,15 @@ To add or update the **Readme**: ### Catalog [![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/elements/EnterpriseTag.svg)](https://devtron.ai/pricing) -The **Catalog** in the **About** section displays information about your job—such as Container port, Environment Variables, Arguments, Resources(CPU and RAM) This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). +The **Catalog** in the **About** section displays information about your job, such as Container port, Environment Variables, Arguments, Resources(CPU and RAM). This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). ![Figure 3a: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) -You can use the **Catalog framework** to maintain information about your job such as Environment Variables, Resources(CPU and RAM), service documentations etc. This makes it easier for others to understand, manage and use your job. +You can use the **Catalog framework** to maintain information about your job, such as Environment Variables, Resources(CPU and RAM), service documentation, etc. This makes it easier for others to understand, manage, and use your job. `Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron applications. -When you click the **Edit** icon, a form appears based on the defined schema. As an job owner, you can fill out fields like: +When you click the **Edit** icon, a form appears based on the defined schema. As a job owner, you can fill out fields like: * Container port (e.g., API contract, service documentation) * Environment Variables * Arguments @@ -89,7 +89,7 @@ The Job Pipelines section provides a detailed view of all job pipelines. For eac | :--------- |:--------- | | Pipeline name |Name of the job pipeline.| | Last Run Status|Displays the status of the most recent job execution| -| Run in environment | Displays the name of the environment in which job is executed. | +| Run in environment | Displays the name of the environment in which the job is executed. | | Last Run AT| Displays how long ago the job was last triggered.| ![Figure 4: Job Pipelines](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) From 370b545d26277e4372831e6083397307a479f2ea Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 16:12:25 +0530 Subject: [PATCH 28/33] fixes in run-history-job.md --- docs/user-guide/jobs/run-history-job.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index c9ee1f139..be021ae60 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -1,22 +1,22 @@ # Run History -The run history allows you to review each and every execution of job-pipelines. Here you can review who triggered each pipeline, when it started executing and finished, and whether it succeeded or failed. It also allows you to inspect logs for each execution. +The run history allows you to review every execution of job pipelines. Here you can review who triggered each pipeline, when it started executing and finished, and whether it succeeded or failed. It also allows you to inspect logs for each execution. ## Accessing run history for specific pipeline {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} -Either you have just executed the job and want to inspect live execution or you just want to check previous executions of a job pipeline +Either you have just executed the job and want to inspect the live execution, or you just want to check previous executions of a job pipeline -1. Navigate to **Run History** tab of your job, all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from **Select Pipeline** dropdown in the top-left corner. +1. Navigate to the **Run History** tab of your job, and all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from the **Select Pipeline** dropdown in the top-left corner. ![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) -2. Select the specific execution you want to inspect. By default the latest execution is selected. +2. Select the specific execution you want to inspect. By default, the latest execution is selected. ![Figure 1b: Select specific execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) @@ -35,7 +35,7 @@ Either you have just executed the job and want to inspect live execution or you Apart from these details, you can also inspect logs, source code, security, and download artifacts (if any). ### Logs - * In logs tab, you can inspect logs for each pipeline stage and task along with their runtime. + * In the logs tab, you can inspect logs for each pipeline stage and task along with their runtime. * Use the `Search log` search bar to search specific keywords or errors. * You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. * Select the fullscreen button in the bottom-right corner to view logs in fullscreen. @@ -43,9 +43,9 @@ Apart from these details, you can also inspect logs, source code, security, and ![Figure 2a: Logs](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) ### Source - The source tab shows which commit is from the source code (configured Git repository) is used to execute the job pipeline. + The source tab shows which commit is from the source code (configured Git repository) that is used to execute the job pipeline. - It shows following commit details + It shows the following commit details |Field|Description| |:---|:---| |`Repository name & icon` |The Git repo used with its provider logo| @@ -66,4 +66,4 @@ Apart from these details, you can also inspect logs, source code, security, and --- -After inspecting run history you can also setup the [Job Overview](./overview-job.md) so that others can easily use the job in future. \ No newline at end of file +After inspecting the run history, you can also set up the [Job Overview](./overview-job.md) so that others can easily use the job in the future. From 2c38482ed3eaa76bcb73311c0fd0d01605dbf36c Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 16:13:41 +0530 Subject: [PATCH 29/33] fixes in triggering-job.md --- docs/user-guide/jobs/triggering-job.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index a57f034f8..f47c4039b 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -1,24 +1,24 @@ # Triggering Job Pipeline -After creating the job pipeline, the next step is to trigger the job pipeline. This is the step where the job will executed in the selected environment. +After creating the job pipeline, the next step is to trigger the job pipeline. This is the step where the job will be executed in the selected environment. -To trigger the job-pipeline: +To trigger the job pipeline: {% hint style="warning" %} ### Who Can Perform This Action? -Users need to have **Admin role** or **Super Admin role**. +Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} -1. Navigate to the **Trigger Job** tab of your job, which list all configured pipelines. +1. Navigate to the **Trigger Job** tab of your job, which lists all configured pipelines. ![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) -2. Select **Select Material** for the job-pipeline you wish to execute, a modal window will open, under **Code-source** tab, this window lists all recent commits along with their hash, author, date, and message. from your configured source repository. +2. Select **Select Material** for the job pipeline you wish to execute. A modal window will open, under the **Code-source** tab, this window lists all recent commits along with their hash, author, date, and message from your configured source repository. ![Figure 1b: Select material for specific pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) -3. Select the commit you want to use in the job execution. You can use the search bar to filter the commits hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. +3. Select the commit you want to use in the job execution. You can use the search bar to filter the commit hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. ![Figure 1c: Select commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) @@ -36,6 +36,6 @@ Refer the [User permissions](../global-configurations/authorization/user-access. --- -After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source,artifacts)in [run-history](./run-history.md) either by navigating to **Run History** tab or by clicking `details` above the **Select Material** of the specific pipeline. +After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source, artifacts)in [run-history](./run-history.md) either by navigating to **Run History** tab or by clicking `details` above the **Select Material** of the specific pipeline. -![Figure 2: Job status](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) \ No newline at end of file +![Figure 2: Job status](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) From 65860d13eac0a5e72e7f79384530826ae4175be1 Mon Sep 17 00:00:00 2001 From: Arpit Agrawal Date: Thu, 5 Jun 2025 16:14:28 +0530 Subject: [PATCH 30/33] fixes in what-is-job.md --- docs/user-guide/jobs/what-is-job.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/jobs/what-is-job.md b/docs/user-guide/jobs/what-is-job.md index eda634487..639c4afaa 100644 --- a/docs/user-guide/jobs/what-is-job.md +++ b/docs/user-guide/jobs/what-is-job.md @@ -1,8 +1,8 @@ # What is Jobs? -Devtron Jobs provide a streamlined way to execute specific tasks or set of tasks defined by the user within the user's application environment. +Devtron Jobs provides a streamlined way to execute specific tasks or a set of tasks defined by the user within the user's application environment. -Unlike Devtron CI/CD pipelines that primarily focus on building, testing, and deploying applications, Devtron Jobs are designed to handle independent, ephemeral tasks and allows you to execute tasks without impacting Ci/CD workflows or pipelines, making them ideal for specific tasks. +Unlike Devtron CI/CD pipelines that primarily focus on building, testing, and deploying applications, Devtron Jobs are designed to handle independent, ephemeral tasks and allows you to execute tasks without impacting CI/CD workflows or pipelines, making them ideal for specific tasks. Each Devtron Job corresponds to a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) that creates one or more Pods to carry out the specific task. Once the task is completed, the Pods are terminated, making Devtron Jobs an ideal solution for one-time, recurring, or event-driven workloads. @@ -14,6 +14,6 @@ Jobs can be configured to run as: * **Event-driven tasks**: Triggered by specific events such as commits, pull requests, or tag creation. -Devtron Jobs support executing custom tasks or predefined operations using integrated pipeline plugins. These plugins extend job functionality by enabling tasks such as code scanning, image signing, vulnerability patching, container image copying, and external automation through tools like Ansible and Bitbucket Runners. To explore the full list of supported plugins and their configuration options, refer to the [Devtron Plugin Documentation](/docs/user-guide/plugins/README.md). +Devtron Jobs supports executing custom tasks or predefined operations using integrated pipeline plugins. These plugins extend job functionality by enabling tasks such as code scanning, image signing, vulnerability patching, container image copying, and external automation through tools like Ansible and Bitbucket Runners. To explore the full list of supported plugins and their configuration options, refer to the [Devtron Plugin Documentation](/docs/user-guide/plugins/README.md). -To learn how to create a new Job in Devtron, continue to the [Create a new job](./create-job.md) section. \ No newline at end of file +To learn how to create a new Job in Devtron, continue to the [Create a new job](./create-job.md) section. From 36866c8de322f09c2304d540d9452074973805f6 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Wed, 25 Jun 2025 03:04:30 +0530 Subject: [PATCH 31/33] docs: incorporated the suggested changes + fixes --- docs/SUMMARY.md | 4 +- docs/user-guide/jobs/README.md | 2 +- .../configmap-secret/configmap-job.md | 40 +++++++-------- .../configmap-secret/secret-job.md | 44 ++++++++-------- .../environment-override-job.md | 36 +++++++------ .../jobs/configurations/source-code-job.md | 24 ++++----- .../configurations/workflow-editor-job.md | 50 +++++++++---------- docs/user-guide/jobs/create-job.md | 40 +++++++-------- docs/user-guide/jobs/overview-job.md | 22 ++++---- docs/user-guide/jobs/run-history-job.md | 16 +++--- docs/user-guide/jobs/triggering-job.md | 18 +++---- 11 files changed, 147 insertions(+), 149 deletions(-) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index eb8b76826..eb4772ea4 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -107,8 +107,8 @@ * [Deployment Visibility & Actions](user-guide/creating-application/deployment-visibility.md) * [Application Overview](user-guide/creating-application/overview.md) * [Jobs](user-guide/jobs/README.md) - * [What is job?](user-guide/jobs/what-is-job.md) - * [Create a new job](user-guide/jobs/create-job.md) + * [What is Job?](user-guide/jobs/what-is-job.md) + * [Create a New Job](user-guide/jobs/create-job.md) * [Configurations](user-guide/jobs/configurations/README.md) * [Source Code](user-guide/jobs/configurations/source-code-job.md) * [Workflow Editor](user-guide/jobs/configurations/workflow-editor-job.md) diff --git a/docs/user-guide/jobs/README.md b/docs/user-guide/jobs/README.md index 01fda2a50..4b7e60555 100644 --- a/docs/user-guide/jobs/README.md +++ b/docs/user-guide/jobs/README.md @@ -13,7 +13,7 @@ To learn more about how Jobs work, see the sections below * [Source Code](./configurations/source-code-job.md) - * [Workflow editor](./configurations/workflow-editor-job.md) + * [Workflow Editor](./configurations/workflow-editor-job.md) * [ConfigMaps & Secrets](./configurations/configmap-secret/README.md) diff --git a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md index a03b58f17..80b44f7c1 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/configmap-job.md @@ -12,19 +12,19 @@ Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} -1. Go to the **Configurations** → **ConfigMaps & Secrets**. +1. Go to **Configurations** → **ConfigMaps & Secrets**. -![Figure 1a: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap.jpg) +![Figure 1: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap.jpg) 2. Click the **+** button next to **ConfigMaps**. -![Figure 1b: Create ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-add.jpg) +![Figure 2: Creating ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-add.jpg) 3. Enter a name for the ConfigMap (Once defined, the name cannot be changed later). In case you are using an External Kubernetes ConfigMap, the name should be exactly the same as the name given using the `kubectl create configmap ` command. -![Figure 1c: Enter ConfigMap name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-name.jpg) +![Figure 3: Entering ConfigMap Name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-name.jpg) 4. **Data Type** - Choose between the following data types: @@ -32,7 +32,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. * **Kubernetes External ConfigMap**: Select the Data Type as Kubernetes External ConfigMap if you have already created a ConfigMap using the kubectl command and want to use that in Devtron. - ![Figure 1d: ConfigMap data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) + ![Figure 4: ConfigMap Data Type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-type.jpg) 5. After selecting the data type, you can choose how to mount the data of your ConfigMap. Devtron allows you to mount ConfigMap Data in the following ways:

**Mount data as** - Select how you want to mount the ConfigMap: @@ -40,9 +40,9 @@ Refer the [User permissions](../global-configurations/authorization/user-access. * [**Data Volume**](#mount-data-as-data-volume) – Select this option if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. - ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) + ![Figure 5: Mounting Data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-mount-data.jpg) - ### Mount data as environment variables + ### Mount Data as Environment Variables This will pass your ConfigMap data into your Job pod as environment variables, thus making the configuration values directly accessible by your job. @@ -52,29 +52,29 @@ Refer the [User permissions](../global-configurations/authorization/user-access. * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. - ![Figure 2a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-gui.jpg) + ![Figure 6: Entering Data in 'GUI' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![Figure 2b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-yaml.jpg) + ![Figure 7: Entering Data in 'YAML' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-env-var-yaml.jpg) #### For Kubernetes External ConfigMap If you have selected Data type as `Kubernetes External ConfigMap`, then no data is required, as devtron will fetch the external ConfigMap data and use it to create a ConfigMap. - ![Figure 3: Kubernetes External ConfigMap for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-env.jpg) + ![Figure 8: Kubernetes External ConfigMap for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-env.jpg) - ### Mount data as Data Volume + ### Mount Data as Data Volume This option allows you to create a ConfigMap by passing the content of a file. The content could be plain text, json, yaml, bash script, etc. - ![Figure 4a: Mount Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol.jpg) + ![Figure 9: Mounting Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol.jpg) ### Volume Mount Path Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. - ![Figure 4b: Volume Mount Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-mount-path.jpg) + ![Figure 10: Volume Mount Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-mount-path.jpg) ### Set Sub Path @@ -84,7 +84,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. * If **Set Sub Path** is disabled (unchecked), the system will delete any files already present in the [specified path](#volume-mount-path) and then mount the new files. - ![Figure 4b: Set Sub Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-subpath.jpg) + ![Figure 11: Setting Sub Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-subpath.jpg) {% hint style="info" %} ### Note @@ -96,7 +96,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. The **Set File Permission** option applies permissions at the ConfigMap level, not to individual keys within the ConfigMap. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. - ![Figure 4c: Set File Permission](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-file-per.jpg) + ![Figure 12: Setting File Permission](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-set-file-per.jpg) The 3-digit numeric value represents the permission settings for the file: @@ -127,17 +127,17 @@ Refer the [User permissions](../global-configurations/authorization/user-access. * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. - ![Figure 5a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-gui.jpg) + ![Figure 13: Entering Data in 'GUI' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![Figure 5b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-yaml.jpg) + ![Figure 14: Entering Data in 'YAML' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-vol-yaml.jpg) #### For Kubernetes External ConfigMap If you have selected Data type as `Kubernetes External ConfigMap`, then no data is required as devtron will fetch the external ConfigMap along with any volumes attach with it and use it to create a ConfigMap. - ![Figure 6a: Kubernetes External ConfigMap for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-data-vol.jpg) + ![Figure 15: Kubernetes External ConfigMap for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-data-external-data-vol.jpg) 6. Select **Save** to create a ConfigMap. @@ -157,7 +157,7 @@ Refer the [User permissions](../global-configurations/authorization/user-access. 3. Click **Save Changes**. -![Figure 7a: Update ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-update.jpg) +![Figure 16: Updating ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-update.jpg) {% hint style="warning" %} ### Note @@ -184,7 +184,7 @@ You may delete a ConfigMap if not in use anymore. Once a ConfigMap is deleted, i 4. Confirm the deletion in the dialog box. -![Figure 8a: Delete ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-delete.jpg) +![Figure 17: Deleting ConfigMap](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/configmap-delete.jpg) --- diff --git a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md index b7c9bc06e..e536b6b4f 100644 --- a/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md +++ b/docs/user-guide/jobs/configurations/configmap-secret/secret-job.md @@ -1,6 +1,6 @@ # Secrets -Secrets and ConfigMaps are both used to store configurations, but there is one major difference between them: ConfigMaps store key-values in normal text format, whereas secrets store them in base64 encrypted form. Devtron hides the data of secrets for the normal users, and it is only visible to the users having edit permission. +Secrets are used to store configurations in base64 encrypted form. Devtron hides the data of secrets for the normal users, and it is only visible to the users having edit permission. Secret objects let you store and manage sensitive information, such as passwords, authentication tokens, and SSH keys. Embedding this information in secrets is safer and more flexible than putting it verbatim in a Pod definition or in a container image. @@ -16,17 +16,17 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a 1. Go to the **Configurations** → **Base Configurations**. -![Figure 1a: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret.jpg) +![Figure 1: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret.jpg) 2. Click the **+** button next to **Secrets**. -![Figure 1b: Create Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-add.jpg) +![Figure 2: Creating Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-add.jpg) 3. Enter a name for the Secret (Once defined, the name cannot be changed later). In case you are mounting an existing Kubernetes Secret, the name should be exactly the same as the name given using the `kubectl create secret ` command. -![Figure 1c: Enter secret name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-name.jpg) +![Figure 3: Entering Secret Name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-name.jpg) 4. **Data Type** - Choose between the following data types: @@ -38,7 +38,7 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a > `external-secrets` helm chart should be installed before setting up ESO; otherwise, the External Secret Operator (ESO) will not appear. Refer to the [External Secret Operator (ESO)](#external-secret-operator-eso) section to set up ESO -![Figure 1d: Secret data type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) +![Figure 4: Secret Data Type](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-type.jpg) **Note**: Devtron automatically converts secrets from various data types to Kubernetes Secrets. Regardless of the original data type, once the conversion is complete, the Pods can access the secrets in the same way as native Kubernetes Secrets. @@ -48,9 +48,9 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a * [**Data Volume**](#mount-data-as-data-volume) – Select this option if you want to configure a Data Volume that is accessible to Containers running in a pod and provide a Volume mount path. Go to [Data Volume](#mount-data-as-data-valume) to know more. - ![Figure 1e: Mount data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-data.jpg) + ![Figure 5: Mount Data as](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-data.jpg) - ### Mount data as environment variables + ### Mount Data as Environment Variables This will pass your secret data into your Job pod as environment variables, thus making the configuration values directly accessible by your job. @@ -60,11 +60,11 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. - ![Figure 2a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-gui.jpg) + ![Figure 6: Entering Data in 'GUI' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![Figure 2b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-yaml.jpg) + ![Figure 7: Entering Data in 'YAML' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-env-var-yaml.jpg) ### Mount Existing Kubernetes Secrets @@ -72,7 +72,7 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a If you have selected Data type as `Mount Existing Kubernetes Secrets`, then no data is required, as Devtron will fetch the existing Secret data and use it to create a Secret. - ![Figure 3a: Mount Existing Kubernetes Secrets for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) + ![Figure 8: Mounting Existing Kubernetes Secrets for 'Environment Variable'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-env-var.jpg) --- @@ -81,19 +81,19 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a This option allows you to create a Secret by passing the content of a file. The content could be plain text, json, yaml, bash script, etc. -![Figure 4a: Mount Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol.jpg) +![Figure 9: Mounting Data as Data Volume](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol.jpg) ### Volume Mount Path Enter the folder path where the data volume should be mounted for it to be accessible to the containers running in a pod. Your keys will be mounted as files to that volume. -![Figure 4b: Volume Mount Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-mount-path.jpg) +![Figure 10: Volume Mount Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-mount-path.jpg) ### Set Sub Path When mounting multiple files to the same location, you can use the **Set Sub Path** option to control how the files are handled. This setting allows you to control whether existing files are overwritten or preserved when mounting new files. -![Figure 4b: Set Sub Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-sub-path.jpg) +![Figure 11: Setting Sub Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-sub-path.jpg) * If **Set Sub Path** is enabled, the system will preserve existing files in the [specified path](#volume-mount-path) and append the new file using the file name as a sub-path. @@ -109,7 +109,7 @@ In case of External Secrets, manually specify the keys that should be mounted as The **Set File Permission** option applies permissions at the Secret level, not to its individual secret keys. Enabling this option will let you enter a 3-digit standard permission value to control access to the file. -![Figure 4c: Set File Permission](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-file-per.jpg) +![Figure 12: Setting File Permission](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-file-per.jpg) The 3-digit numeric value represents the permission settings for the file: @@ -133,23 +133,23 @@ For example, **755** means: If you have selected Data type as `Kubernetes Secret` and mount data as `Data Volume`, then you also need to enter the required data (key-value pairs) in the **Data** field. -The key of the Secret should be your filename, and the value of the Secret should be your file content. In the below example, you `file.json` is the key, and the json content is the value of that Secret (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). +The key of the Secret should be your filename, and the value of the Secret should be your file content. In the below example, you `file.json` is the key, and the JSON content is the value of that Secret (below the pipe (**|**) symbol). This file will be created on your specified [volume mount path](#volume-mount-path). Enter data in: * **GUI mode** – User-friendly interface. Click the **+Add** button and enter the **Key** and **Value** fields without quotes. - ![Figure 5a: Enter data in 'GUI' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-gui.jpg) + ![Figure 13: Entering Data in 'GUI' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-gui.jpg) * **YAML mode** – Raw YAML for entering key-value pairs in the format **`key: value`**. Boolean and numeric values must be wrapped in double quotes. - ![Figure 5b: Enter data in 'YAML' mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-yaml.jpg) + ![Figure 14: Entering Data in 'YAML' Mode](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-data-vol-yaml.jpg) #### For Mount Existing Kubernetes Secrets This option allows you to mount an existing Kubernetes Secret in your job pods as data volumes. A Secret will not be created by the system, so please ensure that the secret with the same name already exists within the namespace. Otherwise, the deployment will fail.

If you have selected Data type as `Mount Existing Kubernetes Secrets`, then no data is required as Devtron will fetch the existing Secret data and use it to create a Secret. -![Figure 6a: Mount Existing Kubernetes Secrets for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-data-vol.jpg) +![Figure 15: Mounting Existing Kubernetes Secrets for 'Data Volume'](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-mount-existing-data-vol.jpg) --- @@ -167,7 +167,7 @@ Refer the [User permissions](../../../global-configurations/authorization/user-a 3. Click **Save Changes**. -![Figure 7a: Update secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-update.jpg) +![Figure 16: Updating Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-update.jpg) {% hint style="warning" %} ### Note @@ -194,7 +194,7 @@ You may delete a Secret if not in use anymore. Once a Secret is deleted, it will 4. Confirm the deletion in the dialog box. -![Figure 8a: Delete secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) +![Figure 17: Deleting Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/secret-delete.jpg) --- @@ -221,7 +221,7 @@ External Secrets Operator (ESO) is a Kubernetes component that integrates with e 2. Search for the `external-secrets` chart. - ![Figure 9a: Searching External Secrets Chart](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/external-secret.jpg) + ![Figure 18: Searching External Secrets Chart](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/external-secret.jpg) {% hint style="info" %} ### What if the external-secrets chart is not found? @@ -230,7 +230,7 @@ Manually add the following chart repository URL in Devtron: `https://charts.exte 3. Give a name to the helm app that will be created from the chart. Also, enter the project and environment where you wish to install the chart. - ![Figure 9b: Adding Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/ext-secret-fields.jpg) + ![Figure 19: Adding Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/secrets/ext-secret-fields.jpg) 4. Click **Deploy Chart**. diff --git a/docs/user-guide/jobs/configurations/environment-override-job.md b/docs/user-guide/jobs/configurations/environment-override-job.md index d39090d00..ed6f43bed 100644 --- a/docs/user-guide/jobs/configurations/environment-override-job.md +++ b/docs/user-guide/jobs/configurations/environment-override-job.md @@ -2,13 +2,11 @@ The Environment Overrides section allows you to customize the **ConfigMaps**, and **Secrets** for different environments such as development, testing, staging, and production, and it even allows you to create additional **ConfigMaps**, and **Secrets** (if required) for different environments -## How it works +## How it Works ? -* When you add a job pipeline to a job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. +* When you add a job pipeline to a job's workflow, each environment configuration initially inherits the ConfigMap and Secret from the **Base Configurations** of the job. -* The **Environment Overrides** section lets you customize the ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic. - -* The **Environment Overrides** section also lets you create additional ConfigMaps and Secrets per environment without affecting those of other environments. For example, a testing environment may require additional ConfigMaps and Secrets for temporary or test-specific configurations, while a production environment uses only the base ConfigMaps and Secrets needed for running the application. +* The **Environment Overrides** section lets you customize the ConfigMap and Secret per environment without affecting those of other environments. For example, in a non-production environment, you might allocate `100m` CPU, while in production, you may increase it to `500m` to handle higher traffic, or you can add additional ConfigMaps and Secrets for testing environments, while production uses only the base configurations needed to run the application --- @@ -22,15 +20,15 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce 1. In your job, go to **Configurations** → **Environment Overrides**. - ![Figure 1a: Environment Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) + ![Figure 1: Environment Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over.jpg) 2. Click **Add Environment** and select an environment from the dropdown for which you want your configurations to be modified. - ![Figure 1b: Add Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) + ![Figure 2: Adding Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-env.jpg) 3. The environment will be added under **Environment Override**. If you wish, you can add more environments by clicking **Add Environment**. - ![Figure 1c: Select Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) + ![Figure 3: Selecting Environment](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-env-added.jpg) 4. Click on the environment you have added under **Environment Override**, you will get the following options (similar to the **ConfigMaps & Secrets** page): @@ -38,13 +36,13 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce * **Secrets** - ![Figure 1d: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) + ![Figure 4: ConfigMaps & Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-view.jpg) 5. You can now do one of the following: - * Override the existing **ConfigMap & Secrets** which are being inherited from the base configurations specific to the selected environment. + * Override the existing **ConfigMap & Secrets** which are being inherited from the base configurations specific to the selected environment. - * Create additional **ConfigMap & Secrets** specific to the selected environment. + * Create additional **ConfigMap & Secrets** specific to the selected environment. Let's see how to override the values of ConfigMaps & Secrets for the selected environment. @@ -56,17 +54,17 @@ If you want to have environment-specific **ConfigMaps & Secrets**, use **Environ 1. Under the selected environment, select the **ConfigMap** or **Secret** you wish to override; by default, the ConfigMap or Secret is inherited from the base configuration. - ![Figure 2a: Select ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) + ![Figure 5: Selecting ConfigMap or Secrets](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-select-config-secret.jpg) 2. To create Override, select the **No Override** tab and click the **Create Override** button. - ![Figure 2b: Create Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) + ![Figure 6: Creating Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-create-override.jpg) 3. In the same tab (now labelled as **Override**), you can now change the configuration of your ConfigMap or Secret that will be specific to the selected environment. **Note** Except `Name` cannot be changed for ConfigMaps & Secrets that are inherited from the base configuration. - ![Figure 2c: Override ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) + ![Figure 7: Overriding ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-config-override.jpg) 4. Override the data values using [Replace](#replace-strategy) merge strategy. @@ -94,11 +92,11 @@ To create additional ConfigMaps & Secrets, follow the given steps 1. Under the selected environment, click the `+` button next to ConfigMap or Secret. - ![Figure 3a: Add ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) + ![Figure 8: Adding ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-config-secret.jpg) 2. A configuration tab will open (which was previously named override) to add a new **ConfigMap** or **Secret**. - ![Figure 3b: Configure ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) + ![Figure 9: Configuring ConfigMap or Secret](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-add-view.jpg) Follow the guide below to create a ConfigMap or Secret: @@ -108,7 +106,7 @@ To create additional ConfigMaps & Secrets, follow the given steps 3. Once created, a new ConfigMap or Secret will be added with a label `Created at environment` under its name, in the left section under ConfigMap or Secret, respectively. - ![Figure 3c: ConfigMap or Secret added](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) + ![Figure 10: ConfigMap or Secret added](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-new-added.jpg) --- @@ -120,11 +118,11 @@ This action will discard the current overrides, and the base configuration file 2. Click **Delete Override**. - ![Figure 4a: Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) + ![Figure 11: Deleting Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete.jpg) 3. Confirm the deletion in the dialog box. - ![Figure 4b: Confirm Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) + ![Figure 12: Confirming Delete Override](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/env-over-delete-dialog-box.jpg) --- diff --git a/docs/user-guide/jobs/configurations/source-code-job.md b/docs/user-guide/jobs/configurations/source-code-job.md index 1e6e274d8..ad0ca8735 100644 --- a/docs/user-guide/jobs/configurations/source-code-job.md +++ b/docs/user-guide/jobs/configurations/source-code-job.md @@ -14,28 +14,28 @@ To configure the Source Code, follow these steps: 2. Select the **Source Code** tab from the left sidebar. - ![Figure 1a: Select source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) + ![Figure 1: Selecting Source Code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code.jpg) 3. Under **Add Git Repository**, select the **Git Account** from the dropdown menu. You can also select `GitHub Public` from the same dropdown to configure a public repository that does not require authentication. - ![Figure 1b: Add git account](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) + ![Figure 2: Adding Git Account](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-git-account.jpg) 4. Enter the **Repository URL** in the Git Repo `URL` field, corresponding to the selected Git account.
If GitHub Public is selected, you can enter the URL of any public repository, as no authentication is required. - ![Figure 1c: Add git repository](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) + ![Figure 3: Adding Git Repository](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-repo-url.jpg) 5. Configure the [Additional Options](#configure-additional-options-optional) for the job as per your requirements. 6. Click on the **Save** button to save the changes. - ![Figure 1d: Save source code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) + ![Figure 4: Saving Source Code](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-save.jpg) --- ## Configure Additional Options (optional) -### Exclude specific file/folder in this repo +### Exclude Specific File/Folder in this Repo Devtron allows you to exclude specific files or folders from the repository from being included in the job execution. This is particularly useful for avoiding unnecessary files or folders that do not contribute to the job’s tasks that are not relevant to the current job execution. @@ -47,7 +47,7 @@ To define the exclusion or inclusion rules, follow these steps: 1. Check the **Exclude specific file/folder in this repo** checkbox. - ![Figure 2a: Exclude specific file/folder](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) + ![Figure 5: Excluding Specific File/Folder](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-exclude-files.jpg) 2. Enter the exclusion or inclusion rules in the **Enter file or folder paths to be included or excluded** field. @@ -64,14 +64,14 @@ To define the exclusion or inclusion rules, follow these steps: You may use the **Learn how** link (as shown below) to understand the syntax of defining an exclusion or inclusion rule. - ![Figure 2b: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) + ![Figure 6: 'Learn how' Button](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-learn-how.jpg) Since file paths can be long, Devtron supports regex too for writing the paths. To understand it better, you may click the **How to use** link as shown below. - ![Figure 2c: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) + ![Figure 7: Regex Support](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-regex.jpg) -### Set checkout path +### Set Checkout Path Devtron allows you to define a custom directory path where the repository will be checked out during job execution. By default, the repository is checked out to the root directory (./). However, you can set a custom path to specify a particular folder within the repository to be accessed and utilized during job execution. @@ -87,15 +87,15 @@ To set the checkout path, follow these steps: |`./src`|Checkout the repository to the src folder| |`./src/app`|Checkout the repository to the app folder inside the src folder| - ![Figure 3a: Checkout path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) + ![Figure 8: Checkout Path](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-checkout.jpg) -### Pull submodules recursively +### Pull Submodules Recursively This checkbox is used for pulling [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) present in a repo. The submodules will be pulled recursively, and the auth method used for the parent repo will be used for submodules too. To pull the submodules recursively, check the **Pull submodules recursively** checkbox. -![Figure 4a: Pull submodules recursively](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) +![Figure 9: Pulling Submodules Recursively](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/source-code-pull.jpg) --- diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 96447c532..2cc0e642e 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -13,21 +13,21 @@ Refer the [User permissions](../../global-configurations/authorization/user-acce 1. Navigate to the **Workflow Editor** in the left sidebar of the Job **Configuration** page. - ![Figure 1a: Select workflow editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) + ![Figure 1: Selecting Workflow Editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) 2. Click **+ Job Pipeline** to create a new Job workflow. A pop-up **Create job workflow** will appear, asking you to enter a name for your Job workflow. - ![Figure 1b: Add job workflow](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) + ![Figure 2: Adding Job Workflow](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-pipeline.jpg) 3. Enter the name for your Job workflow and click on the **Create Workflow** button. A new Job workflow will be created, in which you can add a job pipeline. - ![Figure 1c: Enter job workflow name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) + ![Figure 3: Entering Job Workflow Name](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-name.jpg) 4. To add a job pipeline to your workflow, click anywhere in the **Add job pipeline to this workflow** area under the job workflow name. This opens the **Create job pipeline** Window in which you can create and configure your job. - ![Figure 1d: Job workflow created](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) + ![Figure 4: Job Workflow Created](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-area.jpg) - ![Figure 1e: Create job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) + ![Figure 5: Creating Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-create-pipeline.jpg) --- @@ -45,7 +45,7 @@ It includes 2 stages This stage allows you to define primary configurations such as Pipeline name, Source Type, Branch Name, and how the job should be triggered. Refer to the following table to configure each field. -![Figure 2a: Configure job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-basic-config.jpg) +![Figure 6: Configuring Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-basic-config.jpg) | Field Name|Description| | :--- |:--- | @@ -55,7 +55,7 @@ This stage allows you to define primary configurations such as Pipeline name, So | `Branch Name`| Branch that triggers the CI build| | `Use remote cache`|

Enable this option to use the Docker cache from previous builds. Docker's layer caching mechanism allows unchanged docker images layers to be reused across pipeline runs, thus drastically reducing execution times

The globe toggle, next to Docker Layer Caching means that the configuration is inherited from global

  • Enabled: Inherits the caching settings defined globally.
  • Disabled: Allows you to define a pipeline-level configuration specific to this job.
| -### Tasks to be executed +### Tasks to be Executed The Stage allows you to define tasks for your job. @@ -67,13 +67,13 @@ To create a task: 2. Click **Add Task** to add a task in your job pipeline. - ![Figure 3a: Add task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) + ![Figure 7: Adding Task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) 3. A new task will be added (on the left side of the Create job pipeline window). You can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) - ![Figure 3b: Type of tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) + ![Figure 8: Type of Tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) -#### Create a Task using preset plugins +#### Create a Task Using Preset Plugins In Devtron, preset plugins are pre-defined tasks templates that helps you automate and execute common operations such as provisioning infrastructure, taking backups, exporting container images etc., without writing custom scripts. @@ -89,13 +89,13 @@ To create a task using the **GKE Provisioner** plugin, follow the steps below: 3. Search for `GKE Provisioner` in the **Search Plugin** Search bar and select **GKE Provisioner** from the list of plugins. - ![Figure 4a: Search 'Gke Provisioner' plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) + ![Figure 9: Searching 'Gke Provisioner' Plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke-search.jpg) * The right-side panel will display the fields specific to the **GKE Provisioner** plugin, which are required to be configured. * The left-side panel will now shows a task under **Tasks (IN ORDER OF EXECUTION)**, named after the selected plugin(by default), along with its logo.
You can change the task's name using the **Task name** field but plugin's logo will remain indicating that it is a preset plugin. - ![Figure 4b: Gke provisioner plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) + ![Figure 10: Gke Provisioner Plugin](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-gke.jpg) 4. Refer the [GKE Provisioner](/docs/user-guide/plugins/gke-provisioner.md) documentation to configure the **GKE Provisioner** fields with appropriate values. @@ -103,11 +103,11 @@ To create a task using the **GKE Provisioner** plugin, follow the steps below: 5. After configuring the fields successfully, your task will be created. If you wish, you can add more tasks by clicking on **+ Add task** in the left-side panel. -#### Create Task using Custom Script +#### Create Task Using Custom Script In Devtron, you can also define a task using a custom script to meet specific requirements. To create a task a task using a custom script, follow the steps below: -![Figure 5a: Execute custom task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-custom-task.jpg) +![Figure 11: Executing Custom Task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-custom-task.jpg) 1. After configuring the basic configurations, select the **Tasks to be executed** Tab. @@ -159,15 +159,15 @@ Let's take an example of a **Shell task** for a job that allows you to back up a * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
- ![Figure 6a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) + ![Figure 12: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) * You can click the slider icon next to each variable name to make its value required and add a description for it. - ![Figure 6b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) + ![Figure 13: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) * You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. - ![Figure 6b: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) + ![Figure 14: Adding choices](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) #### Script @@ -264,15 +264,15 @@ Let's take an example of a **Container Image Task** for a job that provisions an * You can click `+` icon next to **Variable** header field to add more rows to the input variable table.
- ![Figure 7a: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) + ![Figure 15: Variable configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-var-config.jpg) * You can click the slider icon next to each variable name to make its value required and add a description for it. - ![Figure 7b: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) + ![Figure 16: Value configuration](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-value-config.jpg) * You can click the slider icon next to each variable value to add choices, allow custom input, and ask value at runtime. - ![Figure 7c: Add choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) + ![Figure 17: Adding choice](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-choice.jpg) #### Mount Custom Code @@ -361,11 +361,11 @@ To update your job pipeline 2. Select the **Job pipeline** you wish to update, a **Edit job pipeline** modal window will appear. - ![Figure 7a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-select.jpg) + ![Figure 18: Selecting Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-select.jpg) 3. Change the required configurations as per your requirements and select **Update Pipeline** to update the pipeline - ![Figure 7b: Update job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-pipeline.jpg) + ![Figure 19: Updating Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-update-pipeline.jpg) --- @@ -383,15 +383,15 @@ To delete a job pipeline 2. Select the **Job pipeline** you wish to delete, a **Edit job pipeline** modal window will appear. - ![Figure 8a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) + ![Figure 20: Selecting Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) 3. Select **Delete Pipeline** at the bottom left corner of the **Edit job pipeline** modal window to delete the job pipeline. - ![Figure 8b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) + ![Figure 21: Deleting Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) 4. A pop-up window will appear asking you to confirm the **Delete Pipeline** action. - ![Figure 8c: Confirm Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) + ![Figure 22: Confirming Delete Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) --- diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 792f3716f..299c08bee 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -20,22 +20,22 @@ To create a new **Blank Job** in Devtron, follow these steps: 1. Navigate to **Devtron Dashboard** → **Jobs**. - ![Figure 1a: Job's page](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) + ![Figure 1: Job's Page](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/jobs.jpg) 2. Click **Create** button in the top-right corner and select **Job** from the drop-down list. - ![Figure 1b: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) + ![Figure 2: Selecting Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) 3. The **Create Job** page opens. From the left panel, select **Blank job**, then enter the required details as listed in the table below. | Fields| Description| |:---|:---| - | `Project`| User-defined name for the job in Devtron.| + | `Project`| Select the project from the dropdown.| | `Job Name`| User-defined name for the job in Devtron.| - | `Description` | Enter the description of a job.| - | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)
| + | `Description` | Enter the description for the job.| + | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)
| - ![Figure 1b: Blank job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) + ![Figure 3: Creating Blank Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) 4. Click **Create Job**. The job will be created, and you will be automatically redirected to the [Configurations page](/docs/user-guide/jobs/configurations/README.md)to continue setting up the job pipeline. @@ -50,22 +50,22 @@ Users need to have [Admin role](../global-configurations/authorization/user-acce To create a new **Clone Job** in Devtron, follow these steps: -1. From the **Devtron Dashboard** → **Jobs**. +1. From the Devtron Dashboard, navigate to **Jobs**. 2. Click the **Create** button in the top-right corner and select **Job** from the drop-down list. - ![Figure 2a: Select job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) + ![Figure 4: Selecting Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/select-create-job-latest.jpg) 3. The **Create Job** page opens. From the left panel, select **Clone Job**, then enter the required details as listed in the table below. | Fields| Description| |:---|:--- | - | `Project`| User-defined name for the job in Devtron.| + | `Project`| Select the project from the dropdown.| | `Job Name`| User-defined name for the job in Devtron.| | `Description`| Enter the description of a job.| - | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the propagation icon to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| - | `Select an job to clone` | Select the existing job from the dropdown that you want to clone.Enter the description of a job.| + | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| + | `Select an job to clone` | Select the existing job from the dropdown that you want to clone. Enter the description of a job.| - ![Figure 2b: Clone job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) + ![Figure 5: Creating Clone Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) 4. Click **Create Job**. The **Clone job** will be created, and you will be automatically redirected to the [Configurations page](/docs/user-guide/jobs/configurations/README.md), where the configuration will be pre-populated based on the selected source job. You may review and modify these settings as required. @@ -81,33 +81,33 @@ Refer the [User permissions](../global-configurations/authorization/user-access. To delete a job: -1. Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations**. +1. Navigate to **Jobs** → **Select the job** → **Configurations**. 2. To delete the job, you have to first delete any configured pipelines in the job workflow. - ### Delete job pipelines + ### Delete Job Pipelines - * Navigate to **Devtron Dashboard** → **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. + * Navigate to **Jobs** → **Select the job** → **Configurations** → **Workflow Editor**. * Select the job pipeline you wish to delete, and an edit job pipeline modal window will appear. - ![Figure 3a: Select job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) + ![Figure 6: Selecting Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-select.jpg) * Select **Delete Pipeline** at the bottom left corner of the edit job pipeline modal window to delete the job pipeline. - ![Figure 3b: Delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) + ![Figure 7: Deleting Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-pipeline.jpg) * A pop-up window will appear asking you to confirm the **Delete Pipeline** action. - ![Figure 3c: Confirm delete job pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) + ![Figure 8: Confirming Delete Job Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-delete-dialog-box.jpg) 3. Select **Delete Job** to delete the job. - ![Figure 4a: Delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job.jpg) + ![Figure 9: Deleting Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job.jpg) 4. A pop-up window will appear asking you to confirm the **Delete Job** action. - ![Figure 4b: Confirm delete job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) + ![Figure 10: Confirming Delete Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-delete-job-dialog.jpg) --- diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index d9ccf10cc..3fc1026b0 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -2,7 +2,7 @@ The Overview page provides a centralized view of a job’s details within Devtron. It allows users to quickly access information about the job, manage tags, and view job pipelines — all in a single, organized interface. -![Figure 1a: Job's overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) +![Figure 1: Job's Overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job.jpg) The **Overview** page contains three main sections: * [**About**](#about): Contains job's metadata such as name, description, project, project, creator, and it also includes options to manage tags. @@ -21,7 +21,7 @@ The **About** section allows you to: The left side of the **About** section displays essential information about the job. -![Figure 1b: Job's basic info](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-about-left.jpg) +![Figure 2: Job's Basic Info](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-about-left.jpg) The table below captures all the key elements presented in this section, along with their descriptions and whether they can be edited by the user. @@ -32,13 +32,13 @@ The table below captures all the key elements presented in this section, along w | `Project` |Yes|Indicates the current project under which the application is organized.
You can change the project directly from this section.
  1. Click the `Edit` icon next to the current project.
  2. In the `Change Project` window, select the new project from the dropdown.
  3. Click `Save`.
Changing the project will revoke access for existing users and grant access only to those who have permissions in the newly selected project.| | `Created on` |No|Shows the exact date and time when the application was created.| | `Created by`|No|Displays the email address of the user who created the application.| -| `Tags` |Yes|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the `Edit` icon next to `Tags`.
  2. On the `Manage Tags` page, Click `+ Add tag` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the `propagation icon` to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
  5. Click `Save`, Configured Tags will reflect immediately under `Tags` in `About` Section
| +| `Tags` |Yes|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the `Edit` icon next to `Tags`.
  2. On the `Manage Tags` page, Click `+ Add tag` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
  5. Click `Save`, Configured Tags will reflect immediately under `Tags` in `About` Section
| ### Readme The right side of the **About** section contains a **README** area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. -![Figure 2a: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) +![Figure 3: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) To add or update the **Readme**: 1. Click the **Edit** button in the Readme section. @@ -47,7 +47,7 @@ To add or update the **Readme**: 4. Preview the content using the **Preview** tab. 5. Click **Save** to update the README. -![Figure 2b: Edit Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) +![Figure 4: Editing Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) {% hint style="info" %} After saving, the system displays the email address of the user who last updated the README, along with the date and time. This information appears in the header of the Readme section, beside the title. @@ -57,11 +57,11 @@ To add or update the **Readme**: The **Catalog** in the **About** section displays information about your job, such as Container port, Environment Variables, Arguments, Resources(CPU and RAM). This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). -![Figure 3a: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) +![Figure 5: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) You can use the **Catalog framework** to maintain information about your job, such as Environment Variables, Resources(CPU and RAM), service documentation, etc. This makes it easier for others to understand, manage, and use your job. -`Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron applications. +`Super-Admins` define a custom JSON schema that determines what fields are shown in the catalog form. This schema is specific to each resource type, such as Devtron jobs. When you click the **Edit** icon, a form appears based on the defined schema. As a job owner, you can fill out fields like: * Container port (e.g., API contract, service documentation) @@ -69,7 +69,7 @@ When you click the **Edit** icon, a form appears based on the defined schema. As * Arguments * Resources(CPU and RAM) -![Figure 3b: Edit Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) +![Figure 6: Editing Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) {% hint style= "info" %} The structure and labels in the catalog form are entirely configurable by your platform team via JSON schema in **Catalog Framework**. Field names and sections may vary depending on how the schema was defined by your organization. @@ -77,7 +77,7 @@ The structure and labels in the catalog form are entirely configurable by your p Once saved, this information is displayed in a readable format within the Catalog subsection and is accessible to all users who have permission to view the job. -![Figure 3c: Catalog overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) +![Figure 7: Catalog Overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) --- @@ -90,6 +90,6 @@ The Job Pipelines section provides a detailed view of all job pipelines. For eac | Pipeline name |Name of the job pipeline.| | Last Run Status|Displays the status of the most recent job execution| | Run in environment | Displays the name of the environment in which the job is executed. | -| Last Run AT| Displays how long ago the job was last triggered.| +| Last Run At| Displays how long ago the job was last triggered.| -![Figure 4: Job Pipelines](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) +![Figure 8: Job Pipelines](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) diff --git a/docs/user-guide/jobs/run-history-job.md b/docs/user-guide/jobs/run-history-job.md index be021ae60..7f660d7f3 100644 --- a/docs/user-guide/jobs/run-history-job.md +++ b/docs/user-guide/jobs/run-history-job.md @@ -2,7 +2,7 @@ The run history allows you to review every execution of job pipelines. Here you can review who triggered each pipeline, when it started executing and finished, and whether it succeeded or failed. It also allows you to inspect logs for each execution. -## Accessing run history for specific pipeline +## Accessing Run History for Specific Pipeline {% hint style="warning" %} ### Who Can Perform This Action? @@ -14,11 +14,11 @@ Either you have just executed the job and want to inspect the live execution, or 1. Navigate to the **Run History** tab of your job, and all the executions will appear in a reverse chronological order under the pipeline name. In case you have configured multiple job pipelines within a job, you need to select the pipeline from the **Select Pipeline** dropdown in the top-left corner. - ![Figure 1a: Select Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) + ![Figure 1: Selecting Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history.jpg) 2. Select the specific execution you want to inspect. By default, the latest execution is selected. - ![Figure 1b: Select specific execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) + ![Figure 2: Selecting Specific Execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-select-execution.jpg) 3. After selecting the execution, the right section of the page will display the details about that particular execution. @@ -30,7 +30,7 @@ Either you have just executed the job and want to inspect the live execution, or |`Execution succeeded`|Timestamp marking when the job finished successfully.| |`Worker status`|Final outcome of the worker performing the job (e.g., Succeeded or Failed). On failure, the error message is also shown| - ![Figure 1c: Execution's details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) + ![Figure 3: Execution's details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-details.jpg) Apart from these details, you can also inspect logs, source code, security, and download artifacts (if any). @@ -40,7 +40,7 @@ Apart from these details, you can also inspect logs, source code, security, and * You can expand/collapse each pipeline stage to view specific logs related to that stage. Use the `Expand/collapse all stages` button near the search bar to expand or collapse all stages at once. * Select the fullscreen button in the bottom-right corner to view logs in fullscreen. - ![Figure 2a: Logs](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) + ![Figure 4: Logs](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-logs.jpg) ### Source The source tab shows which commit is from the source code (configured Git repository) that is used to execute the job pipeline. @@ -54,7 +54,7 @@ Apart from these details, you can also inspect logs, source code, security, and |`Author`|Name & email of the committer.| |`Date & time`|When that commit was authored| - ![Figure 2b: Source](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) + ![Figure 5: Source](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/run-history-source.jpg) ### Artifacts @@ -62,8 +62,8 @@ Apart from these details, you can also inspect logs, source code, security, and ### Security - The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. + The Security tab provides a view of vulnerability scanning results for code, the container images used or built during the job execution. It appears when a security scan plugin (e.g., Trivy via the Code Scan plugin) is integrated into your job pipeline. --- -After inspecting the run history, you can also set up the [Job Overview](./overview-job.md) so that others can easily use the job in the future. +After inspecting the run history, you can also set up the [Job Overview](./overview-job.md) so that others can easily know more about the job. diff --git a/docs/user-guide/jobs/triggering-job.md b/docs/user-guide/jobs/triggering-job.md index f47c4039b..673908370 100644 --- a/docs/user-guide/jobs/triggering-job.md +++ b/docs/user-guide/jobs/triggering-job.md @@ -12,30 +12,30 @@ Refer the [User permissions](../global-configurations/authorization/user-access. 1. Navigate to the **Trigger Job** tab of your job, which lists all configured pipelines. - ![Figure 1a: Trigger job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) + ![Figure 1: Triggering job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job.jpg) -2. Select **Select Material** for the job pipeline you wish to execute. A modal window will open, under the **Code-source** tab, this window lists all recent commits along with their hash, author, date, and message from your configured source repository. +2. Click **Select Material** for the job pipeline you wish to execute. A modal window will open, under the **Code-source** tab, this window lists all recent commits along with their hash, author, date, and message from your configured source repository. - ![Figure 1b: Select material for specific pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) + ![Figure 2: Selecting Material for Specific Pipeline](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-select-material.jpg) 3. Select the commit you want to use in the job execution. You can use the search bar to filter the commit hash, and you can also click the kebab menu to reveal excluded commits. If a recent commit isn’t displayed, click the Refresh icon to reload the commit list from your Git repository. - ![Figure 1c: Select commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) + ![Figure 3: Selecting Commit](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-commit.jpg) 4. Select the **Parameters** tab to configure pipeline runtime inputs(if any). The Key and Type columns are read‑only; enter values for each required parameter (denoted by *). Optional parameters can be configured as needed or left blank. - ![Figure 1d: Configure runtime parameters](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) + ![Figure 4: Configuring Runtime Parameters](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-parameter.jpg) 5. After selecting the commit and configuring runtime parameters, pick the target environment from the **Execute job in** dropdown at the bottom. - ![Figure 1e: Select environment for job's execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) + ![Figure 5: Select Environment for Job's Execution](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-execute-env.jpg) 6. Select **Run Job** to execute your pipeline. - ![Figure 1f: Run job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) + ![Figure 6: Run Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-run-job.jpg) --- -After executing your pipeline, the pipeline will now be in running state and you can monitor the pipeline execution(such as logs, source, artifacts)in [run-history](./run-history.md) either by navigating to **Run History** tab or by clicking `details` above the **Select Material** of the specific pipeline. +After executing your pipeline, the pipeline will now be in running state, and you can monitor the pipeline execution (such as logs, source, artifacts) in [run-history](./run-history.md) either by navigating to **Run History** tab or by clicking `details` above the **Select Material** of the specific pipeline. -![Figure 2: Job status](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) +![Figure 7: Job Status](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/trigger-job-details.jpg) From cfd8ff690c88ed7d1a06e522c8cf4ef1d3b41c1a Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Wed, 25 Jun 2025 03:26:24 +0530 Subject: [PATCH 32/33] more fixes --- docs/user-guide/jobs/configurations/workflow-editor-job.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index 2cc0e642e..e2b12d9af 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -73,7 +73,7 @@ To create a task: ![Figure 8: Type of Tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) -#### Create a Task Using Preset Plugins +### Create Task Using Preset Plugins In Devtron, preset plugins are pre-defined tasks templates that helps you automate and execute common operations such as provisioning infrastructure, taking backups, exporting container images etc., without writing custom scripts. @@ -103,7 +103,7 @@ To create a task using the **GKE Provisioner** plugin, follow the steps below: 5. After configuring the fields successfully, your task will be created. If you wish, you can add more tasks by clicking on **+ Add task** in the left-side panel. -#### Create Task Using Custom Script +### Create Task Using Custom Script In Devtron, you can also define a task using a custom script to meet specific requirements. To create a task a task using a custom script, follow the steps below: From f02da556b51d81487b664ee9e06bedec1f9eb949 Mon Sep 17 00:00:00 2001 From: Hii-Arpit Date: Thu, 26 Jun 2025 13:31:15 +0530 Subject: [PATCH 33/33] docs: implement suggested changes --- docs/user-guide/jobs/configurations/README.md | 2 +- .../configurations/workflow-editor-job.md | 4 +-- docs/user-guide/jobs/create-job.md | 21 +++++++++++-- docs/user-guide/jobs/overview-job.md | 30 ++++++++++++++----- 4 files changed, 44 insertions(+), 13 deletions(-) diff --git a/docs/user-guide/jobs/configurations/README.md b/docs/user-guide/jobs/configurations/README.md index 6a1f02310..564a7d955 100644 --- a/docs/user-guide/jobs/configurations/README.md +++ b/docs/user-guide/jobs/configurations/README.md @@ -1,4 +1,4 @@ -# Configuration +# Configurations After you have created a Job, the next step is to configure the job. This means specifying the source code and using the Workflow Editor to create and configure the job pipeline, which includes defining tasks such as code scanning, vulnerability checks, or data migrations, and configuring the sequence in which these tasks should be executed. diff --git a/docs/user-guide/jobs/configurations/workflow-editor-job.md b/docs/user-guide/jobs/configurations/workflow-editor-job.md index e2b12d9af..fefddbbfd 100644 --- a/docs/user-guide/jobs/configurations/workflow-editor-job.md +++ b/docs/user-guide/jobs/configurations/workflow-editor-job.md @@ -11,7 +11,7 @@ Users need to have the **Admin role** or the **Super Admin role**. Refer the [User permissions](../../global-configurations/authorization/user-access.md#roles-available-for-jobs). {% endhint %} -1. Navigate to the **Workflow Editor** in the left sidebar of the Job **Configuration** page. +1. Navigate to the **Workflow Editor** in the left sidebar of the **Configurations** page. ![Figure 1: Selecting Workflow Editor](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor.jpg) @@ -69,7 +69,7 @@ To create a task: ![Figure 7: Adding Task](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-add-task.jpg) -3. A new task will be added (on the left side of the Create job pipeline window). You can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) +3. A new task will be added (on the left side of the 'Create job pipeline' window). You can configure the task either by selecting one of the available [preset plugins](#create-task-using-preset-plugins) or by [Executing a custom script](#create-task-using-custom-script) ![Figure 8: Type of Tasks](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/workflow-editor-tasks.jpg) diff --git a/docs/user-guide/jobs/create-job.md b/docs/user-guide/jobs/create-job.md index 299c08bee..4e8e30427 100644 --- a/docs/user-guide/jobs/create-job.md +++ b/docs/user-guide/jobs/create-job.md @@ -33,7 +33,7 @@ To create a new **Blank Job** in Devtron, follow these steps: | `Project`| Select the project from the dropdown.| | `Job Name`| User-defined name for the job in Devtron.| | `Description` | Enter the description for the job.| - | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)
| + | `Tags`| Key-value pairs used for identifying and organizing the application and can be propagated as Kubernetes labels. To learn more refer [Tags](#tags) section.| ![Figure 3: Creating Blank Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-page.jpg) @@ -62,8 +62,7 @@ To create a new **Clone Job** in Devtron, follow these steps: | `Project`| Select the project from the dropdown.| | `Job Name`| User-defined name for the job in Devtron.| | `Description`| Enter the description of a job.| - | `Tags`|

Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.

  1. Click the Add tags to job dropdown on the Create job page.
  2. Under the Tags section, Click + to add a new tag.
  3. You can click X icon to delete an existing tag.
  4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [Snapshot]
| - | `Select an job to clone` | Select the existing job from the dropdown that you want to clone. Enter the description of a job.| + | `Tags`| Key-value pairs used for identifying and organizing the application and can be propagated as Kubernetes labels. To learn more refer [Tags](#tags) section.| ![Figure 5: Creating Clone Job](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/create-job-clone-job.jpg) @@ -112,3 +111,19 @@ To delete a job: --- After creating a job, the next step is to configure the job. Refer to the [Configurations](./configurations/README.md) section to configure the job. + +## Extras + +### Tags + +Tags are Key-value pairs used for identifying and organizing the application. Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools. To do so, follow the steps below. + +1. Click the **Add tags to job** dropdown on the **Create job** page. + +2. Under the **Tags** section, Click `+` to add a new tag. + +3. You can click `X` icon to delete an existing tag. + +4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation. + +![Figure 11: Tags](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg) diff --git a/docs/user-guide/jobs/overview-job.md b/docs/user-guide/jobs/overview-job.md index 3fc1026b0..a6fe590c7 100644 --- a/docs/user-guide/jobs/overview-job.md +++ b/docs/user-guide/jobs/overview-job.md @@ -32,13 +32,29 @@ The table below captures all the key elements presented in this section, along w | `Project` |Yes|Indicates the current project under which the application is organized.
You can change the project directly from this section.
  1. Click the `Edit` icon next to the current project.
  2. In the `Change Project` window, select the new project from the dropdown.
  3. Click `Save`.
Changing the project will revoke access for existing users and grant access only to those who have permissions in the newly selected project.| | `Created on` |No|Shows the exact date and time when the application was created.| | `Created by`|No|Displays the email address of the user who created the application.| -| `Tags` |Yes|Key-value pairs used for identifying and organizing the application.
Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools.
  1. Click the `Edit` icon next to `Tags`.
  2. On the `Manage Tags` page, Click `+ Add tag` to add a new tag.
  3. You can click `X` icon to delete an existing tag.
  4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation.
    [[Snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg)]
  5. Click `Save`, Configured Tags will reflect immediately under `Tags` in `About` Section
| +| `Tags` |Yes|Key-value pairs used for identifying and organizing the application and can be propagated as Kubernetes labels. To learn more refer [Tags](#tags) section.| + +### Tags + +Tags are Key-value pairs used for identifying and organizing the application. Users can propagate tags as Kubernetes labels to enable filtering, bulk operations, and integrations with Kubernetes tools. To do so, follow the steps below. + +1. Click the **Edit** icon next to **Tags**. + +2. On the **Manage Tags** page, Click **+ Add tag** to add a new tag. + +3. You can click `X` icon to delete an existing tag. + +4. You can click the **propagation icon** to propagate a tag (turns dark grey when propagated), click again to remove propagation. + +5. Click **Save**, configured Tags will reflect immediately under **Tags** in **About** Section + +![Figure 3: Tags](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/overview/manage-tags-latest-1.jpg) ### Readme The right side of the **About** section contains a **README** area where you can maintain job-specific notes or documentation. The `Readme` supports Markdown formatting, making it easy to include formatted text, instructions, or important context related to the application. -![Figure 3: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) +![Figure 4: Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme.jpg) To add or update the **Readme**: 1. Click the **Edit** button in the Readme section. @@ -47,7 +63,7 @@ To add or update the **Readme**: 4. Preview the content using the **Preview** tab. 5. Click **Save** to update the README. -![Figure 4: Editing Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) +![Figure 5: Editing Readme](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-readme-edit.jpg) {% hint style="info" %} After saving, the system displays the email address of the user who last updated the README, along with the date and time. This information appears in the header of the Readme section, beside the title. @@ -57,7 +73,7 @@ To add or update the **Readme**: The **Catalog** in the **About** section displays information about your job, such as Container port, Environment Variables, Arguments, Resources(CPU and RAM). This data is managed using [Devtron’s Catalog Framework](../global-configurations/catalog-framework.md). -![Figure 5: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) +![Figure 6: Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog.jpg) You can use the **Catalog framework** to maintain information about your job, such as Environment Variables, Resources(CPU and RAM), service documentation, etc. This makes it easier for others to understand, manage, and use your job. @@ -69,7 +85,7 @@ When you click the **Edit** icon, a form appears based on the defined schema. As * Arguments * Resources(CPU and RAM) -![Figure 6: Editing Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) +![Figure 7: Editing Catalog](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-expand.jpg) {% hint style= "info" %} The structure and labels in the catalog form are entirely configurable by your platform team via JSON schema in **Catalog Framework**. Field names and sections may vary depending on how the schema was defined by your organization. @@ -77,7 +93,7 @@ The structure and labels in the catalog form are entirely configurable by your p Once saved, this information is displayed in a readable format within the Catalog subsection and is accessible to all users who have permission to view the job. -![Figure 7: Catalog Overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) +![Figure 8: Catalog Overview](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-catalog-saved.jpg) --- @@ -92,4 +108,4 @@ The Job Pipelines section provides a detailed view of all job pipelines. For eac | Run in environment | Displays the name of the environment in which the job is executed. | | Last Run At| Displays how long ago the job was last triggered.| -![Figure 8: Job Pipelines](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg) +![Figure 9: Job Pipelines](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/create-job/overview-job-job-pipelines.jpg)