diff --git a/.k8s/base/cert-manager-issuer.yml b/.k8s/base/cert-manager-issuer.yml new file mode 100644 index 0000000..72463f3 --- /dev/null +++ b/.k8s/base/cert-manager-issuer.yml @@ -0,0 +1,15 @@ +apiVersion: cert-manager.io/v1 +kind: Issuer +metadata: + name: letsencrypt-louper +spec: + acme: + email: ezynda@mark3labs.com + server: https://acme-v02.api.letsencrypt.org/directory + privateKeySecretRef: + name: letsencrypt-louper-private-key + solvers: + # Use the HTTP-01 challenge provider + - http01: + ingress: + class: nginx diff --git a/.k8s/base/deployment.yml b/.k8s/base/deployment.yml index efb8c11..b3f5cdd 100644 --- a/.k8s/base/deployment.yml +++ b/.k8s/base/deployment.yml @@ -17,6 +17,9 @@ spec: containers: - name: louper-container image: mark3labs/louper-web:latest + ports: + - name: http + containerPort: 3000 volumeMounts: - mountPath: '/app/data' name: volume diff --git a/.k8s/base/ingress.yml b/.k8s/base/ingress.yml new file mode 100644 index 0000000..983e4bb --- /dev/null +++ b/.k8s/base/ingress.yml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: louper-ingress + annotations: + cert-manager.io/issuer: letsencrypt-louper +spec: + tls: + - hosts: + - louper.dev + secretName: letsencrypt-louper + rules: + - host: louper.dev + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: louper-service + port: + number: 3000 + ingressClassName: nginx diff --git a/.k8s/base/kustomization.yml b/.k8s/base/kustomization.yml index 141988d..4bf4610 100644 --- a/.k8s/base/kustomization.yml +++ b/.k8s/base/kustomization.yml @@ -4,3 +4,5 @@ kind: Kustomization resources: - deployment.yml - service.yml + - ingress.yml + - cert-manager-issuer.yml diff --git a/.k8s/base/service.yml b/.k8s/base/service.yml index 0ecb4fc..4d3d7eb 100644 --- a/.k8s/base/service.yml +++ b/.k8s/base/service.yml @@ -3,11 +3,11 @@ kind: Service metadata: name: louper-service spec: - type: NodePort + type: ClusterIP ports: - - port: 3000 + - name: http + port: 80 targetPort: 3000 - nodePort: 31942 protocol: TCP selector: app: louper diff --git a/.k8s/staging/application.yml b/.k8s/staging/application.yml index 9da3647..007127b 100644 --- a/.k8s/staging/application.yml +++ b/.k8s/staging/application.yml @@ -20,3 +20,5 @@ spec: automated: prune: true selfHeal: true + syncOptions: + - ApplyOutOfSyncOnly=true diff --git a/.k8s/staging/ingress-patch.yml b/.k8s/staging/ingress-patch.yml new file mode 100644 index 0000000..45977f4 --- /dev/null +++ b/.k8s/staging/ingress-patch.yml @@ -0,0 +1,35 @@ +# apiVersion: networking.k8s.io/v1 +# kind: Ingress +# metadata: +# name: louper-ingress +# annotations: +# cert-manager.io/issuer: letsencrypt-louper +# spec: +# tls: +# - hosts: +# - louper.dev +# secretName: letsencrypt-louper +# rules: +# - host: louper.dev +# http: +# paths: +# - path: / +# pathType: Prefix +# backend: +# service: +# name: louper-service +# port: +# number: 3000 +# ingressClassName: nginx +- op: replace + path: /spec/rules/0/host + value: staging.louper.dev +- op: replace + path: /spec/rules/0/http/paths/0/backend/service/name + value: louper-service-staging +- op: replace + path: '/metadata/annotations/cert-manager.io~1issuer' + value: letsencrypt-louper-staging +- op: replace + path: /spec/tls/0/hosts/0 + value: staging.louper.dev diff --git a/.k8s/staging/kustomization.yml b/.k8s/staging/kustomization.yml index 6bacda3..eead715 100644 --- a/.k8s/staging/kustomization.yml +++ b/.k8s/staging/kustomization.yml @@ -12,9 +12,9 @@ patches: name: louper-deployment path: deployment-patch.yml - target: - kind: Service - name: louper-service - path: service-patch.yml + kind: Ingress + name: louper-ingress + path: ingress-patch.yml transformers: - |- apiVersion: builtin diff --git a/.k8s/staging/service-patch.yml b/.k8s/staging/service-patch.yml deleted file mode 100644 index 35aed28..0000000 --- a/.k8s/staging/service-patch.yml +++ /dev/null @@ -1,17 +0,0 @@ -# apiVersion: v1 -# kind: Service -# metadata: -# namespace: louper -# name: louper-service -# spec: -# type: NodePort -# ports: -# - port: 3000 -# targetPort: 3000 -# nodePort: 31942 -# protocol: TCP -# selector: -# app: louper -- op: replace - path: /spec/ports/0/nodePort - value: 31943 diff --git a/README.md b/README.md index 954c275..d608f64 100644 --- a/README.md +++ b/README.md @@ -133,10 +133,11 @@ Contributions are what make the open source community such an amazing place to b ### Creating A Pull Request 1. Fork the Project -2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) -3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) -4. Push to the Branch (`git push origin feature/AmazingFeature`) -5. Open a Pull Request +2. Check out the `dev` branch (`git checkout dev`) +3. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +4. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +5. Push to the Branch (`git push origin feature/AmazingFeature`) +6. Open a Pull Request ## License