Plugins automatically deleting

Apart from your previous post, we didn’t have any reports from other users, or experienced the same behavior in our internal instances.

I would be interested to know:

  • which deploymentType you are using
  • if you set the replicaCount other than 1
  • if persistence is enabled ( persistence.enabled )

Thanks for your answer.
We’re using the default values for these settings but our pods automatically restarts every day and then, sometimes the problem happen.

Hi @Yanis_Corselle,

Maybe you could try to activate the persistence(persistence.enabled). This will persist the application folders, and this may fix your problem since in that case, the plugin is already installed at startup.

Hello,
Sorry I haven’t seen your answer …
The problem didn’t happen since the last time, if it happen again, we’ll try your fix. Thanks a lot !

Hello, I have some new infos.
And, this morning, the plugins were installed on our instance but this afternoon, they aren’t more here … The pod didn’t restart during this time so finally it seems that it’s not during the restart that they aren’t added but seems that they are deleted after …
Anything could explain this ?

i don’t know if your chart is working the same manneer as this one but if it’s the case, it’ll explain it, please look at this issue : [SONARQUBE] Plugins randomly disappear since chart 9.x · Issue #229 · Oteemo/charts · GitHub and the solution they proposed : use persistence for extensions · Oteemo/charts@601b04b · GitHub

Hello @Yanis_Corselle

Thank you for your valuable feedback, we will check internally to see if we have the same issue on our own charts.

I’m a bit surprised that the plugins disappeared without a pod restart. Did the SonarQube application has been restarted but without a pod restart?

Hey @Yanis_Corselle,

thanks for your investigation. I was trying to reproduce the missing-plugin error both in the standard and dce charts. Specifically, I installed the charts with the following parameters (see below) and then restarted all pods (including stateful sets and deployments) multiple times. The plugins are always there (installed) after every restart. So it seems that the problem does not exist in the latest versions of those two charts.

I used the following parameters:

  • Standard chart
    • --set persistence.enabled=true --set plugins.install="{https://github.com/elegoff/sonar-rust/releases/download/v0.0.9/community-rust-plugin-0.0.9.jar,https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.11.0/sonarqube-community-branch-plugin-1.11.0.jar}"
  • DCE chart
    • --set ApplicationNodes.plugins.install="{[https://github.com/elegoff/sonar-rust/releases/download/v0.0.9/community-rust-plugin-0.0.9.jar,https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.11.0/sonarqube-community-branch-plugin-1.11.0.jar}"](https://github.com/elegoff/sonar-rust/releases/download/v0.0.9/community-rust-plugin-0.0.9.jar,https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.11.0/sonarqube-community-branch-plugin-1.11.0.jar%7D%22) --set postgresql.persistence.enabled=true --set ApplicationNodes.jwtSecret=$JWT_SECRET

As a side note, you do not need to set the plugins.lib parameter to install plugins, we are gonna fix this in a related task.

About the othemo chart, we adopt a similar logic but not in all cases. We might run into issues if plugins are installed manually from the marketplace (UI). They will be likely gone in many cases after a pod restart. I’ve created a new task about this, but it should not impact this particular case.

Can you please try to set the previous parameters, use the latest version of standard or dce charts, and tell us if you run into issues again when scaling up and down resources?

Regards,
Carmine

Hello, Thanks you both (sorry @leo.geoffroy for the late answer, i haven’t seen your message).
I’m going to test this, i’ll tell you the results;
We’re using standard chart so what i’ll tell you would be about this one.

Hello Yanis,

you might want upgrade the chart, as we did several improvements and we tried to reproduce your issue using the latest chart version :slight_smile:

Thanks, I did it :slight_smile:
I’ll say you if it’s fine on the next days !

Hello @Yanis_Corselle,

did you have time to test the charts with the parameters mentioned before?

Carmine

Hello,
We launched it yes, for now the plugins are still there but each time, the stays a few days or weeks before disappearing so i don’t already know if they’ll stay …
Sorry for the late answer, that was sent to my professional mail and i’m in internship so while i was at school, i haven’t seen your message

Hi @Yanis_Corselle,

How did your test go? Did the plugins disappear again?

Carmine

Hello,
For now,
They are still there, hoping they’ll stay but it looks fine (they never stayed as long)
Thanks

Hello,
looks like i talked too fast. The plugins all disappeared again today …

Hi Yanis,

thanks for checking! After quite some posts and several trials, it’s better to quickly align on the architecture you are adopting :slight_smile:

  • As far as I understood, you use the latest version of the sonarqube helm chart: 6.0.1+425. Can you confirm that?
  • Can you please provide us with the values.yaml and any additional (relevant) helm parameters you were using in your last test?
  • Which cloud provider did you use in the last test?
  • You mention that your pods get restarted every day. If you can disclose, what’s the reason for that?
  • Can you please provide the exact command you use for installing the chart against the cluster?

In addition to that, in your existing cluster, can you please check if the volume attached to SonarQube contains the plugin (that are missing) in $SONARQUBE_HOME/extensions/plugins?

Please check carefully every question, and thanks for keep testing!

Hello,
Sorry for the late answer.
Yes, we’re using the latest version.
values.yaml :

ingress:
  hosts:
    - name: sonar.{{ .Values.domainName }}
      path: "/"
  tls:
    - hosts:
        - sonar.{{ .Values.domainName }}
      secretName: {{ .Values.domainName }}

plugins:
  install:
    - https://github.com/elegoff/sonar-rust/releases/download/v0.1.1/community-rust-plugin-0.1.1.jar
    - https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.11.0/sonarqube-community-branch-plugin-1.11.0.jar
jvmOpts: "-javaagent:/opt/sonarqube/lib/common/sonarqube-community-branch-plugin-1.11.0.jar=web"
jvmCeOpts: "-javaagent:/opt/sonarqube/lib/common/sonarqube-community-branch-plugin-1.11.0.jar=ce"

sonarProperties:
  sonar.core.serverBaseURL: "https://sonar.{{ .Values.domainName }}"

We’re using Goocle Cloud as cloud provider.
The pods are restarting everyday because we’re using a certain category of pod which cost less but is restarted everyday.
We’re using helmfile to install the chart (helmfile -l name=sonarqube -i apply)
We decided to stop adding the plugins with the chart (because we’re trying since a few months and it still doesn’t works). We finally did our own sonarqube docker image with the plugins inside it and it seems to work so the problem should be solved in our side (but it still exists and i can’t more test it sorry)

Hi,

We’ve recently switch to SonarQube 9.7.1-enterprise o Kubernetes, using version 5.0.6+370 of the sonarqube chart and we’ve exactly the same issue. We use one and only one plugin (OpenID Connect) and this becomes uninstalled after a few hours of runtime.

Our Helm chart values are:

image:
          tag: "9.7.1-enterprise"
        # Resources for SonarQube
        resources:
          limits:
            cpu: 1600m
            memory: 4096M
          requests:
            cpu: 800m
            memory: 3Gi
        # Plugins as code
        plugins:
          install:
            - "https://github.com/vaulttec/sonar-auth-oidc/releases/download/v2.1.1/sonar-auth-oidc-plugin-2.1.1.jar"
        # OIDC configuration
        sonarProperties:
          # General
          sonar.core.serverBaseURL: "https://xxxx"
          # Security
          sonar.forceAuthentication: true
          sonar.auth.oidc.enabled: true
          sonar.auth.oidc.groupsSync: true
          sonar.auth.oidc.loginButtonText: Okta
          sonar.auth.oidc.loginStrategy: "Same as OpenID Connect login"
        sonarSecretProperties: "sonarqube-secret-properties"
        # Environment variables
        env:
          - name: SONAR_LOG_JSONOUTPUT
            value: "true"
          - name: SONAR_JDBC_HOST
            valueFrom:
              secretKeyRef:
                name: "sonarqube-database-credentials"
                key: "privateIP"
          - name: SONARQUBE_JDBC_URL
            value: "jdbc:postgresql://$(SONAR_JDBC_HOST):5432/sonarqube"
        # External database
        jdbcOverwrite:
          enable: true
          jdbcUsername: "postgres"
          jdbcSecretName: "sonarqube-database-credentials"
          jdbcSecretPasswordKey: "password"
        postgresql:
          enabled: false

Note that we intend to upgrade to 6.x version of the Chart as soon as possible and we’re also enabling persistence:

persistence:
  enabled: true
  size: 20Gi

The log of the install-plugins container is empty.

Thanks for any help,
Damien