diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index db7f51f..d38429f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ stages: .kube-context: before_script: - - if [ -n "$KUBE_CONTEXT" ]; then kubectl config use-context "$KUBE_CONTEXT"; fi + - if [ -n "$KUBE_CONTEXT" ]; then kubectl config use-context "$KUBE_CONTEXT"; fi build: stage: build @@ -12,28 +12,27 @@ build: variables: STORAGE_DRIVER: vfs BUILDAH_FORMAT: docker - FQ_IMAGE_NAME: "$REGISTRY/yaemiku/$CI_PROJECT_NAME" + IMAGE: "$REGISTRY/$REGISTRY_USERNAME/$CI_PROJECT_NAME" before_script: - buildah login -u "$REGISTRY_USERNAME" -p "$REGISTRY_PASSWORD" "$REGISTRY" script: - buildah images - - buildah build -t $FQ_IMAGE_NAME -t $FQ_IMAGE_NAME #:$CI_COMMIT_TAG + - buildah build -t $IMAGE:latest -t $IMAGE:$CI_COMMIT_TAG - buildah images - - buildah push --all $FQ_IMAGE_NAME + - buildah push --all $IMAGE after_script: - buildah logout "$REGISTRY" -# rules: -# - if: $CI_COMMIT_TAG + rules: + - if: $CI_COMMIT_TAG deploy: stage: deploy + when: always extends: [.kube-context] image: name: bitnami/kubectl:latest - entrypoint: [""] + entrypoint: [""] script: - ls - - kubectl apply -f $CI_PROJECT_DIR/hamburger.yaml + - cat $CI_PROJECT_DIR/deployment.yaml | envsubst | kubectl apply -f - - kubectl get pods - # rules: - # - if: $CI_COMMIT_TAG diff --git a/deployment.yaml b/deployment.yaml new file mode 100644 index 0000000..cf5f1f2 --- /dev/null +++ b/deployment.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: hamburger +spec: + selector: + matchLabels: + app: hamburger + replicas: 1 + template: + metadata: + labels: + app: hamburger + spec: + containers: + - name: hamburger + image: "$REGISTRY/$REGISTRY_USERNAME/$CI_PROJECT_NAME" + ports: + - name: app-port + containerPort: 3000 + resources: + requests: + memory: "64Mi" + cpu: "250m" + limits: + memory: "128Mi" + cpu: "500m" + imagePullSecrets: + - name: regcred + +--- +apiVersion: v1 +kind: Service +metadata: + name: hamburger +spec: + ports: + - name: app-svc-port + port: 80 + targetPort: app-port + selector: + app: hamburger + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: hamburger +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`yaemiku.dev`) + services: + - kind: Service + name: hamburger + port: app-svc-port + tls: + secretName: hamburger-tls + certResolver: letsencrypt-prod + domains: + - main: yaemiku.dev + sans: + - www.yaemiku.dev diff --git a/hamburger.yaml b/hamburger.yaml deleted file mode 100644 index 883a81e..0000000 --- a/hamburger.yaml +++ /dev/null @@ -1,60 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: hamburger -spec: - selector: - matchLabels: - app: hamburger - replicas: 1 - template: - metadata: - labels: - app: hamburger - spec: - containers: - - name: hamburger - image: registry.yaemiku.dev/yaemiku/hamburger:latest - ports: - - containerPort: 3000 - imagePullSecrets: - - name: regcred - ---- -apiVersion: v1 -kind: Service -metadata: - name: hamburger -spec: - ports: - - port: 3000 - name: nextjs - selector: - app: hamburger - - ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: hamburger - annotations: - cert-manager.io/cluster-issuer: letsencrypt-prod - traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd -spec: - ingressClassName: traefik - rules: - - host: yaemiku.dev - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: hamburger - port: - name: nextjs - tls: - - secretName: hamburger-tls - hosts: - - yaemiku.dev \ No newline at end of file diff --git a/package.json b/package.json index 8038998..febeb73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hamburger", - "version": "0.1.0", + "version": "1.0", "private": true, "scripts": { "dev": "next dev",