• Kubernetes Submit Queue's avatar
    Merge pull request #49697 from zetaab/mfloating · c3f4dba5
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 47416, 47408, 49697, 49860, 50162)
    
    add possibility to use multiple floatingip pools in openstack loadbalancer
    
    **What this PR does / why we need it**: Currently only one floating pool is supported in kubernetes openstack cloud provider. It is quite big issue for us, because we want run only single kubernetes cluster, but we want that external and internal services can be used. It means that we need possibility to create services with internal and external pools.
    
    **Which issue this PR fixes**: fixes #49147
    
    **Special notes for your reviewer**: service labels is not maybe correct place to define this floatingpool id. However, I did not find any better place easily. I do not want start modifying service api structure.
    
    **Release note**:
    ```release-note
    Add possibility to use multiple floatingip pools in openstack loadbalancer
    ```
    
    Example how it works:
    ```
    cat /etc/kubernetes/cloud-config
    [Global]
    auth-url=https://xxxx
    username=xxxx
    password=xxxx
    region=yyy
    tenant-id=b23efb65b1d44b5abd561511f40c565d
    domain-name=foobar
    
    [LoadBalancer]
    lb-version=v2
    subnet-id=aed26269-cd01-4d4e-b0d8-9ec726c4c2ba
    lb-method=ROUND_ROBIN
    floating-network-id=56e523e7-76cb-477f-80e4-2dc8cf32e3b4
    create-monitor=yes
    monitor-delay=10s
    monitor-timeout=2000s
    monitor-max-retries=3
    ```
    ```
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            run: web
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        run: web-ext
      name: web-ext
      namespace: default
    spec:
      selector:
        run: web
      ports:
      - port: 80
        name: https
        protocol: TCP
        targetPort: 80
      type: LoadBalancer
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        run: web-int
        floatingPool: a2a84887-4915-42bf-aaff-2b76688a4ec7
      name: web-int
      namespace: default
    spec:
      selector:
        run: web
      ports:
      - port: 80
        name: https
        protocol: TCP
        targetPort: 80
      type: LoadBalancer
    ```
    ```
    % kubectl create -f example.yaml
    deployment "nginx-deployment" created
    service "web-ext" created
    service "web-int" created
    % kubectl get svc -o wide
    NAME         CLUSTER-IP       EXTERNAL-IP                   PORT(S)        AGE       SELECTOR
    kubernetes   10.254.0.1       <none>                        443/TCP        2m        <none>
    web-ext      10.254.23.153    192.168.1.57,193.xx.xxx.xxx   80:30151/TCP   52s       run=web
    web-int      10.254.128.141   192.168.1.58,10.222.130.80    80:32431/TCP   52s       run=web
    ```
    
    cc @anguslees @k8s-sig-openstack-feature-requests @dims
    c3f4dba5
Name
Last commit
Last update
..
api Loading commit data...
apimachinery/tests Loading commit data...
apis Loading commit data...
auth Loading commit data...
bootstrap/api Loading commit data...
capabilities Loading commit data...
client Loading commit data...
cloudprovider Loading commit data...
controller Loading commit data...
conversion Loading commit data...
credentialprovider Loading commit data...
features Loading commit data...
fieldpath Loading commit data...
fields Loading commit data...
generated Loading commit data...
hyperkube Loading commit data...
kubeapiserver Loading commit data...
kubectl Loading commit data...
kubelet Loading commit data...
kubemark Loading commit data...
labels Loading commit data...
master Loading commit data...
printers Loading commit data...
probe Loading commit data...
proxy Loading commit data...
quota Loading commit data...
registry Loading commit data...
routes Loading commit data...
runtime Loading commit data...
security Loading commit data...
securitycontext Loading commit data...
serviceaccount Loading commit data...
ssh Loading commit data...
types Loading commit data...
util Loading commit data...
version Loading commit data...
volume Loading commit data...
watch Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...