PMM using Helm on Minikube gives Invalid Username/Password

Description:

When trying to install PMM on Minikube via Helm, it installs successfully. But when I try to login as admin user with the decoded password, it gives an invalid username/password.

Steps to Reproduce:

  1. Follow this document: Helm - Percona Monitoring and Management

  2. Run the following commands:

   $ helm repo add percona https://percona.github.io/percona-helm-charts/
   $ helm install pmm percona/pmm
   $ kubectl get secret pmm-secret --namespace default -o jsonpath='{.data.PMM_ADMIN_PASSWORD}' | base64 --decode
      - to get the password
   $ minikube service monitoring-service
      - open your browser with the above URL and you should see the login page
      - enter admin as the username, and the password from the one you decoded

Version:

Mac OS: Sonoma 14.3.1
Minikube: v1.26.1
Helm: v3.9.4

Logs:

From the pods, I only see this last few lines:

2024-03-14 16:48:52,412 INFO exited: qan-api2 (exit status 1; not expected)
2024-03-14 16:48:53,514 INFO spawned: 'qan-api2' with pid 720
2024-03-14 16:48:55,082 INFO success: qan-api2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-03-14 16:49:33,955 INFO exited: pmm-update-perform-init (exit status 0; expected)

Expected Result:

I should be able to login successfully

Actual Result:

I am getting an invalid username/password

Hi @brianestrada658,

Are those commands you sent there in the exact same sequence you ran them? You should first create the secret, and then use helm install pointing to it.

Please send us the exact commands you used, and in the exact same order.

The documentation link you pointed to has the correct order and syntax:
1- Create secret:

2- Install:

Note that the full install command is presented as a multiline shell command:

helm install pmm \
--set secret.create=false \
--set secret.name=pmm-secret \
percona/pmm

Which is the same as running:

helm install pmm --set secret.create=false --set secret.name=pmm-secret percona/pmm

Hi Guys! I’m having the same issue. I’m trying to deploy PMM using helm chart with terraform and the service is getting deployed but when I try to connect to it using kubectl port-forward I get an error “Invalid username and password”

This is my terraform code

resource "helm_release" "pmm" {
    name = var.namespace
    chart = "percona/pmm"
    namespace = var.namespace
#     version = "1.3.13"
    values = [data.template_file.helm_values.rendered]
    cleanup_on_fail = true
    create_namespace = true

}

Here is the helm_values.yaml file

secret:
  name: pmm-secret
  create: true
  pmm_password: "admin"
service:
  name: monitoring-service
  type: NodePort
  ports:
    - port: 443
      targetPort: https
      protocol: TCP
      name: https
    - port: 80
      targetPort: http
      protocol: TCP
      name: http

I tried setting the create: false value and create the value manually before running the terraform code using this code

cat <<EOF | kubectl create -n pmm -f -
apiVersion: v1
kind: Secret
metadata:
  name: pmm-secret
  labels:
    app.kubernetes.io/name: pmm
type: Opaque
data:
# base64 encoded password
# encode some password: `echo -n "admin" | base64`
  PMM_ADMIN_PASSWORD: YWRtaW4=
EOF

But still got the same error. Not sure what I’m doing wrong. Last week I was working with this same code and everything was working just fine.

when I run the

kubectl get secret pmm-secret --namespace pmm -o jsonpath=‘{.data.PMM_ADMIN_PASSWORD}’ | base64 -d

I get the value for the default password which is admin

Thanks a lot guys for you help! :smile:

PS: I tried installing it with plain helm without terraform using this command but got the same error

helm repo add percona https://percona.github.io/percona-helm-charts/
helm install pmm \
-n pmm \
--set secret.create=false \
--set secret.name=pmm-secret \
percona/pmm

Ok, the fix was to run the change-admin-password inside te pod and now it’s working!

I did that by running

kubectl -n pmm exec --stdin --tty pmm-0 -- change-admin-password admin2025