Merge pull request #1 from kebrahimpour/dev
Some checks are pending
Build and Deploy / build-and-deploy (push) Waiting to run

Dev
This commit is contained in:
Keyvan 2025-04-26 10:30:55 +02:00 committed by GitHub
commit 26ba20c55e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 67 additions and 3 deletions

View file

@ -16,7 +16,7 @@ env:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
permissions:
contents: read
packages: write
@ -48,7 +48,7 @@ jobs:
- name: Detect container name
id: detect-container
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
env:
NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}
@ -58,7 +58,7 @@ jobs:
IMAGE="ghcr.io/${{ github.repository }}:$VERSION"
CONTAINER="${{ steps.detect-container.outputs.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:
VERSION: ${{ vars.VERSION || 'latest' }}
NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }}

View 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

View 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

View 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