diff --git a/.github/workflows/auth-deployment.yaml b/.github/workflows/auth-deployment.yaml new file mode 100644 index 0000000..aaa8e29 --- /dev/null +++ b/.github/workflows/auth-deployment.yaml @@ -0,0 +1,27 @@ +# name: auth-deployment + +# on: +# push: +# branches: +# - master +# paths: +# - "auth/**" + +# jobs: +# build: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v2 +# - run: cd auth && docker build . -t jesusz0r/auth +# - run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD +# env: +# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} +# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} +# - run: docker push jesusz0r/auth +# - uses: digitalocean/action-doctl@v2 +# with: +# token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} +# - run: doctl kubernetes cluster kubeconfig save $DIGITAL_OCEAN_KUBERNETES_CLUSTER +# env: +# DIGITAL_OCEAN_KUBERNETES_CLUSTER: ${{ secrets.DIGITAL_OCEAN_KUBERNETES_CLUSTER }} +# - run: kubectl rollout restart deployment auth-deployment diff --git a/.github/workflows/deploy-manifest.yaml b/.github/workflows/deploy-manifest.yaml new file mode 100644 index 0000000..7089be2 --- /dev/null +++ b/.github/workflows/deploy-manifest.yaml @@ -0,0 +1,21 @@ +# name: deploy-manifest + +# on: +# push: +# branches: +# - master +# paths: +# - "infra/**" + +# jobs: +# build: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v2 +# - uses: digitalocean/action-doctl@v2 +# with: +# token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} +# - run: doctl kubernetes cluster kubeconfig save $DIGITAL_OCEAN_KUBERNETES_CLUSTER +# env: +# DIGITAL_OCEAN_KUBERNETES_CLUSTER: ${{ secrets.DIGITAL_OCEAN_KUBERNETES_CLUSTER }} +# - run: kubectl apply -f infra/k8s -f infra/k8s-prod diff --git a/README.md b/README.md new file mode 100644 index 0000000..7de1a5d --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +## How to setup DigitalOcean Kubernetes Cluster + + - Go to DigitalOcean and create the cluster. + - Install doctl https://github.com/digitalocean/doctl into our local machine. + - Authenticate using doctl auth init + - doctl kubernetes + - Change context to our DigitalOcean cluster context + - Setup ingress-nginx, create secrets, etc. \ No newline at end of file diff --git a/infra/k8s/ingress-srv.yaml b/infra/k8s-dev/ingress-srv.yaml similarity index 100% rename from infra/k8s/ingress-srv.yaml rename to infra/k8s-dev/ingress-srv.yaml diff --git a/infra/k8s-prod/ingress-srv.yaml b/infra/k8s-prod/ingress-srv.yaml new file mode 100644 index 0000000..d88b6f7 --- /dev/null +++ b/infra/k8s-prod/ingress-srv.yaml @@ -0,0 +1,32 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: ingress-service + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + rules: + - host: local.ticketing.com + http: + paths: + - path: /api/users/?(.*) + backend: + serviceName: auth-service + servicePort: 8000 + - path: /api/tickets/?(.*) + backend: + serviceName: tickets-service + servicePort: 8000 + - path: /api/orders/?(.*) + backend: + serviceName: orders-service + servicePort: 8000 + - path: /api/payments/?(.*) + backend: + serviceName: payments-service + servicePort: 8000 + - path: /?(.*) + backend: + serviceName: client-service + servicePort: 3000 diff --git a/skaffold.yaml b/skaffold.yaml index 813c592..ec9d590 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -4,6 +4,7 @@ deploy: kubectl: manifests: - ./infra/k8s/* + - ./infra/k8s-dev/* build: local: push: false