diff --git a/apps/fc-chat/fc-chat.yaml b/apps/fc-chat/fc-chat.yaml new file mode 100644 index 0000000..91e5472 --- /dev/null +++ b/apps/fc-chat/fc-chat.yaml @@ -0,0 +1,100 @@ +# FlowerCore Chat — AI chat service +--- +apiVersion: v1 +kind: Namespace +metadata: + name: fc-chat + labels: + app.kubernetes.io/part-of: bluejay-infra +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: chat-web + namespace: fc-chat + labels: + app: chat-web +spec: + replicas: 1 + selector: + matchLabels: + app: chat-web + template: + metadata: + labels: + app: chat-web + spec: + containers: + - name: chat-web + image: localhost/fc-chat-web:v202604132015 + imagePullPolicy: Never + ports: + - containerPort: 8080 + name: http + env: + - name: ASPNETCORE_ENVIRONMENT + value: Production + - name: ASPNETCORE_URLS + value: "http://+:8080" + resources: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "500m" + livenessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 +--- +apiVersion: v1 +kind: Service +metadata: + name: chat-web + namespace: fc-chat +spec: + selector: + app: chat-web + ports: + - port: 80 + targetPort: 8080 + name: http +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: chat-web-tls + namespace: fc-chat +spec: + secretName: chat-web-tls + issuerRef: + name: step-ca-acme + kind: ClusterIssuer + dnsNames: + - chat.iamworkin.lan +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: chat-web + namespace: fc-chat +spec: + entryPoints: + - websecure + routes: + - match: Host(`chat.iamworkin.lan`) + kind: Rule + services: + - name: chat-web + port: 80 + tls: + secretName: chat-web-tls diff --git a/apps/fc-messageboard/fc-messageboard.yaml b/apps/fc-messageboard/fc-messageboard.yaml new file mode 100644 index 0000000..2cf5800 --- /dev/null +++ b/apps/fc-messageboard/fc-messageboard.yaml @@ -0,0 +1,100 @@ +# FlowerCore MessageBoard — Message board service +--- +apiVersion: v1 +kind: Namespace +metadata: + name: fc-messageboard + labels: + app.kubernetes.io/part-of: bluejay-infra +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: messageboard-web + namespace: fc-messageboard + labels: + app: messageboard-web +spec: + replicas: 1 + selector: + matchLabels: + app: messageboard-web + template: + metadata: + labels: + app: messageboard-web + spec: + containers: + - name: messageboard-web + image: localhost/fc-messageboard-web:v202604132015 + imagePullPolicy: Never + ports: + - containerPort: 8080 + name: http + env: + - name: ASPNETCORE_ENVIRONMENT + value: Production + - name: ASPNETCORE_URLS + value: "http://+:8080" + resources: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "500m" + livenessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 +--- +apiVersion: v1 +kind: Service +metadata: + name: messageboard-web + namespace: fc-messageboard +spec: + selector: + app: messageboard-web + ports: + - port: 80 + targetPort: 8080 + name: http +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: messageboard-web-tls + namespace: fc-messageboard +spec: + secretName: messageboard-web-tls + issuerRef: + name: step-ca-acme + kind: ClusterIssuer + dnsNames: + - messageboard.iamworkin.lan +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: messageboard-web + namespace: fc-messageboard +spec: + entryPoints: + - websecure + routes: + - match: Host(`messageboard.iamworkin.lan`) + kind: Rule + services: + - name: messageboard-web + port: 80 + tls: + secretName: messageboard-web-tls diff --git a/apps/fc-signalcontrol/fc-signalcontrol.yaml b/apps/fc-signalcontrol/fc-signalcontrol.yaml new file mode 100644 index 0000000..49c6422 --- /dev/null +++ b/apps/fc-signalcontrol/fc-signalcontrol.yaml @@ -0,0 +1,100 @@ +# FlowerCore SignalControl — Signal sequencing and relay coordination +--- +apiVersion: v1 +kind: Namespace +metadata: + name: fc-signalcontrol + labels: + app.kubernetes.io/part-of: bluejay-infra +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: signalcontrol-web + namespace: fc-signalcontrol + labels: + app: signalcontrol-web +spec: + replicas: 1 + selector: + matchLabels: + app: signalcontrol-web + template: + metadata: + labels: + app: signalcontrol-web + spec: + containers: + - name: signalcontrol-web + image: localhost/fc-signalcontrol-web:v202604132015 + imagePullPolicy: Never + ports: + - containerPort: 8080 + name: http + env: + - name: ASPNETCORE_ENVIRONMENT + value: Production + - name: ASPNETCORE_URLS + value: "http://+:8080" + resources: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "500m" + livenessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 +--- +apiVersion: v1 +kind: Service +metadata: + name: signalcontrol-web + namespace: fc-signalcontrol +spec: + selector: + app: signalcontrol-web + ports: + - port: 80 + targetPort: 8080 + name: http +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: signalcontrol-web-tls + namespace: fc-signalcontrol +spec: + secretName: signalcontrol-web-tls + issuerRef: + name: step-ca-acme + kind: ClusterIssuer + dnsNames: + - signalcontrol.iamworkin.lan +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: signalcontrol-web + namespace: fc-signalcontrol +spec: + entryPoints: + - websecure + routes: + - match: Host(`signalcontrol.iamworkin.lan`) + kind: Rule + services: + - name: signalcontrol-web + port: 80 + tls: + secretName: signalcontrol-web-tls diff --git a/apps/fc-ttsreader/fc-ttsreader.yaml b/apps/fc-ttsreader/fc-ttsreader.yaml new file mode 100644 index 0000000..32059e0 --- /dev/null +++ b/apps/fc-ttsreader/fc-ttsreader.yaml @@ -0,0 +1,100 @@ +# FlowerCore TTS Reader — Text-to-speech book reader service +--- +apiVersion: v1 +kind: Namespace +metadata: + name: fc-ttsreader + labels: + app.kubernetes.io/part-of: bluejay-infra +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ttsreader-web + namespace: fc-ttsreader + labels: + app: ttsreader-web +spec: + replicas: 1 + selector: + matchLabels: + app: ttsreader-web + template: + metadata: + labels: + app: ttsreader-web + spec: + containers: + - name: ttsreader-web + image: localhost/fc-ttsreader-web:v202604132015 + imagePullPolicy: Never + ports: + - containerPort: 8080 + name: http + env: + - name: ASPNETCORE_ENVIRONMENT + value: Production + - name: ASPNETCORE_URLS + value: "http://+:8080" + resources: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "500m" + livenessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /metrics/prometheus + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 +--- +apiVersion: v1 +kind: Service +metadata: + name: ttsreader-web + namespace: fc-ttsreader +spec: + selector: + app: ttsreader-web + ports: + - port: 80 + targetPort: 8080 + name: http +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: ttsreader-web-tls + namespace: fc-ttsreader +spec: + secretName: ttsreader-web-tls + issuerRef: + name: step-ca-acme + kind: ClusterIssuer + dnsNames: + - ttsreader.iamworkin.lan +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: ttsreader-web + namespace: fc-ttsreader +spec: + entryPoints: + - websecure + routes: + - match: Host(`ttsreader.iamworkin.lan`) + kind: Rule + services: + - name: ttsreader-web + port: 80 + tls: + secretName: ttsreader-web-tls