feat: support external traffic policy
Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
front-end:
|
||||
image: gcr.io/google-samples/gb-frontend:v4
|
||||
environment:
|
||||
- GET_HOSTS_FROM=dns
|
||||
ports:
|
||||
- 80:80
|
||||
labels:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: loadbalancer
|
||||
@@ -0,0 +1,14 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
front-end:
|
||||
image: gcr.io/google-samples/gb-frontend:v4
|
||||
environment:
|
||||
- GET_HOSTS_FROM=dns
|
||||
ports:
|
||||
- 80:80
|
||||
labels:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: loadbalancer
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end-tcp
|
||||
name: front-end-tcp
|
||||
spec:
|
||||
externalTrafficPolicy: Local
|
||||
ports:
|
||||
- name: "80"
|
||||
port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: front-end
|
||||
type: LoadBalancer
|
||||
status:
|
||||
loadBalancer: {}
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: loadbalancer
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: front-end
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: loadbalancer
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
io.kompose.service: front-end
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: GET_HOSTS_FROM
|
||||
value: dns
|
||||
image: gcr.io/google-samples/gb-frontend:v4
|
||||
name: front-end
|
||||
ports:
|
||||
- containerPort: 80
|
||||
hostPort: 80
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
restartPolicy: Always
|
||||
status: {}
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: external-traffic-policy-default
|
||||
spec:
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
@@ -0,0 +1,115 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
clusterIP: None
|
||||
ports:
|
||||
- name: "80"
|
||||
port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: front-end
|
||||
type: ClusterIP
|
||||
status:
|
||||
loadBalancer: {}
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: front-end
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
io.kompose.service: front-end
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: GET_HOSTS_FROM
|
||||
value: dns
|
||||
image: gcr.io/google-samples/gb-frontend:v4
|
||||
name: front-end
|
||||
ports:
|
||||
- containerPort: 80
|
||||
hostPort: 80
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
restartPolicy: Always
|
||||
status: {}
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: lb
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: front-end
|
||||
port:
|
||||
number: 80
|
||||
path: /
|
||||
pathType: Prefix
|
||||
status:
|
||||
loadBalancer: {}
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: external-traffic-policy-default
|
||||
spec:
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: loadbalancer
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end-tcp
|
||||
name: front-end-tcp
|
||||
spec:
|
||||
externalTrafficPolicy: Local
|
||||
ports:
|
||||
- name: "80"
|
||||
port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: front-end
|
||||
type: LoadBalancer
|
||||
status:
|
||||
loadBalancer: {}
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: DeploymentConfig
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: loadbalancer
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
io.kompose.service: front-end
|
||||
strategy:
|
||||
resources: {}
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
io.kompose.service: front-end
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: GET_HOSTS_FROM
|
||||
value: dns
|
||||
image: ' '
|
||||
name: front-end
|
||||
ports:
|
||||
- containerPort: 80
|
||||
hostPort: 80
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
restartPolicy: Always
|
||||
test: false
|
||||
triggers:
|
||||
- type: ConfigChange
|
||||
- imageChangeParams:
|
||||
automatic: true
|
||||
containerNames:
|
||||
- front-end
|
||||
from:
|
||||
kind: ImageStreamTag
|
||||
name: front-end:v4
|
||||
type: ImageChange
|
||||
status:
|
||||
availableReplicas: 0
|
||||
latestVersion: 0
|
||||
observedGeneration: 0
|
||||
replicas: 0
|
||||
unavailableReplicas: 0
|
||||
updatedReplicas: 0
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ImageStream
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
lookupPolicy:
|
||||
local: false
|
||||
tags:
|
||||
- annotations: null
|
||||
from:
|
||||
kind: DockerImage
|
||||
name: gcr.io/google-samples/gb-frontend:v4
|
||||
generation: null
|
||||
importPolicy: {}
|
||||
name: v4
|
||||
referencePolicy:
|
||||
type: ""
|
||||
status:
|
||||
dockerImageRepository: ""
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
clusterIP: None
|
||||
ports:
|
||||
- name: "80"
|
||||
port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: front-end
|
||||
type: ClusterIP
|
||||
status:
|
||||
loadBalancer: {}
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: DeploymentConfig
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.service.expose: lb
|
||||
kompose.service.expose.ingress-class-name: nginx
|
||||
kompose.service.external-traffic-policy: local
|
||||
kompose.service.type: headless
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
io.kompose.service: front-end
|
||||
strategy:
|
||||
resources: {}
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.network/external-traffic-policy-default: "true"
|
||||
io.kompose.service: front-end
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: GET_HOSTS_FROM
|
||||
value: dns
|
||||
image: ' '
|
||||
name: front-end
|
||||
ports:
|
||||
- containerPort: 80
|
||||
hostPort: 80
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
restartPolicy: Always
|
||||
test: false
|
||||
triggers:
|
||||
- type: ConfigChange
|
||||
- imageChangeParams:
|
||||
automatic: true
|
||||
containerNames:
|
||||
- front-end
|
||||
from:
|
||||
kind: ImageStreamTag
|
||||
name: front-end:v4
|
||||
type: ImageChange
|
||||
status:
|
||||
availableReplicas: 0
|
||||
latestVersion: 0
|
||||
observedGeneration: 0
|
||||
replicas: 0
|
||||
unavailableReplicas: 0
|
||||
updatedReplicas: 0
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ImageStream
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
lookupPolicy:
|
||||
local: false
|
||||
tags:
|
||||
- annotations: null
|
||||
from:
|
||||
kind: DockerImage
|
||||
name: gcr.io/google-samples/gb-frontend:v4
|
||||
generation: null
|
||||
importPolicy: {}
|
||||
name: v4
|
||||
referencePolicy:
|
||||
type: ""
|
||||
status:
|
||||
dockerImageRepository: ""
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Route
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
io.kompose.service: front-end
|
||||
name: front-end
|
||||
spec:
|
||||
host: lb
|
||||
port:
|
||||
targetPort: 80
|
||||
to:
|
||||
kind: Service
|
||||
name: front-end
|
||||
weight: null
|
||||
status:
|
||||
ingress: null
|
||||
|
||||
+1
-1
@@ -25,4 +25,4 @@ networks:
|
||||
name: app-network
|
||||
web:
|
||||
external:
|
||||
name: web-network
|
||||
name: web-network
|
||||
|
||||
+51
-4
@@ -53,6 +53,54 @@ spec:
|
||||
restartPolicy: Always
|
||||
status: {}
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: normalized-network
|
||||
spec:
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/normalized-network: "true"
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/normalized-network: "true"
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: v30-normalized-network
|
||||
spec:
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/v30-normalized-network: "true"
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/v30-normalized-network: "true"
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: app-network
|
||||
spec:
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/normalized-network: "true"
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/normalized-network: "true"
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
@@ -90,16 +138,16 @@ apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: v30-normalized-network
|
||||
name: normalized-network
|
||||
spec:
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/v30-normalized-network: "true"
|
||||
io.kompose.network/normalized-network: "true"
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/v30-normalized-network: "true"
|
||||
io.kompose.network/normalized-network: "true"
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
@@ -155,4 +203,3 @@ spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
io.kompose.network/v30-default: "true"
|
||||
|
||||
|
||||
-1
@@ -171,4 +171,3 @@ spec:
|
||||
type: ""
|
||||
status:
|
||||
dockerImageRepository: ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user