Merge pull request #1 from kebrahimpour/dev
Some checks are pending
Build and Deploy / build-and-deploy (push) Waiting to run
Some checks are pending
Build and Deploy / build-and-deploy (push) Waiting to run
Dev
This commit is contained in:
commit
26ba20c55e
4 changed files with 67 additions and 3 deletions
6
.github/workflows/build-and-deploy.yaml
vendored
6
.github/workflows/build-and-deploy.yaml
vendored
|
|
@ -16,7 +16,7 @@ env:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
packages: write
|
packages: write
|
||||||
|
|
@ -48,7 +48,7 @@ jobs:
|
||||||
- name: Detect container name
|
- name: Detect container name
|
||||||
id: detect-container
|
id: detect-container
|
||||||
run: |
|
run: |
|
||||||
CONTAINER=$(kubectl -n $NAMESPACE get deployment homepage -o=jsonpath='{.spec.template.spec.containers[0].name}')
|
CONTAINER=$(kubectl -n $NAMESPACE get deployment landing-page -o=jsonpath='{.spec.template.spec.containers[0].name}')
|
||||||
echo "container=$CONTAINER" >> $GITHUB_OUTPUT
|
echo "container=$CONTAINER" >> $GITHUB_OUTPUT
|
||||||
env:
|
env:
|
||||||
NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}
|
NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}
|
||||||
|
|
@ -58,7 +58,7 @@ jobs:
|
||||||
IMAGE="ghcr.io/${{ github.repository }}:$VERSION"
|
IMAGE="ghcr.io/${{ github.repository }}:$VERSION"
|
||||||
CONTAINER="${{ steps.detect-container.outputs.container }}"
|
CONTAINER="${{ steps.detect-container.outputs.container }}"
|
||||||
echo "Setting image for container $CONTAINER"
|
echo "Setting image for container $CONTAINER"
|
||||||
kubectl set image deployment/homepage $CONTAINER=$IMAGE -n $NAMESPACE
|
kubectl set image deployment/landing-page $CONTAINER=$IMAGE -n $NAMESPACE
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ vars.VERSION || 'latest' }}
|
VERSION: ${{ vars.VERSION || 'latest' }}
|
||||||
NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}
|
NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}
|
||||||
|
|
|
||||||
30
infra/kubernetes/landing-page/deployment.yaml
Normal file
30
infra/kubernetes/landing-page/deployment.yaml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: landing-page
|
||||||
|
labels:
|
||||||
|
app: landing-page
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: landing-page
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: landing-page
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: landing-page
|
||||||
|
image: ghcr.io/kebrahimpour/avisenna-landing-page:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "250m"
|
||||||
|
requests:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: ghcr-secret
|
||||||
23
infra/kubernetes/landing-page/ingress.yaml
Normal file
23
infra/kubernetes/landing-page/ingress.yaml
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: landing-page
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
spec:
|
||||||
|
ingressClassName: traefik
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- avisenna-engineering.de
|
||||||
|
secretName: landing-page-tls
|
||||||
|
rules:
|
||||||
|
- host: avisenna-engineering.de
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: landing-page
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
11
infra/kubernetes/landing-page/service.yaml
Normal file
11
infra/kubernetes/landing-page/service.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: landing-page
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: landing-page
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
type: ClusterIP
|
||||||
Loading…
Reference in a new issue