gx10-gitops: capture live manifests for 32 product namespaces (ArgoCD adoption source)
This commit is contained in:
11
apps-gx10/fc-system/configmap-fc-landing-html.json
Normal file
11
apps-gx10/fc-system/configmap-fc-landing-html.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"data": {
|
||||
"index.html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <title>FlowerCore</title>\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n background: linear-gradient(135deg, #0a1628 0%, #1a2744 50%, #0d1f3c 100%);\n color: #e0e8f0;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .hero {\n text-align: center;\n padding: 3rem;\n max-width: 800px;\n }\n .logo {\n font-size: 5rem;\n margin-bottom: 1.5rem;\n filter: drop-shadow(0 0 20px rgba(74, 158, 255, 0.3));\n }\n h1 {\n font-size: 3rem;\n background: linear-gradient(135deg, #4a9eff, #7ab3ff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n margin-bottom: 0.5rem;\n }\n .subtitle {\n font-size: 1.3rem;\n color: #7ab3ff;\n font-weight: 300;\n margin-bottom: 1rem;\n }\n .description {\n font-size: 1rem;\n color: #8aa8c4;\n line-height: 1.6;\n margin-bottom: 3rem;\n max-width: 600px;\n }\n .services {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n width: 100%;\n max-width: 700px;\n padding: 0 1rem;\n }\n .service {\n background: rgba(74, 158, 255, 0.08);\n border: 1px solid rgba(74, 158, 255, 0.2);\n border-radius: 8px;\n padding: 1.2rem;\n text-decoration: none;\n color: inherit;\n transition: all 0.2s;\n }\n .service:hover {\n background: rgba(74, 158, 255, 0.15);\n border-color: rgba(74, 158, 255, 0.5);\n transform: translateY(-2px);\n }\n .service h3 { color: #4a9eff; font-size: 0.95rem; margin-bottom: 0.3rem; }\n .service p { color: #8aa8c4; font-size: 0.8rem; }\n .status-bar {\n display: flex;\n gap: 2rem;\n margin-top: 2rem;\n padding: 1rem 2rem;\n background: rgba(74, 158, 255, 0.05);\n border-radius: 8px;\n border: 1px solid rgba(74, 158, 255, 0.1);\n }\n .status-item { text-align: center; }\n .status-item .value { color: #4a9eff; font-size: 1.5rem; font-weight: 700; }\n .status-item .label { color: #6a8ca4; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 1px; }\n .footer {\n margin-top: 3rem;\n color: #4a6580;\n font-size: 0.8rem;\n }\n .footer a { color: #4a6580; text-decoration: none; }\n .footer a:hover { color: #7ab3ff; }\n </style>\n</head>\n<body>\n <div class=\"hero\">\n <div class=\"logo\">🌻</div>\n <h1>FlowerCore</h1>\n <p class=\"subtitle\">Blue Jay Lab</p>\n <p class=\"description\">\n Multi-tenant service management platform built on .NET 10,\n Kubernetes, and GitOps. Digital signage, telephony IVR,\n MySQL/PHP hosting, and infrastructure automation.\n </p>\n </div>\n <div class=\"services\">\n <a class=\"service\" href=\"https://gitea.flowercore.io\">\n <h3>Source</h3>\n <p>Gitea repositories</p>\n </a>\n <a class=\"service\" href=\"https://webmail.flowercore.io\">\n <h3>Mail</h3>\n <p>Webmail access</p>\n </a>\n <a class=\"service\" href=\"https://element.flowercore.io\">\n <h3>Chat</h3>\n <p>Matrix messaging</p>\n </a>\n <a class=\"service\" href=\"https://github.com/FlowerCoreIO\">\n <h3>GitHub</h3>\n <p>Open source</p>\n </a>\n </div>\n <div class=\"status-bar\">\n <div class=\"status-item\">\n <div class=\"value\">17</div>\n <div class=\"label\">Services</div>\n </div>\n <div class=\"status-item\">\n <div class=\"value\">13</div>\n <div class=\"label\">VLANs</div>\n </div>\n <div class=\"status-item\">\n <div class=\"value\">12k+</div>\n <div class=\"label\">Tests</div>\n </div>\n </div>\n <p class=\"footer\">\n FlowerCore · Bare-metal RKE2 · ArgoCD managed\n · <a href=\"mailto:admin@flowercore.io\">Contact</a>\n </p>\n</body>\n</html>\n"
|
||||
},
|
||||
"kind": "ConfigMap",
|
||||
"metadata": {
|
||||
"name": "fc-landing-html",
|
||||
"namespace": "fc-system"
|
||||
}
|
||||
}
|
||||
11
apps-gx10/fc-system/configmap-fc-landing-nginx-conf.json
Normal file
11
apps-gx10/fc-system/configmap-fc-landing-nginx-conf.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"data": {
|
||||
"default.conf": "server {\n listen 80;\n server_name _;\n root /usr/share/nginx/html;\n index index.html;\n\n location / {\n try_files $uri $uri/ =404;\n }\n\n location /healthz {\n access_log off;\n return 200 \"ok\";\n add_header Content-Type text/plain;\n }\n}\n"
|
||||
},
|
||||
"kind": "ConfigMap",
|
||||
"metadata": {
|
||||
"name": "fc-landing-nginx-conf",
|
||||
"namespace": "fc-system"
|
||||
}
|
||||
}
|
||||
11
apps-gx10/fc-system/configmap-kiosk-web-config.json
Normal file
11
apps-gx10/fc-system/configmap-kiosk-web-config.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"data": {
|
||||
"appsettings.Production.json": "{\n \"FlowerCore\": {\n \"Database\": {\n \"Provider\": \"Sqlite\",\n \"ConnectionStrings\": {\n \"Sqlite\": \"Data Source=/app/data/kiosk.db\"\n }\n },\n \"Kiosk\": {\n \"Profiles\": {\n \"Backend\": \"K8s\",\n \"LonghornRoot\": \"/var/lib/flowercore/kiosk/profiles/data\"\n }\n },\n \"PrintWeb\": {\n \"Url\": \"http://10.0.57.16:5200\"\n }\n },\n \"Serilog\": {\n \"MinimumLevel\": {\n \"Default\": \"Information\",\n \"Override\": {\n \"Microsoft\": \"Warning\",\n \"Microsoft.EntityFrameworkCore\": \"Warning\"\n }\n },\n \"WriteTo\": [\n {\n \"Name\": \"Console\",\n \"Args\": {\n \"formatter\": \"Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact\"\n }\n }\n ],\n \"Enrich\": [\n \"FromLogContext\",\n \"WithProperty\"\n ],\n \"Properties\": {\n \"Service\": \"Kiosk.Web\",\n \"Environment\": \"Production\"\n }\n },\n \"LibraryWeb\": {\n \"Url\": \"http://library.iamworkin.lan:5100\"\n },\n \"Security\": {\n \"Mode\": \"apikey\",\n \"ApiKeys\": [],\n \"AdminApiKeys\": [],\n \"AgentApiKeys\": [],\n \"ExemptPaths\": [ \"/health\", \"/metrics\", \"/_blazor\", \"/_framework\", \"/css\", \"/hubs\" ]\n },\n \"Logging\": {\n \"LogLevel\": {\n \"Default\": \"Information\",\n \"Microsoft\": \"Warning\"\n }\n },\n \"AllowedHosts\": \"*\"\n}\n"
|
||||
},
|
||||
"kind": "ConfigMap",
|
||||
"metadata": {
|
||||
"name": "kiosk-web-config",
|
||||
"namespace": "fc-system"
|
||||
}
|
||||
}
|
||||
119
apps-gx10/fc-system/deployment-fc-landing.json
Normal file
119
apps-gx10/fc-system/deployment-fc-landing.json
Normal file
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"apiVersion": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app": "fc-landing"
|
||||
},
|
||||
"name": "fc-landing",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"progressDeadlineSeconds": 600,
|
||||
"replicas": 1,
|
||||
"revisionHistoryLimit": 10,
|
||||
"selector": {
|
||||
"matchLabels": {
|
||||
"app": "fc-landing"
|
||||
}
|
||||
},
|
||||
"strategy": {
|
||||
"rollingUpdate": {
|
||||
"maxSurge": "25%",
|
||||
"maxUnavailable": "25%"
|
||||
},
|
||||
"type": "RollingUpdate"
|
||||
},
|
||||
"template": {
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app": "fc-landing"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"containers": [
|
||||
{
|
||||
"image": "nginx:alpine",
|
||||
"imagePullPolicy": "IfNotPresent",
|
||||
"livenessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/healthz",
|
||||
"port": 80,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 5,
|
||||
"periodSeconds": 10,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 1
|
||||
},
|
||||
"name": "nginx",
|
||||
"ports": [
|
||||
{
|
||||
"containerPort": 80,
|
||||
"name": "http",
|
||||
"protocol": "TCP"
|
||||
}
|
||||
],
|
||||
"readinessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/healthz",
|
||||
"port": 80,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 3,
|
||||
"periodSeconds": 5,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 1
|
||||
},
|
||||
"resources": {
|
||||
"limits": {
|
||||
"cpu": "50m",
|
||||
"memory": "64Mi"
|
||||
},
|
||||
"requests": {
|
||||
"cpu": "5m",
|
||||
"memory": "16Mi"
|
||||
}
|
||||
},
|
||||
"terminationMessagePath": "/dev/termination-log",
|
||||
"terminationMessagePolicy": "File",
|
||||
"volumeMounts": [
|
||||
{
|
||||
"mountPath": "/etc/nginx/conf.d/default.conf",
|
||||
"name": "nginx-conf",
|
||||
"subPath": "default.conf"
|
||||
},
|
||||
{
|
||||
"mountPath": "/usr/share/nginx/html",
|
||||
"name": "html"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"dnsPolicy": "ClusterFirst",
|
||||
"restartPolicy": "Always",
|
||||
"schedulerName": "default-scheduler",
|
||||
"securityContext": {},
|
||||
"terminationGracePeriodSeconds": 30,
|
||||
"volumes": [
|
||||
{
|
||||
"configMap": {
|
||||
"defaultMode": 420,
|
||||
"name": "fc-landing-nginx-conf"
|
||||
},
|
||||
"name": "nginx-conf"
|
||||
},
|
||||
{
|
||||
"configMap": {
|
||||
"defaultMode": 420,
|
||||
"name": "fc-landing-html"
|
||||
},
|
||||
"name": "html"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
275
apps-gx10/fc-system/deployment-kiosk-web.json
Normal file
275
apps-gx10/fc-system/deployment-kiosk-web.json
Normal file
@@ -0,0 +1,275 @@
|
||||
{
|
||||
"apiVersion": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app": "kiosk-web",
|
||||
"app.kubernetes.io/component": "web",
|
||||
"app.kubernetes.io/instance": "kiosk-web",
|
||||
"app.kubernetes.io/managed-by": "flowercore-kiosk",
|
||||
"app.kubernetes.io/name": "kiosk-web",
|
||||
"component": "web",
|
||||
"flowercore.io/created-by": "kiosk-fleshing-out-phase-2",
|
||||
"flowercore.io/tenant-id": "default",
|
||||
"project": "flowercore-kiosk"
|
||||
},
|
||||
"name": "kiosk-web",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"progressDeadlineSeconds": 600,
|
||||
"replicas": 1,
|
||||
"revisionHistoryLimit": 10,
|
||||
"selector": {
|
||||
"matchLabels": {
|
||||
"app": "kiosk-web"
|
||||
}
|
||||
},
|
||||
"strategy": {
|
||||
"type": "Recreate"
|
||||
},
|
||||
"template": {
|
||||
"metadata": {
|
||||
"annotations": {
|
||||
"kubectl.kubernetes.io/restartedAt": "2026-05-06T21:21:19-05:00"
|
||||
},
|
||||
"labels": {
|
||||
"app": "kiosk-web",
|
||||
"app.kubernetes.io/component": "web",
|
||||
"app.kubernetes.io/instance": "kiosk-web",
|
||||
"app.kubernetes.io/managed-by": "flowercore-kiosk",
|
||||
"app.kubernetes.io/name": "kiosk-web",
|
||||
"component": "web",
|
||||
"flowercore.io/created-by": "kiosk-fleshing-out-phase-2",
|
||||
"flowercore.io/tenant-id": "default",
|
||||
"project": "flowercore-kiosk"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"containers": [
|
||||
{
|
||||
"env": [
|
||||
{
|
||||
"name": "ASPNETCORE_URLS",
|
||||
"value": "http://+:8080"
|
||||
},
|
||||
{
|
||||
"name": "ASPNETCORE_ENVIRONMENT",
|
||||
"value": "Production"
|
||||
},
|
||||
{
|
||||
"name": "Security__ApiKeys__0",
|
||||
"valueFrom": {
|
||||
"secretKeyRef": {
|
||||
"key": "BrowserBypassApiKey",
|
||||
"name": "kiosk-web-api-keys"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Security__AdminApiKeys__0",
|
||||
"valueFrom": {
|
||||
"secretKeyRef": {
|
||||
"key": "AdminApiKey",
|
||||
"name": "kiosk-web-api-keys"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Security__AgentApiKeys__0",
|
||||
"valueFrom": {
|
||||
"secretKeyRef": {
|
||||
"key": "AgentApiKey",
|
||||
"name": "kiosk-web-api-keys"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "FlowerCore__Kiosk__Profiles__Backend",
|
||||
"value": "K8s"
|
||||
},
|
||||
{
|
||||
"name": "FlowerCore__Kiosk__Profiles__LonghornRoot",
|
||||
"value": "/var/lib/flowercore/kiosk/profiles/data"
|
||||
},
|
||||
{
|
||||
"name": "FlowerCore__PrintWeb__Url",
|
||||
"value": "http://10.0.57.16:5200"
|
||||
},
|
||||
{
|
||||
"name": "FlowerCore__PrintWeb__ApiKey",
|
||||
"valueFrom": {
|
||||
"secretKeyRef": {
|
||||
"key": "PrintWebApiKey",
|
||||
"name": "kiosk-web-api-keys"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"image": "localhost/fc-kiosk-web:gx10-v1",
|
||||
"imagePullPolicy": "Never",
|
||||
"livenessProbe": {
|
||||
"failureThreshold": 6,
|
||||
"httpGet": {
|
||||
"path": "/health",
|
||||
"port": 8080,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 120,
|
||||
"periodSeconds": 20,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 5
|
||||
},
|
||||
"name": "kiosk-web",
|
||||
"ports": [
|
||||
{
|
||||
"containerPort": 8080,
|
||||
"name": "http",
|
||||
"protocol": "TCP"
|
||||
}
|
||||
],
|
||||
"readinessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/health",
|
||||
"port": 8080,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 45,
|
||||
"periodSeconds": 10,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 5
|
||||
},
|
||||
"resources": {
|
||||
"limits": {
|
||||
"cpu": "1",
|
||||
"memory": "512Mi"
|
||||
},
|
||||
"requests": {
|
||||
"cpu": "250m",
|
||||
"memory": "256Mi"
|
||||
}
|
||||
},
|
||||
"securityContext": {
|
||||
"allowPrivilegeEscalation": false,
|
||||
"capabilities": {
|
||||
"drop": [
|
||||
"ALL"
|
||||
]
|
||||
},
|
||||
"readOnlyRootFilesystem": true
|
||||
},
|
||||
"terminationMessagePath": "/dev/termination-log",
|
||||
"terminationMessagePolicy": "File",
|
||||
"volumeMounts": [
|
||||
{
|
||||
"mountPath": "/app/data",
|
||||
"name": "data"
|
||||
},
|
||||
{
|
||||
"mountPath": "/tmp",
|
||||
"name": "tmp"
|
||||
},
|
||||
{
|
||||
"mountPath": "/app/logs",
|
||||
"name": "logs"
|
||||
},
|
||||
{
|
||||
"mountPath": "/var/lib/flowercore/kiosk/profiles",
|
||||
"name": "user-profiles"
|
||||
},
|
||||
{
|
||||
"mountPath": "/app/appsettings.Production.json",
|
||||
"name": "appsettings-production",
|
||||
"readOnly": true,
|
||||
"subPath": "appsettings.Production.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"dnsPolicy": "ClusterFirst",
|
||||
"initContainers": [
|
||||
{
|
||||
"command": [
|
||||
"sh",
|
||||
"-c",
|
||||
"mkdir -p /profiles/data && chown -R 1654:1654 /profiles/data && chmod -R u+rwX,g+rwX /profiles/data"
|
||||
],
|
||||
"image": "localhost/fc-kiosk-web:gx10-v1",
|
||||
"imagePullPolicy": "Never",
|
||||
"name": "fix-profile-perms",
|
||||
"resources": {},
|
||||
"securityContext": {
|
||||
"allowPrivilegeEscalation": false,
|
||||
"capabilities": {
|
||||
"add": [
|
||||
"CHOWN",
|
||||
"FOWNER"
|
||||
],
|
||||
"drop": [
|
||||
"ALL"
|
||||
]
|
||||
},
|
||||
"runAsGroup": 0,
|
||||
"runAsNonRoot": false,
|
||||
"runAsUser": 0
|
||||
},
|
||||
"terminationMessagePath": "/dev/termination-log",
|
||||
"terminationMessagePolicy": "File",
|
||||
"volumeMounts": [
|
||||
{
|
||||
"mountPath": "/profiles",
|
||||
"name": "user-profiles"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"restartPolicy": "Always",
|
||||
"schedulerName": "default-scheduler",
|
||||
"securityContext": {
|
||||
"fsGroup": 1654,
|
||||
"fsGroupChangePolicy": "OnRootMismatch",
|
||||
"runAsGroup": 1654,
|
||||
"runAsNonRoot": true,
|
||||
"runAsUser": 1654
|
||||
},
|
||||
"terminationGracePeriodSeconds": 30,
|
||||
"volumes": [
|
||||
{
|
||||
"name": "data",
|
||||
"persistentVolumeClaim": {
|
||||
"claimName": "kiosk-web-data"
|
||||
}
|
||||
},
|
||||
{
|
||||
"emptyDir": {},
|
||||
"name": "tmp"
|
||||
},
|
||||
{
|
||||
"emptyDir": {},
|
||||
"name": "logs"
|
||||
},
|
||||
{
|
||||
"name": "user-profiles",
|
||||
"persistentVolumeClaim": {
|
||||
"claimName": "kiosk-user-profiles"
|
||||
}
|
||||
},
|
||||
{
|
||||
"configMap": {
|
||||
"defaultMode": 420,
|
||||
"items": [
|
||||
{
|
||||
"key": "appsettings.Production.json",
|
||||
"path": "appsettings.Production.json"
|
||||
}
|
||||
],
|
||||
"name": "kiosk-web-config"
|
||||
},
|
||||
"name": "appsettings-production"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
117
apps-gx10/fc-system/deployment-mysql-operator.json
Normal file
117
apps-gx10/fc-system/deployment-mysql-operator.json
Normal file
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"apiVersion": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app.kubernetes.io/component": "operator",
|
||||
"app.kubernetes.io/instance": "mysql-operator",
|
||||
"app.kubernetes.io/managed-by": "flowercore",
|
||||
"app.kubernetes.io/name": "mysql-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-mysql"
|
||||
},
|
||||
"name": "mysql-operator",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"progressDeadlineSeconds": 600,
|
||||
"replicas": 1,
|
||||
"revisionHistoryLimit": 10,
|
||||
"selector": {
|
||||
"matchLabels": {
|
||||
"app.kubernetes.io/instance": "mysql-operator",
|
||||
"app.kubernetes.io/name": "mysql-operator"
|
||||
}
|
||||
},
|
||||
"strategy": {
|
||||
"rollingUpdate": {
|
||||
"maxSurge": "25%",
|
||||
"maxUnavailable": "25%"
|
||||
},
|
||||
"type": "RollingUpdate"
|
||||
},
|
||||
"template": {
|
||||
"metadata": {
|
||||
"annotations": {
|
||||
"kubectl.kubernetes.io/restartedAt": "2026-04-17T09:34:39-05:00"
|
||||
},
|
||||
"labels": {
|
||||
"app.kubernetes.io/component": "operator",
|
||||
"app.kubernetes.io/instance": "mysql-operator",
|
||||
"app.kubernetes.io/managed-by": "flowercore",
|
||||
"app.kubernetes.io/name": "mysql-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-mysql"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"automountServiceAccountToken": true,
|
||||
"containers": [
|
||||
{
|
||||
"env": [
|
||||
{
|
||||
"name": "ASPNETCORE_ENVIRONMENT",
|
||||
"value": "Production"
|
||||
},
|
||||
{
|
||||
"name": "ASPNETCORE_URLS",
|
||||
"value": "http://+:8080"
|
||||
}
|
||||
],
|
||||
"image": "localhost/fc-mysql-operator:gx10-v1",
|
||||
"imagePullPolicy": "IfNotPresent",
|
||||
"livenessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/healthz",
|
||||
"port": 8080,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 15,
|
||||
"periodSeconds": 20,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 3
|
||||
},
|
||||
"name": "mysql-operator",
|
||||
"ports": [
|
||||
{
|
||||
"containerPort": 8080,
|
||||
"name": "http",
|
||||
"protocol": "TCP"
|
||||
}
|
||||
],
|
||||
"readinessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/healthz",
|
||||
"port": 8080,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 5,
|
||||
"periodSeconds": 10,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 3
|
||||
},
|
||||
"resources": {
|
||||
"limits": {
|
||||
"cpu": "500m",
|
||||
"memory": "512Mi"
|
||||
},
|
||||
"requests": {
|
||||
"cpu": "250m",
|
||||
"memory": "256Mi"
|
||||
}
|
||||
},
|
||||
"terminationMessagePath": "/dev/termination-log",
|
||||
"terminationMessagePolicy": "File"
|
||||
}
|
||||
],
|
||||
"dnsPolicy": "ClusterFirst",
|
||||
"restartPolicy": "Always",
|
||||
"schedulerName": "default-scheduler",
|
||||
"securityContext": {},
|
||||
"serviceAccount": "mysql-operator",
|
||||
"serviceAccountName": "mysql-operator",
|
||||
"terminationGracePeriodSeconds": 30
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
134
apps-gx10/fc-system/deployment-php-operator.json
Normal file
134
apps-gx10/fc-system/deployment-php-operator.json
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"apiVersion": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app.kubernetes.io/component": "operator",
|
||||
"app.kubernetes.io/instance": "php-operator",
|
||||
"app.kubernetes.io/managed-by": "flowercore",
|
||||
"app.kubernetes.io/name": "php-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-php"
|
||||
},
|
||||
"name": "php-operator",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"progressDeadlineSeconds": 600,
|
||||
"replicas": 1,
|
||||
"revisionHistoryLimit": 10,
|
||||
"selector": {
|
||||
"matchLabels": {
|
||||
"app.kubernetes.io/instance": "php-operator",
|
||||
"app.kubernetes.io/name": "php-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-php"
|
||||
}
|
||||
},
|
||||
"strategy": {
|
||||
"rollingUpdate": {
|
||||
"maxSurge": "25%",
|
||||
"maxUnavailable": "25%"
|
||||
},
|
||||
"type": "RollingUpdate"
|
||||
},
|
||||
"template": {
|
||||
"metadata": {
|
||||
"annotations": {
|
||||
"kubectl.kubernetes.io/restartedAt": "2026-04-17T10:09:10-05:00"
|
||||
},
|
||||
"labels": {
|
||||
"app.kubernetes.io/component": "operator",
|
||||
"app.kubernetes.io/instance": "php-operator",
|
||||
"app.kubernetes.io/managed-by": "flowercore",
|
||||
"app.kubernetes.io/name": "php-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-php"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"automountServiceAccountToken": true,
|
||||
"containers": [
|
||||
{
|
||||
"env": [
|
||||
{
|
||||
"name": "ASPNETCORE_ENVIRONMENT",
|
||||
"value": "Production"
|
||||
},
|
||||
{
|
||||
"name": "ASPNETCORE_URLS",
|
||||
"value": "http://+:8080"
|
||||
},
|
||||
{
|
||||
"name": "MySqlManager__BaseUrl",
|
||||
"value": "https://mysql.iamworkin.lan/"
|
||||
},
|
||||
{
|
||||
"name": "MySqlManager__BypassTls",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"name": "PhpManager__BaseUrl",
|
||||
"value": "https://php.iamworkin.lan/"
|
||||
},
|
||||
{
|
||||
"name": "PhpManager__BypassTls",
|
||||
"value": "true"
|
||||
}
|
||||
],
|
||||
"image": "localhost/fc-php-operator:gx10-v1",
|
||||
"imagePullPolicy": "IfNotPresent",
|
||||
"livenessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/healthz",
|
||||
"port": 8080,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 15,
|
||||
"periodSeconds": 20,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 3
|
||||
},
|
||||
"name": "php-operator",
|
||||
"ports": [
|
||||
{
|
||||
"containerPort": 8080,
|
||||
"name": "http",
|
||||
"protocol": "TCP"
|
||||
}
|
||||
],
|
||||
"readinessProbe": {
|
||||
"failureThreshold": 3,
|
||||
"httpGet": {
|
||||
"path": "/healthz",
|
||||
"port": 8080,
|
||||
"scheme": "HTTP"
|
||||
},
|
||||
"initialDelaySeconds": 5,
|
||||
"periodSeconds": 10,
|
||||
"successThreshold": 1,
|
||||
"timeoutSeconds": 3
|
||||
},
|
||||
"resources": {
|
||||
"limits": {
|
||||
"cpu": "500m",
|
||||
"memory": "512Mi"
|
||||
},
|
||||
"requests": {
|
||||
"cpu": "250m",
|
||||
"memory": "256Mi"
|
||||
}
|
||||
},
|
||||
"terminationMessagePath": "/dev/termination-log",
|
||||
"terminationMessagePolicy": "File"
|
||||
}
|
||||
],
|
||||
"dnsPolicy": "ClusterFirst",
|
||||
"restartPolicy": "Always",
|
||||
"schedulerName": "default-scheduler",
|
||||
"securityContext": {},
|
||||
"serviceAccount": "php-operator",
|
||||
"serviceAccountName": "php-operator",
|
||||
"terminationGracePeriodSeconds": 30
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
29
apps-gx10/fc-system/ingressroute-fc-landing-public.json
Normal file
29
apps-gx10/fc-system/ingressroute-fc-landing-public.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"apiVersion": "traefik.io/v1alpha1",
|
||||
"kind": "IngressRoute",
|
||||
"metadata": {
|
||||
"name": "fc-landing-public",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"entryPoints": [
|
||||
"websecure"
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
"kind": "Rule",
|
||||
"match": "Host(`flowercore.io`) || Host(`www.flowercore.io`)",
|
||||
"priority": 100,
|
||||
"services": [
|
||||
{
|
||||
"name": "fc-landing",
|
||||
"port": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tls": {
|
||||
"secretName": "cf-origin-flowercore-io"
|
||||
}
|
||||
}
|
||||
}
|
||||
29
apps-gx10/fc-system/ingressroute-kiosk-web.json
Normal file
29
apps-gx10/fc-system/ingressroute-kiosk-web.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"apiVersion": "traefik.io/v1alpha1",
|
||||
"kind": "IngressRoute",
|
||||
"metadata": {
|
||||
"name": "kiosk-web",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"entryPoints": [
|
||||
"websecure"
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
"kind": "Rule",
|
||||
"match": "Host(`kiosk.iamworkin.lan`)",
|
||||
"priority": 100,
|
||||
"services": [
|
||||
{
|
||||
"name": "kiosk-web",
|
||||
"port": 8080
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tls": {
|
||||
"secretName": "kiosk-web-tls"
|
||||
}
|
||||
}
|
||||
}
|
||||
27
apps-gx10/fc-system/service-fc-landing.json
Normal file
27
apps-gx10/fc-system/service-fc-landing.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Service",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app": "fc-landing"
|
||||
},
|
||||
"name": "fc-landing",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"internalTrafficPolicy": "Cluster",
|
||||
"ports": [
|
||||
{
|
||||
"name": "http",
|
||||
"port": 80,
|
||||
"protocol": "TCP",
|
||||
"targetPort": 80
|
||||
}
|
||||
],
|
||||
"selector": {
|
||||
"app": "fc-landing"
|
||||
},
|
||||
"sessionAffinity": "None",
|
||||
"type": "ClusterIP"
|
||||
}
|
||||
}
|
||||
34
apps-gx10/fc-system/service-kiosk-web.json
Normal file
34
apps-gx10/fc-system/service-kiosk-web.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Service",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app": "kiosk-web",
|
||||
"app.kubernetes.io/component": "web",
|
||||
"app.kubernetes.io/instance": "kiosk-web",
|
||||
"app.kubernetes.io/managed-by": "flowercore-kiosk",
|
||||
"app.kubernetes.io/name": "kiosk-web",
|
||||
"flowercore.io/created-by": "kiosk-fleshing-out-phase-2",
|
||||
"flowercore.io/tenant-id": "default",
|
||||
"project": "flowercore-kiosk"
|
||||
},
|
||||
"name": "kiosk-web",
|
||||
"namespace": "fc-system"
|
||||
},
|
||||
"spec": {
|
||||
"internalTrafficPolicy": "Cluster",
|
||||
"ports": [
|
||||
{
|
||||
"name": "http",
|
||||
"port": 8080,
|
||||
"protocol": "TCP",
|
||||
"targetPort": 8080
|
||||
}
|
||||
],
|
||||
"selector": {
|
||||
"app": "kiosk-web"
|
||||
},
|
||||
"sessionAffinity": "None",
|
||||
"type": "ClusterIP"
|
||||
}
|
||||
}
|
||||
15
apps-gx10/fc-system/serviceaccount-mysql-operator.json
Normal file
15
apps-gx10/fc-system/serviceaccount-mysql-operator.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "ServiceAccount",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app.kubernetes.io/component": "operator",
|
||||
"app.kubernetes.io/instance": "mysql-operator",
|
||||
"app.kubernetes.io/managed-by": "flowercore",
|
||||
"app.kubernetes.io/name": "mysql-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-mysql"
|
||||
},
|
||||
"name": "mysql-operator",
|
||||
"namespace": "fc-system"
|
||||
}
|
||||
}
|
||||
15
apps-gx10/fc-system/serviceaccount-php-operator.json
Normal file
15
apps-gx10/fc-system/serviceaccount-php-operator.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "ServiceAccount",
|
||||
"metadata": {
|
||||
"labels": {
|
||||
"app.kubernetes.io/component": "operator",
|
||||
"app.kubernetes.io/instance": "php-operator",
|
||||
"app.kubernetes.io/managed-by": "flowercore",
|
||||
"app.kubernetes.io/name": "php-operator",
|
||||
"app.kubernetes.io/part-of": "flowercore-php"
|
||||
},
|
||||
"name": "php-operator",
|
||||
"namespace": "fc-system"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user