Uploaded image for project: 'Percona Operator for MongoDB'
  1. Percona Operator for MongoDB
  2. K8SPSMDB-540

Changing resources might lead to cluster getting stuck

Details

    • Bug
    • Status: Done
    • Medium
    • Resolution: Fixed
    • None
    • 1.12.0
    • None
    • None
    • Yes
    • Yes
    • Yes
    • Yes

    Description

      If the user sets requests or limits for CPU as integer it leads to an error when deploying the cluster:

      E0824 13:02:59.576795       1 reflector.go:153] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:224: Failed to list *v1.PerconaServerMongoDB: v1.PerconaServerMongoDBList.Items: []v1.PerconaServerMongoDB: v1.PerconaServerMongoDB.Spec: v1.PerconaServerMongoDBSpec.Replsets: []*v1.ReplsetSpec: v1.ReplsetSpec.Resources: v1.ResourcesSpec.Requests: Limits: v1.ResourceSpecRequirements.Memory: CPU: ReadString: expects " or n, but found 1, error found in #10 byte of ...|":{"cpu":1,"memory":|..., bigger context ...|"maxUnavailable":1},"resources":{"limits":{"cpu":1,"memory":"0.5G"},"requests":{"cpu":"300m","memory|...   

       

      Changing requests on already running cluster leads to the cluster and operator getting stuck.

       

      Steps to reproduce:

      1. Deploy the cluster with default CR
      2. Change spec.replsets.[].resources.requests.cpu to 1 (no quotes)
      3. See the error in the log
      E0824 13:02:55.555772       1 reflector.go:153] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:224: Failed to list *v1.PerconaServerMongoDB: v1.PerconaServerMongoDBList.Items: []v1.PerconaServerMongoDB: v1.PerconaServerMongoDB.Spec: v1.PerconaServerMongoDBSpec.Replsets: []*v1.ReplsetSpec: v1.ReplsetSpec.Resources: v1.ResourcesSpec.Requests: Limits: v1.ResourceSpecRequirements.Memory: CPU: ReadString: expects " or n, but found 1, error found in #10 byte of ...|":{"cpu":1,"memory":|..., bigger context ...|"maxUnavailable":1},"resources":{"limits":{"cpu":1,"memory":"0.5G"},"requests":{"cpu":"300m","memory|...                                                                                                                                                        {"level":"error","ts":1629810176.5492532,"logger":"controller_psmdb","msg":"failed to update cluster status","Request.Namespace":"default","Request.Name":"my-cluster-name","replset":"rs0","error":"send update: Operation cannot be fulfilled on perconaservermongodbs.psmdb.percona.com \"my-cluster-name\": the object has been modified; please apply your changes to the latest version and try again"

      The cluster cannot be deleted or modified now. Operator is not responding.

       

      Expected behavior

      1. I expect that I can set CPU and Memory the same way I do it for regular Kubernetes objects: both "1" and 1 work.

      2. I expect that the cluster does not get stuck and I can still delete or modify it.

      Attachments

        Issue Links

          Activity

            People

              dmytro.zghoba Dmytro Zghoba
              sergey.pronin Sergey Pronin
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Smart Checklist