diff --git a/manifest/prod/dep-blog.yml b/manifest/prod/dep-blog.yml new file mode 100644 index 0000000..6fc8a40 --- /dev/null +++ b/manifest/prod/dep-blog.yml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: blog-deploy + namespace: blog +spec: + replicas: 3 + selector: + matchLabels: + app: blog-app + template: + metadata: + labels: + app: blog-app + spec: + containers: + - name: blog-app + image: registry.gitlab.com/ahmza/blog:1.0.0 + imagePullPolicy: Always + ports: + - name: web + containerPort: 80 diff --git a/manifest/prod/ing-blog.yml b/manifest/prod/ing-blog.yml new file mode 100644 index 0000000..ad1d1d0 --- /dev/null +++ b/manifest/prod/ing-blog.yml @@ -0,0 +1,41 @@ + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: blog-ing + namespace: blog + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: letsencrypt + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" + nginx.ingress.kubernetes.io/server-snippets: | + location / { + proxy_set_header Upgrade $http_upgrade; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $host; + proxy_set_header Connection "upgrade"; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Upgrade $http_upgrade; + proxy_cache_bypass $http_upgrade; + } +spec: + tls: + - hosts: + - blog.ahmza.com + secretName: ahmza-com-tls + rules: + - host: "blog.ahmza.com" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: blog-svc + port: + number: 80 diff --git a/manifest/prod/svc-blog.yml b/manifest/prod/svc-blog.yml new file mode 100644 index 0000000..f1c3f89 --- /dev/null +++ b/manifest/prod/svc-blog.yml @@ -0,0 +1,17 @@ + +apiVersion: v1 +kind: Service +metadata: + name: blog-svc + namespace: blog + labels: + app: blog-app +spec: + type: ClusterIP + ports: + - name: http + port: 80 + targetPort: 80 + protocol: TCP + selector: + app: blog-app diff --git a/manifest/staging/dep-blog.yml b/manifest/staging/dep-blog.yml new file mode 100644 index 0000000..f109eaa --- /dev/null +++ b/manifest/staging/dep-blog.yml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: blog-staging-deploy + namespace: blog-staging +spec: + replicas: 1 + selector: + matchLabels: + app: blog-staging-app + template: + metadata: + labels: + app: blog-staging-app + spec: + containers: + - name: blog-staging-app + image: registry.gitlab.com/ahmza/blog:1.0.0 + imagePullPolicy: Always + ports: + - name: web + containerPort: 80 diff --git a/manifest/staging/ing-blog.yml b/manifest/staging/ing-blog.yml new file mode 100644 index 0000000..9c31a57 --- /dev/null +++ b/manifest/staging/ing-blog.yml @@ -0,0 +1,41 @@ + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: blog-staging-ing + namespace: blog-staging + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: letsencrypt + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" + nginx.ingress.kubernetes.io/server-snippets: | + location / { + proxy_set_header Upgrade $http_upgrade; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $host; + proxy_set_header Connection "upgrade"; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Upgrade $http_upgrade; + proxy_cache_bypass $http_upgrade; + } +spec: + tls: + - hosts: + - blog.local.ahmza.com + secretName: local-ahmza-com-tls + rules: + - host: "blog.local.ahmza.com" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: blog-staging-svc + port: + number: 80 diff --git a/manifest/staging/svc-blog.yml b/manifest/staging/svc-blog.yml new file mode 100644 index 0000000..2a6e856 --- /dev/null +++ b/manifest/staging/svc-blog.yml @@ -0,0 +1,17 @@ + +apiVersion: v1 +kind: Service +metadata: + name: blog-staging-svc + namespace: blog-staging + labels: + app: blog-staging-app +spec: + type: ClusterIP + ports: + - name: http + port: 80 + targetPort: 80 + protocol: TCP + selector: + app: blog-staging-app