Skip to content

Commit

Permalink
Merge branch 'KubeRocketCI:main' into EPMDEDP-14896
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleksandr123234 authored Feb 7, 2025
2 parents d2ec692 + 58f47fd commit b9486c9
Show file tree
Hide file tree
Showing 116 changed files with 643 additions and 132 deletions.
4 changes: 2 additions & 2 deletions docs/about-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ The platform consists of the following blocks:

## Features

- Deployed and configured CI/CD toolset ([Tekton](https://tekton.dev/), [ArgoCD](https://argoproj.github.io/cd/), [Nexus Repository Manager](https://help.sonatype.com/repomanager3), [SonarQube](https://www.sonarqube.org/), [DefectDojo](https://www.defectdojo.org/), [Dependency-Track](https://dependencytrack.org/).
- Deployed and configured CI/CD toolset ([Tekton](https://tekton.dev/), [ArgoCD](https://argoproj.github.io/cd/), [Nexus Repository Manager](https://help.sonatype.com/en/sonatype-nexus-repository.html), [SonarQube](https://www.sonarsource.com/), [DefectDojo](https://www.defectdojo.org/), [Dependency-Track](https://dependencytrack.org/).
- [GitHub](https://about.gitlab.com/features/)(by default) or [GitLab](https://about.gitlab.com/features/).
- [Tekton](./operator-guide/install-tekton.md) is a pipeline orchestrator.
- [CI pipelines](./user-guide/index.md) for polyglot applications:

|Language|Framework|Build Tool|Application|Library|Autotest|
|:-|:-:|:-:|:-:|:-:|:-:|
|Java|Java 8, Java 11, Java 17|Gradle, Maven|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|Java|Java 8, Java 11, Java 17, Java 21|Gradle, Maven|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|Python|Python 3.8, FastAPI, Flask|Python|:white_check_mark:|:white_check_mark:||
|C#|.Net 3.1, .Net 6.0|.Net|:white_check_mark:|:white_check_mark:||
|C|None|Make,CMake|:white_check_mark:|||
Expand Down
67 changes: 67 additions & 0 deletions docs/assets/drawio-diagrams/krci-portal-cluster-overview.drawio

Large diffs are not rendered by default.

70 changes: 70 additions & 0 deletions docs/assets/drawio-diagrams/krci-portal-git-server-overview.drawio

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-dockerhub.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-ecr.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-github.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-harbor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-nexus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/operator-guide/container-registry-reset.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/user-guide/add-available-clusters.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/user-guide/add-cluster-edp-config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/user-guide/add_new_cluster.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/user-guide/create_link_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/user-guide/delete_link_button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/user-guide/delete_link_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/user-guide/edit_link_button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/user-guide/edit_link_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/user-guide/gitops-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/user-guide/gitops-repo-added.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/user-guide/gitops-section.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/assets/user-guide/gitops_menu.png
Binary file not shown.
Binary file removed docs/assets/user-guide/gitops_repo_added.png
Diff not rendered.
Binary file removed docs/assets/user-guide/gitops_section.png
Diff not rendered.
Binary file modified docs/assets/user-guide/krci-portal-add-cluster.png
Binary file modified docs/assets/user-guide/krci-portal-cluster-overview.png
Binary file modified docs/assets/user-guide/krci-portal-git-server-overview.png
Binary file modified docs/assets/user-guide/links_on_the_overview.png
Binary file modified docs/assets/user-guide/links_section.png
Binary file added docs/assets/user-guide/system-codebase.png
Binary file removed docs/assets/user-guide/system_codebase.png
Diff not rendered.
Binary file added docs/assets/user-guide/values-override-deploy.png
Binary file removed docs/assets/user-guide/values_override_deploy.png
Diff not rendered.
2 changes: 1 addition & 1 deletion docs/developer-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,6 @@ Our DockerHub repository hosts Docker images for various platform components:

To maintain an active presence on social media channels and share valuable content about our software releases, we continuously publish materials across the following media:

- [SolutionsHub](https://solutionshub.epam.com/solution/epam-delivery-platform)
- [SolutionsHub](https://solutionshub.epam.com/solution/kuberocketci)
- [Medium](https://medium.com/epam-delivery-platform)
- [YouTube](https://www.youtube.com/@theplatformteam)
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ To install Nexus in environment, it's recommended to use the resources provided
## Configuration
With [Add-Ons approach](https://github.com/epam/edp-cluster-add-ons/blob/main/clusters/core) `nexus-operator` create the necessary roles,**Service Account** `ci.user`, blob stores, repository, scripts, cleanup policies automatically. Below is a comprehensive guide on how to create all resources manually.
With [Add-Ons approach](https://github.com/epam/edp-cluster-add-ons/blob/main/clusters/core) `nexus-operator` create the necessary roles, **Service Account** `ci.user`, blob stores, repository, scripts, cleanup policies automatically. Below is a comprehensive guide on how to create all resources manually.

## Configuration Nexus Repository Manager with nexus-operator

Expand Down Expand Up @@ -150,7 +150,7 @@ Without using the **nexus-operator**, manual updates are required for the Helm c

![Nexus user settings](../../assets/operator-guide/artifacts-management/nexus-settings-user.png "Nexus user settings")

6. Type the `ci.user` username, fill the following fields and click the **Create local user** button to create the ***Service Account**, fill the following fields and click **Save** button::
6. Type the `ci.user` username, fill the following fields and click the **Create local user** button to create the ***Service Account**, fill the following fields and click **Save** button:

* **ID**: `ci.user`
* **First name**: `ci.user`
Expand Down
2 changes: 1 addition & 1 deletion docs/operator-guide/auth/platform-auth-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ To grant access, the appropriate role must be assigned to the user in Keycloak.

### SonarQube Configuration

[KubeRocketCI Sonar Operator](https://github.com/epam/edp-sonar-operator) provides a [SonarQube Permission Template](https://docs.sonarsource.com/sonarqube/latest/instance-administration/security/) to manage user access and permissions for SonarQube projects.
[KubeRocketCI Sonar Operator](https://github.com/epam/edp-sonar-operator) provides a [SonarQube Permission Template](https://docs.sonarsource.com/sonarqube-server/latest/instance-administration/system-functions/security/) to manage user access and permissions for SonarQube projects.

The template is stored in the SonarQube [custom resource](https://github.com/epam/edp-sonar-operator/blob/master/deploy-templates/_crd_examples/permission_template.yaml) of the operator. An example of a custom resource is shown below.

Expand Down
6 changes: 3 additions & 3 deletions docs/operator-guide/devsecops/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ For obtaining and managing report post scanning, deployment of various vulnerabi

### Gitleaks

[Gitleaks](https://github.com/zricethezav/gitleaks) is a versatile SAST tool used to scan Git repositories for hardcoded secrets, such as passwords and API keys, to prevent potential data leaks and unauthorized access.
[Gitleaks](https://github.com/gitleaks/gitleaks) is a versatile SAST tool used to scan Git repositories for hardcoded secrets, such as passwords and API keys, to prevent potential data leaks and unauthorized access.

### Trivy

Expand All @@ -60,11 +60,11 @@ For obtaining and managing report post scanning, deployment of various vulnerabi

### Cdxgen

[Cdxgen](https://github.com/AppThreat/cdxgen) is a lightweight and efficient tool for generating Software Bill of Materials (SBOM) using CycloneDX, a standard format for managing component inventory. It helps organizations maintain an up-to-date record of all software components, their versions, and related vulnerabilities, streamlining monitoring and compliance within the software supply chain.
[Cdxgen](https://github.com/CycloneDX/cdxgen) is a lightweight and efficient tool for generating Software Bill of Materials (SBOM) using CycloneDX, a standard format for managing component inventory. It helps organizations maintain an up-to-date record of all software components, their versions, and related vulnerabilities, streamlining monitoring and compliance within the software supply chain.

### Semgrep CLI

[Semgrep CLI](https://github.com/returntocorp/semgrep) is a versatile and user-friendly command-line interface for the Semgrep security scanner, enabling developers to perform Static Application Security Testing (SAST) for various programming languages. It focuses on detecting and preventing potential security vulnerabilities, code quality issues, and custom anti-patterns, ensuring secure and efficient code development.
[Semgrep CLI](https://github.com/semgrep/semgrep) is a versatile and user-friendly command-line interface for the Semgrep security scanner, enabling developers to perform Static Application Security Testing (SAST) for various programming languages. It focuses on detecting and preventing potential security vulnerabilities, code quality issues, and custom anti-patterns, ensuring secure and efficient code development.

### Clair

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -667,7 +667,7 @@ To install ReportPortal, follow the steps below:
:::note
For user access: default/1q2w3e<br />
For admin access: superadmin/erebus<br />
Please refer to the [ReportPortal.io](https://reportportal.io/installation) page for details.
Please refer to the [ReportPortal.io](https://reportportal.io/installation/) page for details.
:::

:::note
Expand Down
58 changes: 44 additions & 14 deletions docs/operator-guide/upgrade/upgrade-edp-3.10.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ import TabItem from '@theme/TabItem';
<link rel="canonical" href="https://docs.kuberocketci.io/docs/operator-guide/upgrade/upgrade-edp-3.10/" />
</head>

This section provides detailed instructions for upgrading KubeRocketCI to version 3.10. Follow the steps and requirements outlined below:

:::important
We suggest backing up the KubeRocketCI environment before starting the upgrade procedure.
We suggest backing up the KubeRocketCI environment before starting the upgrade procedure.
:::

This section provides detailed instructions for upgrading KubeRocketCI to version 3.10. Follow the steps and requirements outlined below:
:::important
The Tekton Dashboard is no longer supported in version 3.10. For more information, refer to the [Post-Upgrade Steps](#post-upgrade-steps) section.
:::

1. Update Custom Resource Definitions (CRDs). Run the following command to apply all necessary CRDs to the cluster:

Expand Down Expand Up @@ -245,7 +249,7 @@ This section provides detailed instructions for upgrading KubeRocketCI to versio
7. (Optional) Migrate SSO (OAuth2-proxy) configuration:

:::danger
Starting from version 3.10, the platform no longer supports setting single sign-on (SSO) configuration through the `edp-install` chart. This includes the installation of the `oauth2-proxy` component and the creation of required Keycloak resources.
Starting from version 3.10, the platform no longer supports setting Single Sign-on (SSO) configuration through the `edp-install` chart. This includes the installation of the `oauth2-proxy` component and the creation of required Keycloak resources.
:::

Deprecated fields in `values.yaml` file for SSO configuration are listed below:
Expand Down Expand Up @@ -454,20 +458,46 @@ This section provides detailed instructions for upgrading KubeRocketCI to versio
`helm upgrade krci epamedp/edp-install -n krci --values values.yaml --version=3.10.5 --dry-run`
:::

## Post-Upgrade Steps
## Tekton Dashboard

1. (Optional) In version 3.10, the Tekton Dashboard is migrated from the [edp-tekton](https://github.com/epam/edp-tekton) repository to a separate Helm chart in the [edp-cluster-add-ons](https://github.com/epam/edp-cluster-add-ons) repository. To install the Tekton Dashboard using the add-ons repository, follow the steps below:
In version 3.10, the Tekton Dashboard is migrated from the [edp-tekton](https://github.com/epam/edp-tekton) repository to a separate Helm chart in the [edp-cluster-add-ons](https://github.com/epam/edp-cluster-add-ons) repository. There are two approaches to install the Tekton Dashboard using the add-ons repository:

1. Clone the forked [edp-cluster-add-ons](https://github.com/epam/edp-cluster-add-ons/tree/main/clusters/core/addons/tekton-dashboard) repository.
:::note
For more information about deploying applications using [edp-cluster-add-ons](https://github.com/epam/edp-cluster-add-ons) repository, refer to the [Install via Add-Ons](../add-ons-overview.md) page.
:::

2. Navigate to the `clusters/core/addons/tekton-dashboard` directory and configure the `values.yaml` file with the necessary values for the Tekton Dashboard installation.
### Approach 1: Deploy Using Argo CD

3. After configuring the Tekton Dashboard Helm chart values, navigate to the `clusters/core/apps` directory. In the `values.yaml` file, update the `tekton-dashboard` section by specifying the `enable` field as `true` to enable Argo CD Application creation for the Tekton Dashboard. Also, specify the `namespace` field to define the target namespace where the Tekton Dashboard will be deployed.
The first approach implies installing the Tekton Dashboard via resource synchronization in Argo CD:

```yaml title="clusters/core/apps/values.yaml"
tekton-dashboard:
enable: true
namespace: krci
```
1. Clone the forked [edp-cluster-add-ons](https://github.com/epam/edp-cluster-add-ons/tree/main/clusters/core/addons/tekton-dashboard) repository.

2. Navigate to the `clusters/core/addons/tekton-dashboard` directory and configure the `values.yaml` file with the necessary values for the Tekton Dashboard installation.

3. After configuring the Tekton Dashboard Helm chart values, navigate to the `clusters/core/apps` directory. In the `values.yaml` file, update the `tekton-dashboard` section by specifying the `enable` field as `true` to enable Argo CD Application creation for the Tekton Dashboard. Also, specify the `namespace` field to define the target namespace where the Tekton Dashboard will be deployed.

```yaml title="clusters/core/apps/values.yaml"
tekton-dashboard:
enable: true
namespace: krci
```

4. Commit and push the changes to the remote repository. After the changes are pushed, navigate to the Argo CD and sync the Tekton Dashboard application. Verify that the Tekton Dashboard is successfully deployed.

### Approach 2: Deploy Using Helm

The first approach deploys Tekton Dashboard as a common Helm chart:

1. Clone the forked [edp-cluster-add-ons](https://github.com/epam/edp-cluster-add-ons/tree/main/clusters/core/addons/tekton-dashboard) repository.

2. Navigate to the `clusters/core/addons/tekton-dashboard` directory and configure the `values.yaml` file with the necessary values for the Tekton Dashboard installation.

3. After configuring the Tekton Dashboard Helm chart values, run the following command to deploy the Tekton Dashboard:

```bash
helm upgrade --install tekton-dashboard . -n <krci-namespace>
```

Replace `<krci-namespace>` with the target namespace where the Tekton Dashboard will be deployed.

4. Commit and push the changes to the remote repository. After the changes are pushed, navigate to the Argo CD and sync the Tekton Dashboard application. Verify that the Tekton Dashboard is successfully deployed.
4. Verify that the Tekton Dashboard is successfully deployed.
2 changes: 1 addition & 1 deletion docs/user-guide/add-autotest.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ In our case, we will use the **Clone** strategy:
2. Specify the autotest language properties:

* **Autotest code language** - defines the code language with its supported frameworks. Selecting **Other** allows extending the default code languages and get the necessary build tool.
* **Language version/framework** - defines the specific framework or language version of the autotest. The field depends on the selected code language. Specify Java 8, Java 11 or Java 17 to be used.
* **Language version/framework** - defines the specific framework or language version of the autotest. The field depends on the selected code language. Specify Java 8, Java 11, Java 17 or Java 21 to be used.
* **Build Tool** - allows to choose the build tool to use. In case of autotests, Gradle and Maven are available.
* **Autotest report framework** - all the autotest reports will be created in the Allure framework by default.

Expand Down
30 changes: 26 additions & 4 deletions docs/user-guide/add-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This page provides comprehensive instructions on how to integrate a new cluster

## Prerequisites

Before moving ahead, ensure you have already performed the guidelines outlined in the [Argo CD Integration](../operator-guide/cd/argocd-integration.md#deploy-argo-cd-application-to-remote-cluster-optional) page.
Before moving ahead, ensure you have already performed the guidelines outlined in the [Argo CD Integration](../operator-guide/cd/argocd-integration.md#deploy-argo-cd-application-to-remote-cluster-optional) page. Besides, user needs to have a cluster admin role to add clusters.

## Deploy to Remote Cluster

Expand All @@ -18,7 +18,7 @@ To deploy an application to a remote cluster, follow the steps below:

![Clusters menu](../assets/user-guide/add_new_cluster.png "Clusters menu")

2. In the drop-down window, specify the required fields:
2. In the drop-down window, specify the required fields. Click the **Save** button to add the cluster:

* **Cluster Name** - a unique and descriptive name for the new cluster;
* **Cluster Host** - the cluster’s endpoint URL (e.g., example-cluster-domain.com);
Expand All @@ -32,9 +32,31 @@ To deploy an application to a remote cluster, follow the steps below:

![Add cluster](../assets/user-guide/krci-portal-add-cluster.png "Add cluster")

3. Click the **Save** button to add the cluster.
3. As soon as the cluster is added, switch the KubeRocketCI portal to the Kubernetes mode:

As a result, the Kubernetes secret will be created for further integration and you will be able to select the integrated cluster when creating a new stage:
![Switch to K8s](../assets/user-guide/add-cluster-switch-to-k8s.png "Switch to K8s")

4. In the **Configuration** section, select **Config maps**:

![Config maps](../assets/user-guide/add-cluster-enter-config-maps.png "Config maps")

5. In the Config maps list, enter the **edp-config** config map:

![Edp config](../assets/user-guide/add-cluster-edp-config.png "Edp config")

6. In the **edp-config** config map, click the pencil icon in the top right corner of the screen:

![Edit config map](../assets/user-guide/add-cluster-edit-config-map.png "Edit config map")

7. In the YAML file, add the `available_clusters` parameter, insert the cluster name, and click **Save & apply**:

![Add new parameter](../assets/user-guide/add-available-clusters.png "Add new parameter")

8. Ensure the `available_clusters` parameter is added into the config map:

![Check added parameter](../assets/user-guide/add-cluster-check-parameter.png "Check added parameter")

9. When adding a new environment, select the remote cluster in the **Cluster** field:

![Select cluster](../assets/user-guide/select-cluster.png "Select cluster")

Expand Down
4 changes: 2 additions & 2 deletions docs/user-guide/change-container-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ It may become essential to modify the container registry settings. This section
Removing registry settings may disrupt your CI/CD process. New components created after changing the registry, including Components and Environments, will seamlessly function. However, existing 'Components' require additional steps, as outlined below.
:::

## Remove Container Registry
## Reset Container Registry

To remove container registry integration from the KubeRocketCI, follow the steps below:
To reset container registry integration from the KubeRocketCI, follow the steps below:

1. In the KubeRocketCI main menu, navigate to **Configuration** -> **Artifacts storage** -> **Registry**.

Expand Down
Loading

0 comments on commit b9486c9

Please sign in to comment.