From 67ce3d8e0d49e9f83b1d996db2bfbb3d86218b76 Mon Sep 17 00:00:00 2001 From: Doug Erkkila Date: Thu, 4 Jun 2020 15:29:33 -0400 Subject: [PATCH] replace absolute path for ajax --- deploy/kubernetes/master-deploy.yaml | 337 +++++++++++++++++- ingress.yaml | 137 +++++++ .../public/javascripts/ajaxLoadData.js | 2 +- 3 files changed, 471 insertions(+), 5 deletions(-) create mode 100644 ingress.yaml diff --git a/deploy/kubernetes/master-deploy.yaml b/deploy/kubernetes/master-deploy.yaml index 88275ac..dc164b8 100644 --- a/deploy/kubernetes/master-deploy.yaml +++ b/deploy/kubernetes/master-deploy.yaml @@ -43,7 +43,6 @@ metadata: namespace: buttercup-store spec: ports: - # the port that this service should serve on - port: 3306 targetPort: 3306 selector: @@ -72,7 +71,6 @@ spec: spec: containers: - name: ordersdb - #image: derkkila/product_db image: derkkila/orders_db imagePullPolicy: Always ports: @@ -89,7 +87,6 @@ metadata: namespace: buttercup-store spec: ports: - # the port that this service should serve on - port: 3306 targetPort: 3306 selector: @@ -134,8 +131,340 @@ metadata: namespace: buttercup-store spec: ports: - # the port that this service should serve on - port: 3306 targetPort: 3306 selector: name: productdb + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cartservice + namespace: buttercup-store +spec: + replicas: 1 + selector: + matchLabels: + name: cartservice + template: + metadata: + labels: + app: buttercup-store + name: cartservice + role: cartservice + tier: middleware + spec: + containers: + - name: cartservice + image: derkkila/cart_microservice + imagePullPolicy: Always + ports: + - name: cartservice + containerPort: 4201 + +--- +apiVersion: v1 +kind: Service +metadata: + name: cartservice + namespace: buttercup-store + labels: + app: buttercup-store + tier: middleware +spec: + type: NodePort + ports: + - protocol: TCP + port: 4201 + targetPort: 4201 + selector: + name: cartservice + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ordersservice + namespace: buttercup-store +spec: + replicas: 1 + selector: + matchLabels: + name: ordersservice + template: + metadata: + labels: + app: buttercup-store + name: ordersservice + role: ordersservice + tier: middleware + spec: + containers: + - name: ordersservice + image: derkkila/orders_microservice + imagePullPolicy: Always + ports: + - name: ordersservice + containerPort: 4201 + +--- +apiVersion: v1 +kind: Service +metadata: + name: ordersservice + namespace: buttercup-store + labels: + app: buttercup-store + tier: middleware +spec: + type: NodePort + ports: + - protocol: TCP + port: 4201 + targetPort: 4201 + selector: + name: ordersservice + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: productservice + namespace: buttercup-store +spec: + replicas: 1 + selector: + matchLabels: + name: productservice + template: + metadata: + labels: + app: buttercup-store + name: productservice + role: productservice + tier: middleware + spec: + containers: + - name: productservice + image: derkkila/product_microservice + imagePullPolicy: Always + ports: + - name: productservice + containerPort: 6767 + +--- +apiVersion: v1 +kind: Service +metadata: + name: productservice + namespace: buttercup-store + labels: + app: buttercup-store + tier: middleware +spec: + type: NodePort + ports: + - protocol: TCP + port: 6767 + targetPort: 6767 + selector: + name: productservice + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: webfrontend + namespace: buttercup-store +spec: + replicas: 1 + selector: + matchLabels: + name: webfrontend + template: + metadata: + labels: + app: buttercup-store + name: webfrontend + role: webfrontend + tier: client + spec: + containers: + - name: webfrontend + image: derkkila/web_frontend + imagePullPolicy: Always + ports: + - name: webfrontend + containerPort: 8088 +--- +apiVersion: v1 +kind: Service +metadata: + name: webfrontend + namespace: buttercup-store + labels: + app: buttercup-store + tier: frontend +spec: + type: NodePort + ports: + - protocol: TCP + port: 8088 + targetPort: 8088 + selector: + name: webfrontend + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: adminfrontend + namespace: buttercup-store +spec: + replicas: 1 + selector: + matchLabels: + name: adminfrontend + template: + metadata: + labels: + app: buttercup-store + name: adminfrontend + role: adminfrontend + tier: client + spec: + containers: + - name: adminfrontend + image: derkkila/admin_frontend + imagePullPolicy: Always + ports: + - name: adminfrontend + containerPort: 3000 + +--- +apiVersion: v1 +kind: Service +metadata: + name: adminfrontend + namespace: buttercup-store + labels: + app: buttercup-store + tier: frontend +spec: + type: NodePort + ports: + - protocol: TCP + port: 3000 + targetPort: 3000 + selector: + name: adminfrontend + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ghost-data + namespace: buttercup-store +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Gi + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ghost + namespace: buttercup-store +spec: + replicas: 1 + selector: + matchLabels: + name: ghost + template: + metadata: + labels: + app: buttercup-store + name: ghost + spec: + containers: + - name: ghost + image: ghost:alpine + imagePullPolicy: IfNotPresent + ports: + - name: ghost + containerPort: 2368 + volumeMounts: + - mountPath: /var/lib/ghost/content/ + name: ghost-data + volumes: + - name: ghost-data + persistentVolumeClaim: + claimName: ghost-data + +--- +apiVersion: v1 +kind: Service +metadata: + name: ghost + namespace: buttercup-store + labels: + app: ghost + app: buttercup-store +spec: + type: NodePort + ports: + - protocol: TCP + port: 2368 + targetPort: 2368 + selector: + name: ghost + +--- +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: buttercup-ingress + namespace: buttercup-store + annotations: + kubernetes.io/ingress.class: "nginx" +spec: + rules: + - host: + http: + paths: + - path: / + backend: + serviceName: ghost + servicePort: 2368 + - path: /shop + backend: + serviceName: webfrontend + servicePort: 8088 + - path: /wstatic + backend: + serviceName: webfrontend + servicePort: 8088 + - path: /admin + backend: + serviceName: adminfrontend + servicePort: 3000 + - path: /astatic + backend: + serviceName: adminfrontend + servicePort: 3000 + - path: /cart + backend: + serviceName: cartservice + servicePort: 4201 + - path: /orders + backend: + serviceName: ordersservice + servicePort: 4201 + - path: /products + backend: + serviceName: productservice + servicePort: 6767 diff --git a/ingress.yaml b/ingress.yaml new file mode 100644 index 0000000..dc2d641 --- /dev/null +++ b/ingress.yaml @@ -0,0 +1,137 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: ingress + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-ingress-controller + labels: + k8s-app: nginx-ingress-controller + namespace: ingress +spec: + selector: + matchLabels: + k8s-app: nginx-ingress-controller + replicas: 1 + template: + metadata: + labels: + k8s-app: nginx-ingress-controller + spec: + tolerations: + - key: node-role.kubernetes.io/master + operator: Equal + effect: NoSchedule + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-role.kubernetes.io/master + operator: Exists + hostNetwork: true + terminationGracePeriodSeconds: 60 + containers: + - image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.20.0 + name: nginx-ingress-controller + imagePullPolicy: Always + ports: + - containerPort: 80 + hostPort: 80 + - containerPort: 443 + hostPort: 443 + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + args: + - /nginx-ingress-controller + - --default-backend-service=$(POD_NAMESPACE)/default-http-backend + - --configmap=$(POD_NAMESPACE)/nginx-ingress-controller + - --annotations-prefix=nginx.ingress.kubernetes.io + readinessProbe: + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + livenessProbe: + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: default-http-backend + labels: + k8s-app: default-http-backend + namespace: ingress +spec: + selector: + matchLabels: + k8s-app: default-http-backend + replicas: 1 + template: + metadata: + labels: + k8s-app: default-http-backend + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: default-http-backend + # Any image is permissable as long as: + # 1. It serves a 404 page at / + # 2. It serves 200 on a /healthz endpoint + image: gcr.io/google_containers/defaultbackend:1.4 + livenessProbe: + httpGet: + path: /healthz + port: 8080 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 5 + ports: + - containerPort: 8080 + resources: + limits: + cpu: 10m + memory: 20Mi + requests: + cpu: 10m + memory: 20Mi + +--- +apiVersion: v1 +kind: Service +metadata: + name: default-http-backend + namespace: ingress + labels: + k8s-app: default-http-backend +spec: + ports: + - port: 80 + targetPort: 8080 + selector: + k8s-app: default-http-backend + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-ingress-controller + namespace: ingress +data: + enable-vts-status: 'true' diff --git a/web_frontend/public/javascripts/ajaxLoadData.js b/web_frontend/public/javascripts/ajaxLoadData.js index df1a669..eb22939 100644 --- a/web_frontend/public/javascripts/ajaxLoadData.js +++ b/web_frontend/public/javascripts/ajaxLoadData.js @@ -21,7 +21,7 @@ $(document).ready(function() { function ajaxGet(){ $.ajax({ type : "GET", - url : "http://"+window.location.hostname+"/products/", + url : "/products/", success: function(result){ $.each(result, function(i, product){