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

Provide static IP-address for LoadBalancer

Details

    • Improvement
    • Status: In Progress
    • Medium
    • Resolution: Unresolved
    • None
    • 1.13.0
    • None
    • Yes
    • Yes

    Description

      We allow users to expose database clusters and its components through various Service Types, including load balancers.

      There is a use case, where user wants to have a static IP-address for the load balancer. This also includes internal load balancers in the clouds.

       

      This can be done through `loadBalancerIP` field.

       spec:
        loadBalancerIP: 1.2.3.4
        type: LoadBalancer

       

      • We are going to pass through loadBalancerIP parameter to the service spec.
      • If exposeType is not LoadBalancer, we still pass through loadBalancerIP parameter to the spec
      • We rely on Kubernetes logic to parse and make a decision about loadBalancerIP valid inputs
        • We return the error if service creation fails
      • We are going to introduce loadBalancerIP into the custom resource in the following places:
      spec:
        replsets:
        - name: rs0
          expose:
            enabled: true
            exposeType: LoadBalancer
         
        sharding:
          configsvrReplSet:
            expose: 
              enabled: true
              exposeType: LoadBalancer
          mongos:
             expose: 
               exposeType: LoadBalancer 
               loadBalancerIP: 1.2.3.4 
       

       We are not adding loadBalancerIP to replica set and config server repl set, as once these are exposed, we use a service per pod approach.

      Attachments

        Issue Links

          Activity

            People

              andrii.dema Andrii Dema
              sergey.pronin Sergey Pronin
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Smart Checklist