Add SDS deployment
This commit is contained in:
commit
094eae5e5f
BIN
sds/app/.sds-api.yaml.kate-swp
Normal file
BIN
sds/app/.sds-api.yaml.kate-swp
Normal file
Binary file not shown.
8
sds/app/kustomization.yaml
Normal file
8
sds/app/kustomization.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace: reports-sds
|
||||||
|
resources:
|
||||||
|
- ../base
|
||||||
|
- namespace.yaml
|
||||||
|
- sds-puppeteer.yaml
|
||||||
|
- sds-api.yaml
|
||||||
|
- sds-ui-admin.yaml
|
||||||
|
|
||||||
7
sds/app/namespace.yaml
Normal file
7
sds/app/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
kubernetes.io/metadata.name: reports-sds
|
||||||
|
name: reports-sds
|
||||||
435
sds/app/sds-api.yaml
Normal file
435
sds/app/sds-api.yaml
Normal file
@ -0,0 +1,435 @@
|
|||||||
|
#
|
||||||
|
# api:
|
||||||
|
# image: registry.dev.k8s.transcity/sds/api:latest
|
||||||
|
# ports:
|
||||||
|
# - "13000:3000"
|
||||||
|
# depends_on:
|
||||||
|
# puppeteer:
|
||||||
|
# condition: service_started
|
||||||
|
# postgres:
|
||||||
|
# condition: service_healthy
|
||||||
|
# environment:
|
||||||
|
# SERVER_PORT: 3000
|
||||||
|
# EVENTS_TURNIT_ENABLED: "false"
|
||||||
|
# EVENTS_AZURE_ENABLED: "false"
|
||||||
|
# SDS_PUPPETEER_API_URL: "http://puppeteer:3000"
|
||||||
|
# PRINT_REPORT_URL: "http://admin:3000"
|
||||||
|
# REDIS_HOST: "redis"
|
||||||
|
# ELASTICSEARCH_URL: "https://elastic:fkBqGedfBM@elasticsearch:9200"
|
||||||
|
# DATABASE_URL: "postgres://postgres:postgres@postgres:5432/postgres"
|
||||||
|
# KEYCLOAK_URL: "https://keycloak.alpha.k8s.transcity"
|
||||||
|
# KEYCLOAK_AGENTS_REALM: sds-agents
|
||||||
|
# KEYCLOAK_THIRD_PARTY_REALM: sds-third-parties
|
||||||
|
# KEYCLOAK_CUSTOMERS_REALM: sds-customers
|
||||||
|
# KEYCLOAK_RETAILERS_REALM: sds-retailers
|
||||||
|
# AZ_STORAGE_CONNECTION_STRING: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/#K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;"
|
||||||
|
# NODE_EXTRA_CA_CERTS: /etc/ssl/certs/ca-certificates.crt
|
||||||
|
# healthcheck:
|
||||||
|
# test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/health"]
|
||||||
|
# interval: 5s
|
||||||
|
# timeout: 2s
|
||||||
|
# retries: 10
|
||||||
|
# volumes:
|
||||||
|
# - '/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt'
|
||||||
|
#
|
||||||
|
---
|
||||||
|
apiVersion: db-caretaker.dev/v1alpha1
|
||||||
|
kind: Database
|
||||||
|
metadata:
|
||||||
|
name: sds
|
||||||
|
spec:
|
||||||
|
dropOnDelete: true
|
||||||
|
name: sds
|
||||||
|
serverRef:
|
||||||
|
name: pg-common
|
||||||
|
namespace: commons
|
||||||
|
---
|
||||||
|
apiVersion: db-caretaker.dev/v1alpha1
|
||||||
|
kind: DatabaseUser
|
||||||
|
metadata:
|
||||||
|
name: sds-api
|
||||||
|
spec:
|
||||||
|
databaseRef:
|
||||||
|
name: sds
|
||||||
|
login: sdsapi
|
||||||
|
role: dbowner
|
||||||
|
secret: sds-api-db-credentials
|
||||||
|
secretConnectionStringKey: connectionString
|
||||||
|
secretConnectionStringFormat: postgres://{login}:{password_urlsafe}@{server}:{port}/{database}
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcRealm
|
||||||
|
metadata:
|
||||||
|
name: sds-agents
|
||||||
|
spec:
|
||||||
|
realm: sds-agents
|
||||||
|
displayName: "SDS Agents"
|
||||||
|
loginWithEmailAllowed: true
|
||||||
|
bruteForceDetection:
|
||||||
|
enabled: true
|
||||||
|
excludeDefaultRoles:
|
||||||
|
- client: account
|
||||||
|
name: manage-account
|
||||||
|
- client: account
|
||||||
|
name: view-profile
|
||||||
|
roles:
|
||||||
|
- name: "sds:admin"
|
||||||
|
- name: "sds:agent"
|
||||||
|
- name: "sds:helpdesk"
|
||||||
|
- name: "sds:reporting"
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcClient
|
||||||
|
metadata:
|
||||||
|
name: sds-agents-api
|
||||||
|
spec:
|
||||||
|
realm: sds-agents
|
||||||
|
clientId: sds-api
|
||||||
|
name: SDS Api
|
||||||
|
|
||||||
|
publicClient: false
|
||||||
|
standardFlowEnabled: true
|
||||||
|
serviceAccountsEnabled: true
|
||||||
|
clientSecretName: sds-agents-api-client-credentials
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcGroup
|
||||||
|
metadata:
|
||||||
|
name: sds-agents-api
|
||||||
|
spec:
|
||||||
|
realm: sds-agents
|
||||||
|
name: sds-api
|
||||||
|
clientRoles:
|
||||||
|
realm-management:
|
||||||
|
- manage-realm
|
||||||
|
- manage-users
|
||||||
|
- manage-clients
|
||||||
|
- view-users
|
||||||
|
realmRoles:
|
||||||
|
- sds:admin
|
||||||
|
users:
|
||||||
|
- service-account-sds-api
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcClient
|
||||||
|
metadata:
|
||||||
|
name: sds-agents-ui
|
||||||
|
spec:
|
||||||
|
realm: sds-agents
|
||||||
|
clientId: sds-ui-admin
|
||||||
|
name: SDS UI
|
||||||
|
|
||||||
|
publicClient: true
|
||||||
|
standardFlowEnabled: true
|
||||||
|
serviceAccountsEnabled: true
|
||||||
|
clientSecretName: sds-agents-ui-client-credentials
|
||||||
|
|
||||||
|
redirectUris:
|
||||||
|
- "*"
|
||||||
|
webOrigins:
|
||||||
|
- "*"
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcRealm
|
||||||
|
metadata:
|
||||||
|
name: sds-third-parties
|
||||||
|
spec:
|
||||||
|
realm: sds-third-parties
|
||||||
|
displayName: "SDS Third Parties"
|
||||||
|
loginWithEmailAllowed: true
|
||||||
|
bruteForceDetection:
|
||||||
|
enabled: true
|
||||||
|
excludeDefaultRoles:
|
||||||
|
- client: account
|
||||||
|
name: manage-account
|
||||||
|
- client: account
|
||||||
|
name: view-profile
|
||||||
|
roles:
|
||||||
|
- name: "sds:administration"
|
||||||
|
- name: "sds:standard"
|
||||||
|
- name: "sds:third-parties"
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcClient
|
||||||
|
metadata:
|
||||||
|
name: sds-third-parties-api
|
||||||
|
spec:
|
||||||
|
realm: sds-third-parties
|
||||||
|
clientId: sds-api
|
||||||
|
name: SDS Api
|
||||||
|
|
||||||
|
publicClient: false
|
||||||
|
standardFlowEnabled: true
|
||||||
|
serviceAccountsEnabled: true
|
||||||
|
clientSecretName: sds-third-parties-api-client-credentials
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcGroup
|
||||||
|
metadata:
|
||||||
|
name: sds-third-parties-api
|
||||||
|
spec:
|
||||||
|
realm: sds-third-parties
|
||||||
|
name: sds-api
|
||||||
|
clientRoles:
|
||||||
|
realm-management:
|
||||||
|
- manage-realm
|
||||||
|
- manage-users
|
||||||
|
- manage-clients
|
||||||
|
- view-users
|
||||||
|
users:
|
||||||
|
- service-account-sds-api
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcRealm
|
||||||
|
metadata:
|
||||||
|
name: sds-customers
|
||||||
|
spec:
|
||||||
|
realm: sds-customers
|
||||||
|
displayName: "SDS Customers"
|
||||||
|
loginWithEmailAllowed: true
|
||||||
|
bruteForceDetection:
|
||||||
|
enabled: true
|
||||||
|
excludeDefaultRoles:
|
||||||
|
- client: account
|
||||||
|
name: manage-account
|
||||||
|
- client: account
|
||||||
|
name: view-profile
|
||||||
|
roles:
|
||||||
|
- name: "sds:admin"
|
||||||
|
- name: "sds:customer"
|
||||||
|
- name: "sds:ui"
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcClient
|
||||||
|
metadata:
|
||||||
|
name: sds-customers-api
|
||||||
|
spec:
|
||||||
|
realm: sds-customers
|
||||||
|
clientId: sds-api
|
||||||
|
name: SDS Api
|
||||||
|
|
||||||
|
publicClient: false
|
||||||
|
standardFlowEnabled: true
|
||||||
|
serviceAccountsEnabled: true
|
||||||
|
clientSecretName: sds-customers-api-client-credentials
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcGroup
|
||||||
|
metadata:
|
||||||
|
name: sds-customers-api
|
||||||
|
spec:
|
||||||
|
realm: sds-customers
|
||||||
|
name: sds-api
|
||||||
|
clientRoles:
|
||||||
|
realm-management:
|
||||||
|
- manage-realm
|
||||||
|
- manage-users
|
||||||
|
- manage-clients
|
||||||
|
- view-users
|
||||||
|
users:
|
||||||
|
- service-account-sds-api
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcRealm
|
||||||
|
metadata:
|
||||||
|
name: sds-retailers
|
||||||
|
spec:
|
||||||
|
realm: sds-retailers
|
||||||
|
displayName: "SDS Retailers"
|
||||||
|
loginWithEmailAllowed: true
|
||||||
|
bruteForceDetection:
|
||||||
|
enabled: true
|
||||||
|
excludeDefaultRoles:
|
||||||
|
- client: account
|
||||||
|
name: manage-account
|
||||||
|
- client: account
|
||||||
|
name: view-profile
|
||||||
|
roles:
|
||||||
|
- name: "sds:retailer"
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcClient
|
||||||
|
metadata:
|
||||||
|
name: sds-retailers-api
|
||||||
|
spec:
|
||||||
|
realm: sds-retailers
|
||||||
|
clientId: sds-api
|
||||||
|
name: SDS Api
|
||||||
|
|
||||||
|
publicClient: false
|
||||||
|
standardFlowEnabled: true
|
||||||
|
serviceAccountsEnabled: true
|
||||||
|
clientSecretName: sds-retailers-api-client-credentials
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcGroup
|
||||||
|
metadata:
|
||||||
|
name: sds-retailers-api
|
||||||
|
spec:
|
||||||
|
realm: sds-retailers
|
||||||
|
name: sds-api
|
||||||
|
clientRoles:
|
||||||
|
realm-management:
|
||||||
|
- manage-realm
|
||||||
|
- manage-users
|
||||||
|
- manage-clients
|
||||||
|
- view-users
|
||||||
|
users:
|
||||||
|
- service-account-sds-api
|
||||||
|
---
|
||||||
|
apiVersion: keycloak-configurator.rcs/v1alpha1
|
||||||
|
kind: KcRealm
|
||||||
|
metadata:
|
||||||
|
name: sds-docs
|
||||||
|
spec:
|
||||||
|
realm: sds-docs
|
||||||
|
displayName: "SDS Docs"
|
||||||
|
loginWithEmailAllowed: true
|
||||||
|
bruteForceDetection:
|
||||||
|
enabled: true
|
||||||
|
excludeDefaultRoles:
|
||||||
|
- client: account
|
||||||
|
name: manage-account
|
||||||
|
- client: account
|
||||||
|
name: view-profile
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: sds-api
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: sds-api
|
||||||
|
app.kubernetes.io/name: sds-api
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: sds-api
|
||||||
|
app.kubernetes.io/name: sds-api
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: api
|
||||||
|
image: registry.dev.k8s.transcity/sds/api:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
env:
|
||||||
|
- name: SERVER_PORT
|
||||||
|
value: "3000"
|
||||||
|
- name: EVENTS_TURNIT_ENABLED
|
||||||
|
value: "false"
|
||||||
|
- name: EVENTS_AZURE_ENABLED
|
||||||
|
value: "false"
|
||||||
|
- name: SDS_PUPPETEER_API_URL
|
||||||
|
value: "http://sds-puppeteer:3000"
|
||||||
|
- name: PRINT_REPORT_URL
|
||||||
|
value: "http://sds-ui-admin:3000"
|
||||||
|
- name: REDIS_HOST
|
||||||
|
value: "valkey"
|
||||||
|
- name: ELASTICSEARCH_URL
|
||||||
|
value: "http://elastic:GTRNZHCJTiGJ2CfY@elasticsearch-master:9200"
|
||||||
|
- name: DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-api-db-credentials
|
||||||
|
key: connectionString
|
||||||
|
- name: KEYCLOAK_URL
|
||||||
|
value: "https://keycloak.alpha.k8s.transcity"
|
||||||
|
- name: KEYCLOAK_AGENTS_REALM
|
||||||
|
value: sds-agents
|
||||||
|
- name: KEYCLOAK_AGENTS_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-agents-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_AGENTS_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-agents-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: PRINTER_REALM
|
||||||
|
value: sds-agents
|
||||||
|
- name: PRINTER_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-agents-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: PRINTER_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-agents-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: KEYCLOAK_THIRD_PARTY_REALM
|
||||||
|
value: sds-third-parties
|
||||||
|
- name: KEYCLOAK_THIRD_PARTY_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-third-parties-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_THIRD_PARTY_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-third-parties-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: KEYCLOAK_CUSTOMERS_REALM
|
||||||
|
value: sds-customers
|
||||||
|
- name: KEYCLOAK_CUSTOMERS_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-customers-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_CUSTOMERS_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-customers-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: KEYCLOAK_RETAILERS_REALM
|
||||||
|
value: sds-retailers
|
||||||
|
- name: KEYCLOAK_RETAILERS_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-retailers-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_RETAILERS_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-retailers-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: AZ_STORAGE_CONNECTION_STRING
|
||||||
|
value: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;"
|
||||||
|
- name: NODE_EXTRA_CA_CERTS
|
||||||
|
value: /etc/ssl/certs/ca-certificates.crt
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 3000
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command: [ "wget", "-O", "/dev/null", "-q", "http://127.0.0.1:3000/health" ]
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 2
|
||||||
|
volumeMounts:
|
||||||
|
- name: root-ca-bundle
|
||||||
|
mountPath: /etc/ssl/certs/ca-certificates.crt
|
||||||
|
subPath: ca.crt
|
||||||
|
readOnly: true
|
||||||
|
volumes:
|
||||||
|
- name: root-ca-bundle
|
||||||
|
secret:
|
||||||
|
secretName: root-ca-bundle
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: sds-api
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 3000
|
||||||
|
targetPort: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: sds-api
|
||||||
|
app.kubernetes.io/name: sds-api
|
||||||
|
type: ClusterIP
|
||||||
67
sds/app/sds-puppeteer.yaml
Normal file
67
sds/app/sds-puppeteer.yaml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
|
||||||
|
# puppeteer:
|
||||||
|
# platform: linux/amd64
|
||||||
|
# image: registry.dev.k8s.transcity/sds/puppeteer:latest
|
||||||
|
# ports:
|
||||||
|
# - "13004:3000"
|
||||||
|
# extra_hosts:
|
||||||
|
# - "host.docker.internal:host-gateway"
|
||||||
|
# environment:
|
||||||
|
# LOG_FORMAT: "text"
|
||||||
|
# SERVER_PORT: 3000
|
||||||
|
# healthcheck:
|
||||||
|
# test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/health"]
|
||||||
|
# interval: 5s
|
||||||
|
# timeout: 2s
|
||||||
|
# retries: 10
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: sds-puppeteer
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: puppeteer
|
||||||
|
app.kubernetes.io/name: puppeteer
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: puppeteer
|
||||||
|
app.kubernetes.io/name: puppeteer
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: puppeteer
|
||||||
|
image: registry.dev.k8s.transcity/sds/puppeteer:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
env:
|
||||||
|
- name: LOG_FORMAT
|
||||||
|
value: text
|
||||||
|
- name: SERVER_PORT
|
||||||
|
value: "3000"
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 3000
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command: [ "wget", "-O", "/dev/null", "-q", "http://127.0.0.1:3000/health" ]
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 2
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: sds-puppeteer
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 3000
|
||||||
|
targetPort: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: puppeteer
|
||||||
|
app.kubernetes.io/name: puppeteer
|
||||||
|
type: ClusterIP
|
||||||
159
sds/app/sds-ui-admin.yaml
Normal file
159
sds/app/sds-ui-admin.yaml
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
# admin:
|
||||||
|
# image: registry.dev.k8s.transcity/sds/ui-admin:latest
|
||||||
|
# ports:
|
||||||
|
# - "13001:3000"
|
||||||
|
# depends_on:
|
||||||
|
# api:
|
||||||
|
# condition: service_healthy
|
||||||
|
# environment:
|
||||||
|
# SERVER_PORT: 3000
|
||||||
|
# SDS_API_URL: "http://api:3000"
|
||||||
|
# KEYCLOAK_URL: "https://keycloak.alpha.k8s.transcity"
|
||||||
|
# KEYCLOAK_AGENTS_REALM: sds-agents
|
||||||
|
# KEYCLOAK_THIRD_PARTY_REALM: sds-third-parties
|
||||||
|
# KEYCLOAK_CUSTOMERS_REALM: sds-customers
|
||||||
|
# KEYCLOAK_RETAILERS_REALM: sds-retailers
|
||||||
|
# NODE_EXTRA_CA_CERTS: /etc/ssl/certs/ca-certificates.crt
|
||||||
|
# healthcheck:
|
||||||
|
# test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/health"]
|
||||||
|
# interval: 5s
|
||||||
|
# timeout: 2s
|
||||||
|
# retries: 10
|
||||||
|
#
|
||||||
|
# volumes:
|
||||||
|
# - '/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt'
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: sds-ui-admin
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: sds-ui-admin
|
||||||
|
app.kubernetes.io/name: sds-ui-admin
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: sds-ui-admin
|
||||||
|
app.kubernetes.io/name: sds-ui-admin
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: api
|
||||||
|
image: registry.dev.k8s.transcity/sds/ui-admin:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
env:
|
||||||
|
- name: SERVER_PORT
|
||||||
|
value: "3000"
|
||||||
|
- name: SDS_API_URL
|
||||||
|
value: "http://sds-api:3000"
|
||||||
|
- name: KEYCLOAK_URL
|
||||||
|
value: "https://keycloak.alpha.k8s.transcity"
|
||||||
|
- name: KEYCLOAK_AGENTS_REALM
|
||||||
|
value: sds-agents
|
||||||
|
- name: KEYCLOAK_AGENTS_CLIENT_ID
|
||||||
|
value: sds-ui-admin
|
||||||
|
- name: KEYCLOAK_THIRD_PARTY_REALM
|
||||||
|
value: sds-third-parties
|
||||||
|
- name: KEYCLOAK_THIRD_PARTY_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-third-parties-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_THIRD_PARTY_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-third-parties-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: KEYCLOAK_CUSTOMERS_REALM
|
||||||
|
value: sds-customers
|
||||||
|
- name: KEYCLOAK_CUSTOMERS_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-customers-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_CUSTOMERS_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-customers-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: KEYCLOAK_RETAILERS_REALM
|
||||||
|
value: sds-retailers
|
||||||
|
- name: KEYCLOAK_RETAILERS_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-retailers-api-client-credentials
|
||||||
|
key: clientId
|
||||||
|
- name: KEYCLOAK_RETAILERS_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: sds-retailers-api-client-credentials
|
||||||
|
key: clientSecret
|
||||||
|
- name: NODE_EXTRA_CA_CERTS
|
||||||
|
value: /etc/ssl/certs/ca-certificates.crt
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 3000
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command: [ "wget", "-O", "/dev/null", "-q", "http://127.0.0.1:3000/health" ]
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 2
|
||||||
|
volumeMounts:
|
||||||
|
- name: root-ca-bundle
|
||||||
|
mountPath: /etc/ssl/certs/ca-certificates.crt
|
||||||
|
subPath: ca.crt
|
||||||
|
readOnly: true
|
||||||
|
volumes:
|
||||||
|
- name: root-ca-bundle
|
||||||
|
secret:
|
||||||
|
secretName: root-ca-bundle
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: sds-ui-admin
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 3000
|
||||||
|
targetPort: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: sds-ui-admin
|
||||||
|
app.kubernetes.io/name: sds-ui-admin
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: sds-ui-admin
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: admin
|
||||||
|
cert-manager.io/common-name: admin.sds.alpha.k8s.transcity
|
||||||
|
cert-manager.io/private-key-algorithm: ECDSA
|
||||||
|
forecastle.stakater.com/appName: SDS
|
||||||
|
forecastle.stakater.com/expose: 'true'
|
||||||
|
forecastle.stakater.com/group: Reports
|
||||||
|
forecastle.stakater.com/instance: admin
|
||||||
|
spec:
|
||||||
|
ingressClassName: admin
|
||||||
|
rules:
|
||||||
|
- host: admin.sds.alpha.k8s.transcity
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: sds-ui-admin
|
||||||
|
port:
|
||||||
|
name: http
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- admin.sds.alpha.k8s.transcity
|
||||||
|
secretName: sds-ui-tls
|
||||||
108
sds/base/azurite.yaml
Normal file
108
sds/base/azurite.yaml
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
---
|
||||||
|
# Source: azurite/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: azurite
|
||||||
|
labels:
|
||||||
|
app: azurite
|
||||||
|
helm.sh/chart: azurite-2.0.0
|
||||||
|
app.kubernetes.io/name: azurite
|
||||||
|
app.kubernetes.io/instance: azurite
|
||||||
|
app.kubernetes.io/version: "3.29.0"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
annotations:
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 10000
|
||||||
|
targetPort: blobs
|
||||||
|
protocol: TCP
|
||||||
|
name: blobs
|
||||||
|
- port: 10001
|
||||||
|
targetPort: queues
|
||||||
|
protocol: TCP
|
||||||
|
name: queues
|
||||||
|
- port: 10002
|
||||||
|
targetPort: tables
|
||||||
|
protocol: TCP
|
||||||
|
name: tables
|
||||||
|
selector:
|
||||||
|
app: azurite
|
||||||
|
---
|
||||||
|
# Source: azurite/templates/statefulset.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: azurite
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: azurite-2.0.0
|
||||||
|
app.kubernetes.io/name: azurite
|
||||||
|
app.kubernetes.io/instance: azurite
|
||||||
|
app.kubernetes.io/version: "3.29.0"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
serviceName: azurite
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: azurite
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- metadata:
|
||||||
|
name: storage
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: "1Gi"
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: azurite
|
||||||
|
app.kubernetes.io/name: azurite
|
||||||
|
app.kubernetes.io/instance: azurite
|
||||||
|
spec:
|
||||||
|
volumes:
|
||||||
|
- name: storage
|
||||||
|
emptyDir: {}
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 10000
|
||||||
|
runAsGroup: 10000
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 10000
|
||||||
|
containers:
|
||||||
|
- name: azurite
|
||||||
|
image: "mcr.microsoft.com/azure-storage/azurite:3.35.0"
|
||||||
|
imagePullPolicy: Always
|
||||||
|
command:
|
||||||
|
- "azurite"
|
||||||
|
- "-l"
|
||||||
|
- "/data"
|
||||||
|
- "--disableProductStyleUrl"
|
||||||
|
- "--blobHost"
|
||||||
|
- "0.0.0.0"
|
||||||
|
- "--queueHost"
|
||||||
|
- "0.0.0.0"
|
||||||
|
- "--tableHost"
|
||||||
|
- "0.0.0.0"
|
||||||
|
ports:
|
||||||
|
- containerPort: 10000
|
||||||
|
name: blobs
|
||||||
|
- containerPort: 10001
|
||||||
|
name: queues
|
||||||
|
- containerPort: 10002
|
||||||
|
name: tables
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: storage
|
||||||
|
mountPath: /data
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
266
sds/base/elasticsearch.yaml
Normal file
266
sds/base/elasticsearch.yaml
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
---
|
||||||
|
# Source: elasticsearch/templates/poddisruptionbudget.yaml
|
||||||
|
apiVersion: policy/v1
|
||||||
|
kind: PodDisruptionBudget
|
||||||
|
metadata:
|
||||||
|
name: "elasticsearch-master-pdb"
|
||||||
|
spec:
|
||||||
|
maxUnavailable: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
---
|
||||||
|
# Source: elasticsearch/templates/secret.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-master-credentials
|
||||||
|
labels:
|
||||||
|
heritage: "Helm"
|
||||||
|
release: "elasticsearch"
|
||||||
|
chart: "elasticsearch"
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
username: ZWxhc3RpYw==
|
||||||
|
password: R1RSTlpIQ0pUaUdKMkNmWQ==
|
||||||
|
---
|
||||||
|
# Source: elasticsearch/templates/service.yaml
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-master
|
||||||
|
labels:
|
||||||
|
heritage: "Helm"
|
||||||
|
release: "elasticsearch"
|
||||||
|
chart: "elasticsearch"
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
annotations:
|
||||||
|
{}
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
release: "elasticsearch"
|
||||||
|
chart: "elasticsearch"
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
publishNotReadyAddresses: false
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
protocol: TCP
|
||||||
|
port: 9200
|
||||||
|
- name: transport
|
||||||
|
protocol: TCP
|
||||||
|
port: 9300
|
||||||
|
---
|
||||||
|
# Source: elasticsearch/templates/service.yaml
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-master-headless
|
||||||
|
labels:
|
||||||
|
heritage: "Helm"
|
||||||
|
release: "elasticsearch"
|
||||||
|
chart: "elasticsearch"
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
annotations:
|
||||||
|
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
|
||||||
|
spec:
|
||||||
|
clusterIP: None # This is needed for statefulset hostnames like elasticsearch-0 to resolve
|
||||||
|
# Create endpoints also if the related pod isn't ready
|
||||||
|
publishNotReadyAddresses: true
|
||||||
|
selector:
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 9200
|
||||||
|
- name: transport
|
||||||
|
port: 9300
|
||||||
|
---
|
||||||
|
# Source: elasticsearch/templates/statefulset.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-master
|
||||||
|
labels:
|
||||||
|
heritage: "Helm"
|
||||||
|
release: "elasticsearch"
|
||||||
|
chart: "elasticsearch"
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
annotations:
|
||||||
|
esMajorVersion: "8"
|
||||||
|
spec:
|
||||||
|
serviceName: elasticsearch-master-headless
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
replicas: 1
|
||||||
|
podManagementPolicy: Parallel
|
||||||
|
updateStrategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-master
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 30Gi
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: "elasticsearch-master"
|
||||||
|
labels:
|
||||||
|
release: "elasticsearch"
|
||||||
|
chart: "elasticsearch"
|
||||||
|
app: "elasticsearch-master"
|
||||||
|
annotations:
|
||||||
|
|
||||||
|
spec:
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
runAsUser: 1000
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
affinity:
|
||||||
|
podAntiAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
- labelSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: app
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- "elasticsearch-master"
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
terminationGracePeriodSeconds: 120
|
||||||
|
volumes:
|
||||||
|
enableServiceLinks: true
|
||||||
|
initContainers:
|
||||||
|
- name: configure-sysctl
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
privileged: true
|
||||||
|
image: "docker.io/library/elasticsearch:9.1.3"
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
command: ["sysctl", "-w", "vm.max_map_count=262144"]
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
|
||||||
|
containers:
|
||||||
|
- name: "elasticsearch"
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
image: "docker.io/library/elasticsearch:9.1.3"
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Exit if ELASTIC_PASSWORD in unset
|
||||||
|
if [ -z "${ELASTIC_PASSWORD}" ]; then
|
||||||
|
echo "ELASTIC_PASSWORD variable is missing, exiting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the node is starting up wait for the cluster to be ready (request params: "wait_for_status=green&timeout=1s" )
|
||||||
|
# Once it has started only check that the node itself is responding
|
||||||
|
START_FILE=/tmp/.es_start_file
|
||||||
|
|
||||||
|
# Disable nss cache to avoid filling dentry cache when calling curl
|
||||||
|
# This is required with Elasticsearch Docker using nss < 3.52
|
||||||
|
export NSS_SDB_USE_CACHE=no
|
||||||
|
|
||||||
|
http () {
|
||||||
|
local path="${1}"
|
||||||
|
local args="${2}"
|
||||||
|
set -- -XGET -s
|
||||||
|
|
||||||
|
if [ "$args" != "" ]; then
|
||||||
|
set -- "$@" $args
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -- "$@" -u "elastic:${ELASTIC_PASSWORD}"
|
||||||
|
|
||||||
|
curl --output /dev/null -k "$@" "http://127.0.0.1:9200${path}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -f "${START_FILE}" ]; then
|
||||||
|
echo 'Elasticsearch is already running, lets check the node is healthy'
|
||||||
|
HTTP_CODE=$(http "/" "-w %{http_code}")
|
||||||
|
RC=$?
|
||||||
|
if [[ ${RC} -ne 0 ]]; then
|
||||||
|
echo "curl --output /dev/null -k -XGET -s -w '%{http_code}' \${BASIC_AUTH} http://127.0.0.1:9200/ failed with RC ${RC}"
|
||||||
|
exit ${RC}
|
||||||
|
fi
|
||||||
|
# ready if HTTP code 200, 503 is tolerable if ES version is 6.x
|
||||||
|
if [[ ${HTTP_CODE} == "200" ]]; then
|
||||||
|
exit 0
|
||||||
|
elif [[ ${HTTP_CODE} == "503" && "8" == "6" ]]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "curl --output /dev/null -k -XGET -s -w '%{http_code}' \${BASIC_AUTH} http://127.0.0.1:9200/ failed with HTTP code ${HTTP_CODE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo 'Waiting for elasticsearch cluster to become ready (request params: "wait_for_status=green&timeout=1s" )'
|
||||||
|
if http "/_cluster/health?wait_for_status=green&timeout=1s" "--fail" ; then
|
||||||
|
touch ${START_FILE}
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo 'Cluster is not yet ready (request params: "wait_for_status=green&timeout=1s" )'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 3
|
||||||
|
timeoutSeconds: 5
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 9200
|
||||||
|
- name: transport
|
||||||
|
containerPort: 9300
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 1000m
|
||||||
|
memory: 3Gi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 2Gi
|
||||||
|
env:
|
||||||
|
- name: node.name
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: cluster.initial_master_nodes
|
||||||
|
value: "elasticsearch-master-0,"
|
||||||
|
- name: node.roles
|
||||||
|
value: "master,data,data_content,data_hot,data_warm,data_cold,ingest,ml,remote_cluster_client,transform,"
|
||||||
|
- name: discovery.seed_hosts
|
||||||
|
value: "elasticsearch-master-headless"
|
||||||
|
- name: cluster.name
|
||||||
|
value: "elasticsearch"
|
||||||
|
- name: network.host
|
||||||
|
value: "0.0.0.0"
|
||||||
|
- name: ELASTIC_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: elasticsearch-master-credentials
|
||||||
|
key: password
|
||||||
|
- name: ES_JAVA_OPTS
|
||||||
|
value: "-Xms2g -Xmx2g"
|
||||||
|
- name: xpack.security.enabled
|
||||||
|
value: "false"
|
||||||
|
volumeMounts:
|
||||||
|
- name: "elasticsearch-master"
|
||||||
|
mountPath: /usr/share/elasticsearch/data
|
||||||
4
sds/base/kustomization.yaml
Normal file
4
sds/base/kustomization.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
resources:
|
||||||
|
- valkey.yaml
|
||||||
|
- azurite.yaml
|
||||||
|
- elasticsearch.yaml
|
||||||
191
sds/base/valkey.yaml
Normal file
191
sds/base/valkey.yaml
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
---
|
||||||
|
# Source: valkey/templates/serviceaccount.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: valkey
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: valkey-0.9.3
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
app.kubernetes.io/version: "9.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
---
|
||||||
|
# Source: valkey/templates/init_config.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: valkey-init-scripts
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: valkey-0.9.3
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
app.kubernetes.io/version: "9.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
data:
|
||||||
|
init.sh: |-
|
||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# Default config paths
|
||||||
|
VALKEY_CONFIG=${VALKEY_CONFIG_PATH:-/data/conf/valkey.conf}
|
||||||
|
|
||||||
|
LOGFILE="/data/init.log"
|
||||||
|
DATA_DIR="/data/conf"
|
||||||
|
|
||||||
|
# Logging function (outputs to stderr and file)
|
||||||
|
log() {
|
||||||
|
echo "$(date) $1" | tee -a "$LOGFILE" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clean old log if requested
|
||||||
|
if [ "${KEEP_OLD_LOGS:-false}" != "true" ]; then
|
||||||
|
rm -f "$LOGFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$LOGFILE" ]; then
|
||||||
|
log "Detected restart of this instance ($HOSTNAME)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Creating configuration in $DATA_DIR..."
|
||||||
|
mkdir -p "$DATA_DIR"
|
||||||
|
rm -f "$VALKEY_CONFIG"
|
||||||
|
|
||||||
|
|
||||||
|
# Base valkey.conf
|
||||||
|
log "Generating base valkey.conf"
|
||||||
|
{
|
||||||
|
echo "port 6379"
|
||||||
|
echo "protected-mode no"
|
||||||
|
echo "bind * -::*"
|
||||||
|
echo "dir /data"
|
||||||
|
} >>"$VALKEY_CONFIG"
|
||||||
|
|
||||||
|
# Append extra configs if present
|
||||||
|
if [ -f /usr/local/etc/valkey/valkey.conf ]; then
|
||||||
|
log "Appending /usr/local/etc/valkey/valkey.conf"
|
||||||
|
cat /usr/local/etc/valkey/valkey.conf >>"$VALKEY_CONFIG"
|
||||||
|
fi
|
||||||
|
if [ -d /extravalkeyconfigs ]; then
|
||||||
|
log "Appending files in /extravalkeyconfigs/"
|
||||||
|
cat /extravalkeyconfigs/* >>"$VALKEY_CONFIG"
|
||||||
|
fi
|
||||||
|
---
|
||||||
|
# Source: valkey/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: valkey
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: valkey-0.9.3
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
app.kubernetes.io/version: "9.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/component: primary
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 6379
|
||||||
|
targetPort: tcp
|
||||||
|
protocol: TCP
|
||||||
|
name: tcp
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
---
|
||||||
|
# Source: valkey/templates/deploy_valkey.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: valkey
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: valkey-0.9.3
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
app.kubernetes.io/version: "9.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: valkey
|
||||||
|
app.kubernetes.io/instance: valkey
|
||||||
|
annotations:
|
||||||
|
checksum/initconfig: 085c7380f8b46ec02c949176200b2290
|
||||||
|
spec:
|
||||||
|
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
serviceAccountName: valkey
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
runAsGroup: 1000
|
||||||
|
runAsUser: 1000
|
||||||
|
initContainers:
|
||||||
|
- name: valkey-init
|
||||||
|
image: docker.io/valkey/valkey:9.0.1
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
command: [ "/scripts/init.sh" ]
|
||||||
|
volumeMounts:
|
||||||
|
- name: valkey-data
|
||||||
|
mountPath: /data
|
||||||
|
- name: scripts
|
||||||
|
mountPath: /scripts
|
||||||
|
containers:
|
||||||
|
- name: valkey
|
||||||
|
image: docker.io/valkey/valkey:9.0.1
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command: [ "valkey-server" ]
|
||||||
|
args: [ "/data/conf/valkey.conf" ]
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
env:
|
||||||
|
- name: VALKEY_LOGLEVEL
|
||||||
|
value: "notice"
|
||||||
|
ports:
|
||||||
|
- name: tcp
|
||||||
|
containerPort: 6379
|
||||||
|
protocol: TCP
|
||||||
|
startupProbe:
|
||||||
|
exec:
|
||||||
|
command: [ "sh", "-c", "valkey-cli ping" ]
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command: [ "sh", "-c", "valkey-cli ping" ]
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 1Gi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
volumeMounts:
|
||||||
|
- name: valkey-data
|
||||||
|
mountPath: /data
|
||||||
|
volumes:
|
||||||
|
- name: scripts
|
||||||
|
configMap:
|
||||||
|
name: valkey-init-scripts
|
||||||
|
defaultMode: 0555
|
||||||
|
- name: valkey-data
|
||||||
|
emptyDir: {}
|
||||||
56
sds/local/kustomization.yaml
Normal file
56
sds/local/kustomization.yaml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
resources:
|
||||||
|
- ../app
|
||||||
|
|
||||||
|
patches:
|
||||||
|
- patch: |-
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: sds-api
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: api
|
||||||
|
env:
|
||||||
|
- name: KEYCLOAK_URL
|
||||||
|
value: "https://keycloak.demo.aws.myseamlesstravel.com"
|
||||||
|
- patch: |-
|
||||||
|
- op: replace
|
||||||
|
path: /metadata/annotations/cert-manager.io~1common-name
|
||||||
|
value: admin.sds.demo.aws.myseamlesstravel.com
|
||||||
|
- op: replace
|
||||||
|
path: /spec/rules/0/host
|
||||||
|
value: admin.sds.demo.aws.myseamlesstravel.com
|
||||||
|
- op: replace
|
||||||
|
path: /spec/tls/0/hosts/0
|
||||||
|
value: admin.sds.demo.aws.myseamlesstravel.com
|
||||||
|
target:
|
||||||
|
group: networking.k8s.io
|
||||||
|
version: v1
|
||||||
|
kind: Ingress
|
||||||
|
name: sds-ui-admin
|
||||||
|
- target:
|
||||||
|
kind: StatefulSet
|
||||||
|
patch: |-
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: all
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
"workload": "transcity-pg"
|
||||||
|
- target:
|
||||||
|
kind: Deployment
|
||||||
|
patch: |-
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: all
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
"workload": "transcity-pg"
|
||||||
Loading…
x
Reference in New Issue
Block a user