Files
shopadmin/litecharms-shopadmin-uat.yml
Khwezi Mngoma 5c34663617
continuous-integration/drone/pr Build is passing
Fixed manifest ev variable reference syntax
2026-05-20 13:41:31 +02:00

187 lines
5.7 KiB
YAML

---
apiVersion: v1
kind: Namespace
metadata:
name: litecharms-shopadmin-uat
---
apiVersion: v1
kind: ConfigMap
metadata:
name: shopadmin-config
namespace: litecharms-shopadmin-uat
data:
ASPNETCORE_ENVIRONMENT: "Development"
ASPNETCORE_URLS: "http://0.0.0.0:8080"
Monitoring__Address: "http://aspire-dashboard-service.aspire.svc.cluster.local:18889"
Monitoring__ServiceName: "LiteCharms.ShopAdmin.Uat"
IdKongisa__Authority: "https://id.khongisa.co.za/application/o/litecharms-shopadmin"
BooshopS3Settings__ServiceUrl: "http://garage.garage.svc.cluster.local:3900"
BooshopS3Settings__Region: "garage"
---
apiVersion: v1
kind: Secret
metadata:
name: shopadmin-secrets
namespace: litecharms-shopadmin-uat
type: Opaque
data:
connection-string: SG9zdD0xOTIuMTY4LjEuMTcwO0RhdGFiYXNlPXNob3AtZGV2O1VzZXJuYW1lPXNob3AtZGV2LXVzZXI7UGFzc3dvcmQ9a1ZWbW9XS0ozeHpnUVg7UGVyc2lzdCBTZWN1cml0eSBJbmZvPVRydWU=
connection-string-quartz: SG9zdD0xOTIuMTY4LjEuMTcwO0RhdGFiYXNlPXNjaGVkdWxlci1kZXY7VXNlcm5hbWU9c2NoZWR1bGVyLWRldi11c2VyO1Bhc3N3b3JkPWtWVm1vV0tKM3h6Z1FYO1BlcnNpc3QgU2VjdXJpdHkgSW5mbz1UcnVl
aspire-apikey: bWMzRzYzSzJqNVpPRXNpMEFqTW9qTFRYbTFLRVpGY3R6SUlqU3dEaVRHdXQ4cUdTa1B1V3d4R1AxUmJzY0pVbw==
auth-clientid: NUxldE5hSERsUlhOWXo1N3FkMVV1RWN4R01uUDNmT3FXc0RHcWdjUg==
auth-clientsecret: a3ZxN3k1anc0M0g4WDRjQW91eGRqRDhNNXdxVUhUQ2I4UjNSVjNVWjI4TUZjTk51NWxhM3g3V1ZZRzQ2QnJFMjVPMnhXRmhoeEk0VXNSaFlMTHRqSGRhWWVrUTBmdHpIQ3ZNczV5TXdRdERpcDBkM3QzTkNDa0RtN1JXeW1XSTg=
bookshop-s3-accesskey: R0s1MTRkMmNlOGRjNjkyMzdhMDVjMDFlZWY=
bookshop-s3-secretkey: ZWFhZmVkYTFhZWQ0MDllY2ZlNjA3MTRlY2RhNTQ5YjgyYmRmNWEzZGFmOWYxOGRkNjFmNjZiNDk3M2E2NDgyZQ==
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shopadmin-data-pvc
namespace: litecharms-shopadmin-uat
spec:
accessModes: ["ReadWriteMany"]
storageClassName: nfs-storage
resources:
requests:
storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: litecharms-shopadmin
namespace: litecharms-shopadmin-uat
spec:
replicas: 1
selector:
matchLabels:
app: shopadmin
template:
metadata:
labels:
app: shopadmin
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
containers:
- name: shopadmin
image: nexus.khongisa.co.za/litecharms-shopadmin:latest
imagePullPolicy: Always
resources:
limits:
memory: "512Mi"
cpu: "500m"
requests:
memory: "256Mi"
cpu: "100m"
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: shopadmin-config
env:
- name: BookshopS3Settings__AccessKey
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: bookshop-s3-accesskey
- name: BookshopS3Settings__SecretKey
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: bookshop-s3-secretkey
- name: ConnectionStrings__PostgresScheduler
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: connection-string-quartz
- name: ConnectionStrings__PostgresShop
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: connection-string
- name: Monitoring__Address
valueFrom:
configMapKeyRef:
name: shopadmin-config
key: Monitoring__Address
- name: Monitoring__ServiceName
valueFrom:
configMapKeyRef:
name: shopadmin-config
key: Monitoring__ServiceName
- name: Monitoring__ApiKey
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: aspire-apikey
- name: IdKongisa__ClientId
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: auth-clientid
- name: IdKongisa__ClientSecret
valueFrom:
secretKeyRef:
name: shopadmin-secrets
key: auth-clientsecret
volumeMounts:
- name: data
mountPath: /app/wwwroot/content
resources:
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 3
periodSeconds: 5
volumes:
- name: data
persistentVolumeClaim:
claimName: shopadmin-data-pvc
---
apiVersion: v1
kind: Service
metadata:
name: shopadmin-service
namespace: litecharms-shopadmin-uat
spec:
type: ClusterIP
selector:
app: shopadmin
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: shopadmin-web-secure
namespace: litecharms-shopadmin-uat
spec:
entryPoints:
- websecure
routes:
- match: Host(`shopadmin.uat.khongisa.co.za`)
kind: Rule
services:
- name: shopadmin-service
port: 80
sticky:
cookie:
name: "lp-sticky-session"
httpOnly: true
secure: true
tls: {}