add ci/cd script

This commit is contained in:
Rido Akbar Ibrahim 2021-12-20 15:03:36 +07:00
parent f2b754a187
commit 0c22a77565
8 changed files with 103 additions and 0 deletions

1
.dockerignore Normal file
View File

@ -0,0 +1 @@
node_modules

12
Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM node:14-alpine as build-deps
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
RUN yarn
COPY . ./
RUN yarn build
FROM nginx:stable-alpine
COPY --from=build-deps /usr/src/app/build /usr/share/nginx/html
COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

View File

@ -0,0 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: ppob-frontend
namespace: empatnusabangsa-staging
spec:
selector:
matchLabels:
app: ppob-frontend
replicas: 1
template:
metadata:
labels:
app: ppob-frontend
spec:
containers:
- name: ppob-frontend
image: registry-harbor.app.bangun-kreatif.com/empatnusabangsa/ppob-frontend:1
ports:
- containerPort: 80
imagePullSecrets:
- name: regcred

25
k8s/staging/ingress.yaml Normal file
View File

@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ppob-frontend-ingress
namespace: empatnusabangsa-staging
annotations:
kubernetes.io/ingress.class: "traefik"
cert-manager.io/cluster-issuer: letsencrypt-prod
#traefik.ingress.kubernetes.io/router.middlewares: empatnusabangsa-staging-redirect-https@kubernetescrd
spec:
rules:
- host: "ppob-frontend.k3s.bangun-kreatif.com"
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: ppob-frontend
port:
number: 80
tls:
- hosts:
- "ppob-frontend.k3s.bangun-kreatif.com"
secretName: ppob-frontend-k3s-bangun-kreatif-com-tls

View File

@ -0,0 +1,9 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: redirect-https
namespace: empatnusabangsa-staging
spec:
redirectScheme:
scheme: https
permanent: true

View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: empatnusabangsa-staging

13
k8s/staging/service.yaml Normal file
View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: ppob-frontend
namespace: empatnusabangsa-staging
labels:
run: ppob-frontend
spec:
ports:
- port: 80
protocol: TCP
selector:
app: ppob-frontend

17
nginx/nginx.conf Normal file
View File

@ -0,0 +1,17 @@
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}