refactor: 폴더 구조 변경

This commit is contained in:
donghyeon-ka
2026-08-02 00:22:19 +09:00
parent f9c463f87a
commit be2f8e4863
1869 changed files with 4565 additions and 295591 deletions
+38
View File
@@ -0,0 +1,38 @@
defaultVaultConnection:
enabled: false
controller:
# VSO 는 전용 namespace 에 설치하지만 같은 restricted baseline 을 강제한다.
podSecurityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
manager:
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 10m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
kubeRbacProxy:
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
# kubeRBACProxy : metrics 접근 제어
+18
View File
@@ -0,0 +1,18 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- serviceaccount.yaml
- vault-connection.yaml
- vault-auth.yaml
labels:
- pairs:
app.kubernetes.io/name: vault-secrets-operator
app.kubernetes.io/instance: vso
app.kubernetes.io/version: "0.9.0"
app.kubernetes.io/component: secret-delivery
app.kubernetes.io/part-of: security-platform
app.kubernetes.io/managed-by: kustomize
includeSelectors: false
includeTemplates: true
+5
View File
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault-secrets-operator
automountServiceAccountToken: true
+27
View File
@@ -0,0 +1,27 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: vault-auth-auth-platform
spec:
vaultConnectionRef: vault-connection
method: kubernetes
mount: kubernetes
kubernetes:
role: vso-auth-platform
serviceAccount: vault-secrets-operator
audiences:
- vault
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: vault-auth-storage
spec:
vaultConnectionRef: vault-connection
method: kubernetes
mount: kubernetes
kubernetes:
role: vso-storage
serviceAccount: vault-secrets-operator
audiences:
- vault
@@ -0,0 +1,7 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultConnection
metadata:
name: vault-connection
spec:
address: http://vault.mnt.svc.cluster.local:8200
skipTLSVerify: false
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- oauth2-proxy.yaml
@@ -0,0 +1,28 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: oauth2-proxy-secrets
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
path: oauth2-proxy/forward-auth
refreshAfter: 60s
type: kv-v2
destination:
name: oauth2-proxy-secrets
create: true
overwrite: true
labels:
app.kubernetes.io/name: oauth2-proxy
app.kubernetes.io/component: auth-proxy
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
templates:
client-secret:
text: '{{ if index .Secrets "client_secret" }}{{ index .Secrets "client_secret" }}{{ else }}{{ index .Secrets "client-secret" }}{{ end }}'
cookie-secret:
text: '{{ if index .Secrets "cookie_secret" }}{{ index .Secrets "cookie_secret" }}{{ else }}{{ index .Secrets "cookie-secret" }}{{ end }}'
rolloutRestartTargets:
- kind: Deployment
name: oauth2-proxy
@@ -0,0 +1,94 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: keycloak-bootstrap-admin
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: keycloak/bootstrap-admin
refreshAfter: 60s
destination:
name: keycloak-bootstrap-admin
create: true
overwrite: true
labels:
app.kubernetes.io/name: keycloak
app.kubernetes.io/component: identity-provider
app.kubernetes.io/managed-by: vault-secrets-operator
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: keycloak-bootstrap-admin-operator
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: keycloak/bootstrap-admin
refreshAfter: 60s
destination:
name: keycloak-bootstrap-admin-operator
create: true
overwrite: true
labels:
app.kubernetes.io/name: keycloak
app.kubernetes.io/component: identity-provider
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
templates:
username:
text: '{{ .Secrets.KEYCLOAK_ADMIN }}'
password:
text: '{{ .Secrets.KEYCLOAK_ADMIN_PASSWORD }}'
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: keycloak-db-operator
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: keycloak/db
refreshAfter: 60s
destination:
name: keycloak-db-operator
create: true
overwrite: true
labels:
app.kubernetes.io/name: keycloak
app.kubernetes.io/component: database
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
templates:
username:
text: keycloak
password:
text: '{{ .Secrets.password }}'
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: keycloak-client-auth-server-ingress
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: keycloak/clients/auth-server-ingress
refreshAfter: 60s
destination:
name: keycloak-client-auth-server-ingress
create: true
overwrite: true
labels:
app.kubernetes.io/name: keycloak
app.kubernetes.io/component: identity-provider
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
templates:
client-secret:
text: '{{ .Secrets.client_secret }}'
@@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- postgres.yaml
- keycloak.yaml
@@ -0,0 +1,69 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: identity-postgres-superuser
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: identity-postgres/superuser
refreshAfter: 60s
destination:
name: identity-postgres-superuser
create: true
overwrite: true
labels:
app.kubernetes.io/name: identity-postgres
app.kubernetes.io/component: database
app.kubernetes.io/managed-by: vault-secrets-operator
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: keycloak-db-creds
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: keycloak/db
refreshAfter: 60s
destination:
name: keycloak-db
create: true
overwrite: true
labels:
app.kubernetes.io/name: keycloak
app.kubernetes.io/component: database
app.kubernetes.io/managed-by: vault-secrets-operator
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: auth-server-db-creds
spec:
vaultAuthRef: vault-auth-auth-platform
mount: secret
type: kv-v2
path: auth-server/db
refreshAfter: 60s
destination:
name: auth-server-db
create: true
overwrite: true
labels:
app.kubernetes.io/name: auth-server
app.kubernetes.io/component: database
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
templates:
SPRING_DATASOURCE_USERNAME:
text: '{{ index .Secrets "SPRING_DATASOURCE_USERNAME" }}'
SPRING_DATASOURCE_PASSWORD:
text: '{{ index .Secrets "SPRING_DATASOURCE_PASSWORD" }}'
APP_DATASOURCE_USERNAME:
text: '{{ index .Secrets "SPRING_DATASOURCE_USERNAME" }}'
APP_DATASOURCE_PASSWORD:
text: '{{ index .Secrets "SPRING_DATASOURCE_PASSWORD" }}'
rolloutRestartTargets:
- kind: Deployment
name: auth-server
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- ../../../base
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- minio.yaml
- registry-basic-auth.yaml
@@ -0,0 +1,18 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: minio-tenant-env
spec:
vaultAuthRef: vault-auth-storage
mount: secret
type: kv-v2
path: minio/tenant-env
refreshAfter: 60s
destination:
name: minio-tenant-env
create: true
overwrite: true
labels:
app.kubernetes.io/name: minio
app.kubernetes.io/component: object-storage
app.kubernetes.io/managed-by: vault-secrets-operator
@@ -0,0 +1,59 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: docker-registry-basic-auth
spec:
vaultAuthRef: vault-auth-storage
mount: secret
type: kv-v2
path: docker-registry/basic-auth
refreshAfter: 60s
destination:
name: docker-registry-basic-auth
create: true
overwrite: true
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
excludes:
- .*
templates:
users:
text: '{{ .Secrets.users }}'
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: docker-registry-pull-credentials
spec:
vaultAuthRef: vault-auth-storage
mount: secret
type: kv-v2
path: docker-registry/basic-auth
refreshAfter: 60s
destination:
name: docker-registry-pull-credentials
create: true
overwrite: true
type: kubernetes.io/dockerconfigjson
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
templates:
.dockerconfigjson:
text: |
{
"auths": {
"registry.project.com": {
"username": "{{ .Secrets.username }}",
"password": "{{ .Secrets.password }}",
"auth": "{{ printf "%s:%s" .Secrets.username .Secrets.password | b64enc }}"
}
}
}
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- secret.yaml
@@ -0,0 +1,25 @@
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: docker-registry-minio
spec:
vaultAuthRef: vault-auth-storage
mount: secret
type: kv-v2
path: docker-registry/minio
refreshAfter: 60s
destination:
name: docker-registry-minio
create: true
overwrite: true
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/managed-by: vault-secrets-operator
transformation:
excludeRaw: true
templates:
REGISTRY_STORAGE_S3_ACCESSKEY:
text: '{{ .Secrets.access_key }}'
REGISTRY_STORAGE_S3_SECRETKEY:
text: '{{ .Secrets.secret_key }}'