Adding MaidBotApi

This commit is contained in:
Zeeshaun
2026-03-11 13:21:47 -05:00
parent f3cb730f3b
commit f004c8205a
122 changed files with 4227 additions and 0 deletions
@@ -0,0 +1,46 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: maidbot-api
spec:
replicas: 1
selector:
matchLabels:
app: maidbot-api
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: maidbot-api
spec:
volumes: []
containers:
- name: maidbot-api
env: []
volumeMounts: []
image: maidbot-api
resources:
requests:
cpu: 50m
memory: 512Mi
limits:
memory: 512Mi
ports:
- containerPort: 8080
livenessProbe:
initialDelaySeconds: 5
periodSeconds: 5
httpGet:
path: /api/status
port: 8080
readinessProbe:
initialDelaySeconds: 5
periodSeconds: 5
httpGet:
path: /api/status
port: 8080
@@ -0,0 +1,11 @@
---
apiVersion: v1
kind: Service
metadata:
name: maidbot-api
spec:
selector:
app: maidbot-api
ports:
- port: 8080
targetPort: 8080
@@ -0,0 +1,9 @@
resources:
- Deployment.yaml
- Service.yaml
- virtual-service.yaml
- secrets-provider-class.yaml
images:
- name: maidbot-api
newName: landmarkcu/lcu.api.internal.maidbot-maidbot
@@ -0,0 +1,11 @@
---
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: maidbot-api-csi-key-vault-secrets-provider
spec:
provider: azure
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "true"
tenantId: 63cd1554-2783-4a86-ae50-b9e6c21c9499
@@ -0,0 +1,19 @@
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: maidbot-api
spec:
hosts: []
gateways:
- istio-system/ingress-gateway
http:
- name: maidbot-api
match:
- uri:
prefix: /
route:
- destination:
host: maidbot-api
port:
number: 8080
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
patches:
- target:
kind: Deployment
path: set_secrets_deployment.yaml
- target:
kind: SecretProviderClass
path: set_secrets_provider.yaml
@@ -0,0 +1,41 @@
- op: add
path: /spec/template/spec/volumes/-
value:
name: maidbot-api-secrets
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: normal-maidbot-api-csi-key-vault-secrets-provider
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: maidbot-api-secrets
mountPath: /vault/secrets/maidbot-api-seq-api-key.json
readOnly: true
subPath: maidbot-api-seq-api-key
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: maidbot-api-secrets
mountPath: /vault/secrets/maidbot-api-connection-configuration-password.json
readOnly: true
subPath: maidbot-api-connection-configuration-password
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: maidbot-api-secrets
mountPath: /vault/secrets/maidbot-api-connection-configuration-username.json
readOnly: true
subPath: maidbot-api-connection-configuration-username
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: maidbot-api-secrets
mountPath: /vault/secrets/maidbot-database-connection.json
readOnly: true
subPath: maidbot-database-connection
@@ -0,0 +1,20 @@
- op: add
path: /spec/parameters/objects
value: |
array:
- |
objectName: maidbot-api-seq-api-key
objectType: secret
objectVersion: ""
- |
objectName: maidbot-api-connection-configuration-password
objectType: secret
objectVersion: ""
- |
objectName: maidbot-api-connection-configuration-username
objectType: secret
objectVersion: ""
- |
objectName: maidbot-database-connection
objectType: secret
objectVersion: ""
@@ -0,0 +1,40 @@
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
#Test istio process
namePrefix: normal-
configMapGenerator:
- name: maidbot-api-appsettings
files:
- appsettings/appsettings.json
generatorOptions:
disableNameSuffixHash: true
patches:
- target:
kind: Deployment
path: set_appsettings_deployment.yaml
replacements:
- source:
kind: Deployment
fieldPath: metadata.name
targets:
- select:
kind: Deployment
fieldPaths:
- spec.selector.matchLabels.app
- spec.template.metadata.labels.app
- spec.template.spec.containers.*.name
- select:
kind: Service
fieldPaths:
- spec.selector.app
- select:
kind: VirtualService
fieldPaths:
- spec.http.*.route.*.destination.host
- spec.http.*.name
@@ -0,0 +1,12 @@
- op: add
path: /spec/template/spec/volumes/-
value:
name: volume-appsettings
configMap:
name: maidbot-api-appsettings
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: volume-appsettings
mountPath: /app/config/workload-appsettings
@@ -0,0 +1,8 @@
resources:
- ../../../base
patchesStrategicMerge:
- set_appsettings_deployment.yaml
- set_secrets_provider_class.yaml
images:
- name: maidbot-api
newName: landmarkcu/lcu.api.internal.maidbot-maidbot
@@ -0,0 +1,12 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: maidbot-api
spec:
template:
spec:
containers:
- name: maidbot-api
env:
- name: ASPNETCORE_ENVIRONMENT
value: "Development"
@@ -0,0 +1,9 @@
---
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: maidbot-api-csi-key-vault-secrets-provider
spec:
parameters:
userAssignedIdentityID: 3286ed9a-f85c-4c50-b742-dbd3c1c3fe1f
keyvaultName: kv-lz-apps-qa-uscz
@@ -0,0 +1,2 @@
resources:
- normal
@@ -0,0 +1,19 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: maidbot-configmap
data:
primary.json: |
{
"Primary": {
"SeqUrl": "https://qa-seq.lcu-internal.com",
"CorsAllowedOrigins": [
"http://localhost:3000",
"http://lcu-internal.com",
"https://lcu-internal.com",
"https://qa-api.lcu-internal.com",
"https://uat-api.lcu-internal.com",
"https://api.lcu-internal.com"
]
}
}
@@ -0,0 +1,5 @@
resources:
- configmap.yaml
- ../common
patchesStrategicMerge:
- set_virtual_service.yaml
@@ -0,0 +1,8 @@
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: maidbot-api
spec:
hosts:
- qa-maidbot-api.apps.azure.lcu-internal.com
@@ -0,0 +1,27 @@
{
"Primary": {
"AppName": "MaidBot Api",
"SeqUrl": "https://seq.lcu-internal.com",
"NotificationsApiEmail": "https://notificationsapi.lcu-internal.com/api/Email",
"FeatureFlags": {
"LoggingEventConsumer": true,
"RunScheduler": true
},
"BatchSchedulerCron": "*/5 * * * *",
"CorsAllowedOrigins": [
"http://lcu-internal.com",
"https://lcu-internal.com",
"https://api.lcu-internal.com"
],
"LogEmailTemplate": "./Templates/LogEmailTemplate.html",
"LogEmailRowTemplate": "./Templates/LogEmailRowTemplate.html"
},
"ConnectionConfiguration": {
"HostUrl": "rabbitmq.lcu-internal.com"
},
"ReceiveEndpoint": {
"ReceiveEndpoint": "LCU.MaidBot",
"ReceiveEndpointType": "exchange",
"PrefetchLimit": 1
}
}
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
patches:
- target:
kind: SecretProviderClass
path: set_secrets_provider_class.yaml
@@ -0,0 +1,7 @@
- op: add
path: /spec/parameters/userAssignedIdentityID
value: 3286ed9a-f85c-4c50-b742-dbd3c1c3fe1f
- op: add
path: /spec/parameters/keyvaultName
value: kv-lz-apps-qa-uscz
@@ -0,0 +1,14 @@
resources:
- normal
configMapGenerator:
- name: maidbot-api-environment-appsettings
files:
- appsettings/appsettings.json
generatorOptions:
disableNameSuffixHash: true
patches:
- target:
kind: Deployment
path: set_configmap_deployment.yaml
@@ -0,0 +1,12 @@
resources:
- ../../../base
components:
- ../component
- ../../../components/keyvaults/normal
- ../../../components/workloads/normal
patches:
- target:
kind: VirtualService
path: set_virtual_service.yaml
@@ -0,0 +1,3 @@
- op: add
path: /spec/hosts/-
value: prd-maidbot-api.apps.azure.lcu-internal.com
@@ -0,0 +1,12 @@
- op: add
path: /spec/template/spec/volumes/-
value:
name: volume-environment-appsettings
configMap:
name: maidbot-api-environment-appsettings
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: volume-environment-appsettings
mountPath: /app/config/environment-appsettings
@@ -0,0 +1,27 @@
{
"Primary": {
"AppName": "MaidBot Api",
"SeqUrl": "https://qa-seq.lcu-internal.com",
"NotificationsApiEmail": "https://qa-notificationsapi.lcu-internal.com/api/Email",
"FeatureFlags": {
"LoggingEventConsumer": true,
"RunScheduler": true
},
"BatchSchedulerCron": "*/5 * * * *",
"CorsAllowedOrigins": [
"http://lcu-internal.com",
"https://lcu-internal.com",
"https://qa-api.lcu-internal.com"
],
"LogEmailTemplate": "./Templates/LogEmailTemplate.html",
"LogEmailRowTemplate": "./Templates/LogEmailRowTemplate.html"
},
"ConnectionConfiguration": {
"HostUrl": "qa-rabbitmq.lcu-internal.com"
},
"ReceiveEndpoint": {
"ReceiveEndpoint": "LCU.MaidBot",
"ReceiveEndpointType": "exchange",
"PrefetchLimit": 1
}
}
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
patches:
- target:
kind: SecretProviderClass
path: set_secrets_provider_class.yaml
@@ -0,0 +1,7 @@
- op: add
path: /spec/parameters/userAssignedIdentityID
value: 3286ed9a-f85c-4c50-b742-dbd3c1c3fe1f
- op: add
path: /spec/parameters/keyvaultName
value: kv-lz-apps-qa-uscz
@@ -0,0 +1,14 @@
resources:
- normal
configMapGenerator:
- name: maidbot-api-environment-appsettings
files:
- appsettings/appsettings.json
generatorOptions:
disableNameSuffixHash: true
patches:
- target:
kind: Deployment
path: set_configmap_deployment.yaml
@@ -0,0 +1,12 @@
resources:
- ../../../base
components:
- ../component
- ../../../components/keyvaults/normal
- ../../../components/workloads/normal
patches:
- target:
kind: VirtualService
path: set_virtual_service.yaml
@@ -0,0 +1,3 @@
- op: add
path: /spec/hosts/-
value: qa-maidbot-api.apps.azure.lcu-internal.com
@@ -0,0 +1,12 @@
- op: add
path: /spec/template/spec/volumes/-
value:
name: volume-environment-appsettings
configMap:
name: maidbot-api-environment-appsettings
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: volume-environment-appsettings
mountPath: /app/config/environment-appsettings
@@ -0,0 +1,27 @@
{
"Primary": {
"AppName": "MaidBot Api",
"SeqUrl": "https://uat-seq.lcu-internal.com",
"NotificationsApiEmail": "https://uat-notificationsapi.lcu-internal.com/api/Email",
"FeatureFlags": {
"LoggingEventConsumer": true,
"RunScheduler": true
},
"BatchSchedulerCron": "*/5 * * * *",
"CorsAllowedOrigins": [
"http://lcu-internal.com",
"https://lcu-internal.com",
"https://uat-api.lcu-internal.com"
],
"LogEmailTemplate": "./Templates/LogEmailTemplate.html",
"LogEmailRowTemplate": "./Templates/LogEmailRowTemplate.html"
},
"ConnectionConfiguration": {
"HostUrl": "uat-rabbitmq.lcu-internal.com"
},
"ReceiveEndpoint": {
"ReceiveEndpoint": "LCU.MaidBot",
"ReceiveEndpointType": "exchange",
"PrefetchLimit": 1
}
}
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
patches:
- target:
kind: SecretProviderClass
path: set_secrets_provider_class.yaml
@@ -0,0 +1,7 @@
- op: add
path: /spec/parameters/userAssignedIdentityID
value: 3286ed9a-f85c-4c50-b742-dbd3c1c3fe1f
- op: add
path: /spec/parameters/keyvaultName
value: kv-lz-apps-qa-uscz
@@ -0,0 +1,14 @@
resources:
- normal
configMapGenerator:
- name: maidbot-api-environment-appsettings
files:
- appsettings/appsettings.json
generatorOptions:
disableNameSuffixHash: true
patches:
- target:
kind: Deployment
path: set_configmap_deployment.yaml
@@ -0,0 +1,12 @@
resources:
- ../../../base
components:
- ../component
- ../../../components/keyvaults/normal
- ../../../components/workloads/normal
patches:
- target:
kind: VirtualService
path: set_virtual_service.yaml
@@ -0,0 +1,3 @@
- op: add
path: /spec/hosts/-
value: uat-maidbot-api.apps.azure.lcu-internal.com
@@ -0,0 +1,12 @@
- op: add
path: /spec/template/spec/volumes/-
value:
name: volume-environment-appsettings
configMap:
name: maidbot-api-environment-appsettings
- op: add
path: /spec/template/spec/containers/0/volumeMounts/-
value:
name: volume-environment-appsettings
mountPath: /app/config/environment-appsettings