kubernetes/pkg
Kubernetes Submit Queue c3f4dba513 Merge pull request #49697 from zetaab/mfloating
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
2017-08-05 03:22:57 -07:00
..
api Merge pull request #49607 from dixudx/change_StS_observedGeneration_to_int 2017-08-02 20:07:56 -07:00
apimachinery/tests Move pkg/apimachinery/test to apimachinery 2017-07-08 08:48:38 +08:00
apis Merge pull request #47181 from dims/fail-on-swap-enabled 2017-08-04 14:29:36 -07:00
auth Only do string trim when it's necessary 2017-06-15 17:32:31 +08:00
bootstrap/api run hack/update-all 2017-06-22 11:31:03 -07:00
capabilities
client generated 2017-08-02 10:27:36 -07:00
cloudprovider Merge pull request #49697 from zetaab/mfloating 2017-08-05 03:22:57 -07:00
controller Merge pull request #50070 from dixudx/remove_013_to_avoid_bad_words 2017-08-04 00:20:57 -07:00
conversion
credentialprovider azure: acr: support auth to preview ACR w/ MSI+AAD 2017-07-18 15:22:34 -07:00
features Added taints node by condition feature flag. 2017-07-31 19:30:34 +08:00
fieldpath Add Pod UID (metadata.uid) to downward API env var 2017-06-27 16:54:35 +08:00
fields
generated kube-gen: fixup moved tests 2017-08-04 08:03:15 +02:00
hyperkube
kubeapiserver Move remaining cert helper functions to client-go/util/cert 2017-08-03 13:17:07 -07:00
kubectl Merge pull request #49843 from alrs/kubectl-rolling_updater-swallowed-error 2017-08-04 23:40:07 -07:00
kubelet Merge pull request #47408 from shiywang/follow-go-code-style 2017-08-05 03:22:54 -07:00
kubemark Merge pull request #40050 from mtaufen/standalone-mode 2017-07-25 12:14:43 -07:00
labels
master Don't enable apps/v1beta2 by default 2017-07-20 10:25:21 -07:00
printers address comments 2017-08-03 10:44:02 +08:00
probe update godep 2017-07-20 11:03:49 -07:00
proxy Merge pull request #49300 from tklauser/syscall-to-x-sys-unix 2017-08-03 04:02:12 -07:00
quota use informers for quota evaluation of core resources where possible 2017-07-19 15:52:39 -04:00
registry Merge pull request #49678 from smarterclayton/429_metric 2017-08-05 01:28:00 -07:00
routes Merge pull request #45490 from deads2k/owners-01-extensions 2017-05-10 12:51:51 -07:00
runtime
security allowPrivilegeEscalation: modify api types & add functionality 2017-07-24 12:52:41 -04:00
securitycontext allowPrivilegeEscalation: modify api types & add functionality 2017-07-24 12:52:41 -04:00
serviceaccount Move remaining cert helper functions to client-go/util/cert 2017-08-03 13:17:07 -07:00
ssh
types
util Merge pull request #49300 from tklauser/syscall-to-x-sys-unix 2017-08-03 04:02:12 -07:00
version Convert go_binary linkstamp to x_defs 2017-06-08 14:59:55 -07:00
volume Merge pull request #49300 from tklauser/syscall-to-x-sys-unix 2017-08-03 04:02:12 -07:00
watch
BUILD generated innocuous change 2017-07-21 14:29:59 -07:00
OWNERS