kiranchavala opened a new issue, #51:
URL: https://github.com/apache/cloudstack-kubernetes-provider/issues/51
ISSUE TYPE
* Enhancement request
COMPONENT NAME
Component: Kubernetes/Networking
CLOUDSTACK VERSION
Cloudstack 4.18
SUMMARY
Support static public ip address as a Load balancer IP
STEPS TO REPRODUCE
1. Deploy Kubernetes cluster on Cloudstack
2. Create a deployment for example a nginx deployment
```
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
```
3. Expose the deployment as a loadbalancer service
`kubectl expose deploy/nginx-deployment --port=80 --type=LoadBalancer`
4. Cloudstack then randomly allocated a public ip as external ip
```
❯ kubectl get svc nginx-deployment
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
AGE
nginx-deployment LoadBalancer 10.109.88.98 10.0.54.83 80:32739/TCP
4m24s
```
5. Suppose a user wants a specific public ip as a loadbalancer ip
Currently it's not possible even if we manually edit the service.yaml,
cloudstack again allocates a random public ip
```
apiVersion: v1
kind: Service
metadata:
creationTimestamp: "2023-07-25T04:31:03Z"
finalizers:
- service.kubernetes.io/load-balancer-cleanup
name: nginx-deployment
namespace: default
resourceVersion: "995303"
uid: 224691be-fa86-4b07-938c-c86d948b99fb
spec:
allocateLoadBalancerNodePorts: true
clusterIP: 10.109.88.98
clusterIPs:
- 10.109.88.98
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- nodePort: 32739
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
type: LoadBalancer
status:
apiVersion: v1
loadBalancer:
apiVersion: v1
ingress:
- ip: 10.0.54.83
```
EXPECTED RESULTS
Cloudstack should allocate the specified public ip address
ACTUAL RESULTS
Clodudstack is allocating a radom public ip address
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]