Sign inSign up

epamedp/sonar-operator

By epamedp

•Updated 8 days ago

Sonar Operator: Ensures code quality with SonarQube integration.

Image
Integration & delivery
Developer tools
0

50K+

epamedp/sonar-operator repository overview

codecov

⁠Sonar Operator

:heavy_exclamation_mark: Please refer to KubeRocketCI 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.

⁠Overview

Sonar Operator is a KubeRocketCI operator that is responsible for configuring SonarQube.

NOTE: Operator is platform-independent, that is why there is a unified instruction for deploying.

⁠Prerequisites

  1. Linux machine or Windows Subsystem for Linux instance with Helm 3⁠ installed;
  2. Cluster admin access to the cluster;

⁠Installation

In order to install the KubeRocketCI Sonar Operator, follow the steps below:

  1. 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
    
  2. 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 KRCI Sonar Operator
    

    NOTE: It is highly recommended to use the latest released version.

  3. Deploy operator:

    Full available chart parameters available in deploy-templates/README.md⁠:

  4. 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
    
  5. Check the sonar namespace that should contain operator deployment with your operator in a running status.

⁠Quick Start

  1. 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"
    
  2. 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 with status.connected: true

  3. 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

⁠Local Development

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.

Tag summary

Content type

Image

Digest

sha256:d2f01a4d0…

Size

33.1 MB

Last updated

8 days ago

docker pull epamedp/sonar-operator:3.5.0-SNAPSHOT.6