❗ Please refer to EDP documentation to get the notion of the main concepts and guidelines. |
---|
Get acquainted with the Sonar Operator and the installation process as well as the local development, and architecture scheme.
Sonar Operator is an EDP operator that is responsible for configuring SonarQube.
NOTE: Operator is platform-independent, that is why there is a unified instruction for deploying.
- Linux machine or Windows Subsystem for Linux instance with Helm 3 installed;
- Cluster admin access to the cluster;
In order to install the EDP Sonar Operator, follow the steps below:
-
To add the Helm EPAMEDP Charts for local client, run "helm repo add":
helm repo add epamedp https://epam.github.io/edp-helm-charts/stable
-
Choose available Helm chart version:
helm search repo epamedp/sonar-operator -l NAME CHART VERSION APP VERSION DESCRIPTION epamedp/sonar-operator 3.1.1 3.1.1 A Helm chart for EDP Sonar Operator epamedp/sonar-operator 3.1.0 3.1.0 A Helm chart for EDP Sonar Operator
NOTE: It is highly recommended to use the latest released version.
-
Deploy operator:
Full available chart parameters available in deploy-templates/README.md:
-
Install operator in the arbitrary (
sonar-operator
) namespace with the helm command; find below the installation command example:helm install sonar-operator epamedp/sonar-operator --version <chart_version> --namespace sonar
-
Check the
sonar
namespace that should contain operator deployment with your operator in a running status.
-
Login into Sonarqube and create user. Attach permissions to user such as quality gates, profiles, user managment etc. Insert user credentials into Kubernetes secret.
apiVersion: v1 kind: Secret metadata: name: sonar-access type: Opaque data: username: dXNlcg== # base64-encoded value of "user" password: cGFzcw== # base64-encoded value of "pass"
-
Create Custom Resource
kind: Sonar
with Sonar instance URL and secret created on the previous step:apiVersion: edp.epam.com/v1alpha1 kind: Sonar metadata: name: sonar-sample spec: url: https://sonar.example.com # Sonar URL secret: sonar-access # Secret name
Wait for the
.status
field withstatus.connected: true
-
Create Quality Gate using Custom Resources SonarQualityGate:
apiVersion: edp.epam.com/v1alpha1 kind: SonarQualityGate metadata: name: qualityGate-sample spec: sonarRef: name: sonar-sample # the name of `kind: Sonar` name: qualityGate-sample default: true conditions: new_coverage: op: LT error: "80"
apiVersion: edp.epam.com/v1alpha1 kind: SonarQualityProfile metadata: name: qualityProfile-sample spec: sonarRef: name: sonar-sample # the name of `kind: Sonar` name: qualityProfile-sample language: java default: true rules: checkstyle:com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheck: severity: 'MAJOR'
Inspect CR templates folder for more examples
In order to develop the operator, first set up a local environment. For details, please refer to the Local Development page.
Development versions are also available, please refer to the snapshot helm chart repository page.