This commit is contained in:
2023-10-15 18:55:30 +02:00
parent d0cccb5177
commit 43a2a4f209
3 changed files with 109 additions and 81 deletions

View File

@@ -51,6 +51,26 @@ locals {
connection_secrets = merge(local.pg_secrets,local.mongo_secrets) connection_secrets = merge(local.pg_secrets,local.mongo_secrets)
} }
resource "kubectl_manifest" "dbgate-init" {
yaml_body = <<-EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: "${var.component}-${var.instance}-init"
namespace: "${var.namespace}"
labels: ${jsonencode(local.common-labels)}
data:
start.sh: |-
cp /etc/local-ca/ca.crt /usr/local/share/ca-certificates/
/usr/sbin/update-ca-certificates
/bin/su - node -c /entrypoint.sh "$@"
sleep infinity
EOF
}
resource "kubectl_manifest" "dbgate-config" { resource "kubectl_manifest" "dbgate-config" {
yaml_body = <<-EOF yaml_body = <<-EOF
apiVersion: v1 apiVersion: v1

View File

@@ -22,8 +22,7 @@ resource "kubectl_manifest" "deploy" {
securityContext: securityContext:
fsGroup: 1000 fsGroup: 1000
runAsGroup: 1000 runAsGroup: 1000
runAsNonRoot: true runAsUser: 0
runAsUser: 1000
envFrom: envFrom:
- secretRef: - secretRef:
name: "${var.component}-${var.instance}" name: "${var.component}-${var.instance}"
@@ -42,6 +41,8 @@ resource "kubectl_manifest" "deploy" {
secretKeyRef: secretKeyRef:
name: "${var.component}-${var.instance}-secret" name: "${var.component}-${var.instance}-secret"
key: client-secret key: client-secret
command:
- /start.sh
image: "${var.images.dbgate.registry}/${var.images.dbgate.repository}:${var.images.dbgate.tag}" image: "${var.images.dbgate.registry}/${var.images.dbgate.repository}:${var.images.dbgate.tag}"
imagePullPolicy: "${var.images.dbgate.pullPolicy}" imagePullPolicy: "${var.images.dbgate.pullPolicy}"
ports: ports:
@@ -72,6 +73,9 @@ resource "kubectl_manifest" "deploy" {
readOnly: true readOnly: true
- name: data - name: data
mountPath: /home/node/.dbgate mountPath: /home/node/.dbgate
- name: init
mountPath: "/start.sh"
subPath: "start.sh"
restartPolicy: Always restartPolicy: Always
securityContext: securityContext:
fsGroup: 1000 fsGroup: 1000
@@ -88,5 +92,9 @@ resource "kubectl_manifest" "deploy" {
claimName: "${var.component}-${var.instance}" claimName: "${var.component}-${var.instance}"
- name: run - name: run
emptyDir: {} emptyDir: {}
- name: init
configMap:
name: "${var.component}-${var.instance}-init"
defaultMode: 0777
EOF EOF
} }

View File

@@ -6,38 +6,6 @@ metadata:
name: dbgate name: dbgate
description: null description: null
options: options:
sub-domain:
default: dbgate
examples:
- dbgate
type: string
storage:
default:
accessMode: ReadWriteOnce
size: 1Gi
type: Filesystem
examples:
- accessMode: ReadWriteOnce
size: 1Gi
type: Filesystem
properties:
accessMode:
default: ReadWriteOnce
enum:
- ReadWriteOnce
- ReadOnlyMany
- ReadWriteMany
type: string
size:
default: 1Gi
type: string
type:
default: Filesystem
enum:
- Filesystem
- Block
type: string
type: object
maria: maria:
default: [] default: []
examples: examples:
@@ -67,60 +35,16 @@ options:
type: string type: string
type: object type: object
type: array type: array
mongo: app-group:
default: [] default: dev
examples: examples:
- [] - dev
items:
properties:
dbname:
default: ''
type: string
name:
default: ''
type: string
namespace:
default: ''
type: string
secret:
properties:
key:
default: ''
type: string
name:
default: ''
type: string
type: object
username:
default: ''
type: string
type: object
type: array
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string type: string
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
app-group:
default: dev
examples:
- dev
type: string
images: images:
default: default:
dbgate: dbgate:
@@ -189,6 +113,82 @@ options:
type: string type: string
type: object type: object
type: array type: array
sub-domain:
default: dbgate
examples:
- dbgate
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
mongo:
default: []
examples:
- []
items:
properties:
dbname:
default: ''
type: string
name:
default: ''
type: string
namespace:
default: ''
type: string
secret:
properties:
key:
default: ''
type: string
name:
default: ''
type: string
type: object
username:
default: ''
type: string
type: object
type: array
ingress-class:
default: traefik
examples:
- traefik
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
storage:
default:
accessMode: ReadWriteOnce
size: 1Gi
type: Filesystem
examples:
- accessMode: ReadWriteOnce
size: 1Gi
type: Filesystem
properties:
accessMode:
default: ReadWriteOnce
enum:
- ReadWriteOnce
- ReadOnlyMany
- ReadWriteMany
type: string
size:
default: 1Gi
type: string
type:
default: Filesystem
enum:
- Filesystem
- Block
type: string
type: object
dependencies: dependencies:
- dist: null - dist: null
category: share category: share