diff --git a/12-deploying-containers/kubernetes/client-react-nginx.yml b/12-deploying-containers/kubernetes/client-react-nginx.yml new file mode 100644 index 0000000..3e21f3f --- /dev/null +++ b/12-deploying-containers/kubernetes/client-react-nginx.yml @@ -0,0 +1,71 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: client-react-nginx + labels: + app: client-react-nginx +spec: + replicas: 1 + selector: + matchLabels: + app: client-react-nginx + template: + metadata: + labels: + app: client-react-nginx + spec: + containers: + - image: sidpalas/devops-directive-docker-course-client-react-nginx:5 + name: client-react-nginx + ports: + - containerPort: 80 + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ping + port: 80 + resources: + limits: + memory: 100Mi + requests: + cpu: 50m + memory: 100Mi + securityContext: + allowPrivilegeEscalation: false + privileged: false + volumeMounts: + - mountPath: /etc/nginx/conf.d + name: nginx-conf + securityContext: + seccompProfile: + type: RuntimeDefault + volumes: + - configMap: + defaultMode: 420 + name: nginx-conf + name: nginx-conf +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-conf +data: + default.conf: |- + server { + listen 80; + + location /ping { + access_log off; + add_header 'Content-Type' 'text/plain'; + return 200 "pong"; + } + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } + + include /etc/nginx/extra-conf.d/*.conf; + } diff --git a/12-deploying-containers/kubernetes/ingress-route.yml b/12-deploying-containers/kubernetes/ingress-route.yml new file mode 100644 index 0000000..cccc9f6 --- /dev/null +++ b/12-deploying-containers/kubernetes/ingress-route.yml @@ -0,0 +1,45 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: primary +spec: + entryPoints: + - web + routes: + - kind: Rule + match: Host(`docker-course-kubernetes.devopsdirective.com`) + services: + - kind: Service + name: client-react-nginx + namespace: default + port: 80 + scheme: http + - kind: Rule + match: Host(`docker-course-kubernetes.devopsdirective.com`) && PathPrefix(`/api/node`) + middlewares: + - name: strip-api-prefixes + services: + - kind: Service + name: api-node + port: 3000 + scheme: http + - kind: Rule + match: Host(`docker-course-kubernetes.devopsdirective.com`) && PathPrefix(`/api/golang`) + middlewares: + - name: strip-api-prefixes + services: + - kind: Service + name: api-golang + port: 8080 + scheme: http +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: strip-api-prefixes +spec: + stripPrefix: + forceSlash: false + prefixes: + - /api/node + - /api/golang \ No newline at end of file diff --git a/12-deploying-containers/kubernetes/ingress.yml b/12-deploying-containers/kubernetes/ingress.yml deleted file mode 100644 index 89fdd30..0000000 --- a/12-deploying-containers/kubernetes/ingress.yml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: primary - namespace: default -spec: - defaultBackend: - service: - name: client-react-nginx - port: - number: 80 diff --git a/12-deploying-containers/kubernetes/nginx-kubernetes.conf b/12-deploying-containers/kubernetes/nginx-kubernetes.conf deleted file mode 100644 index c68bf54..0000000 --- a/12-deploying-containers/kubernetes/nginx-kubernetes.conf +++ /dev/null @@ -1,37 +0,0 @@ -server { - listen 80; - - # Kubernetes dns server - resolver kube-dns.kube-system.svc.cluster.local valid=5s; - - location /ping { - access_log off; - add_header 'Content-Type' 'text/plain'; - return 200 "pong"; - } - location /api/golang/ { - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Server $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_http_version 1.1; - - set $api_golang_upstream api-golang.default.svc.cluster.local:8080/; - proxy_pass http://$api_golang_upstream; - } - location /api/node/ { - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Server $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_http_version 1.1; - - set $api_node_upstream api-node.default.svc.cluster.local:3000/; - proxy_pass http://$api_node_upstream; - } - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html =404; - } - - include /etc/nginx/extra-conf.d/*.conf; -}