init: 폴더구조 설계 및 인프라 설계

This commit is contained in:
DongHyeonka
2026-07-24 14:31:53 +09:00
parent 34ad612281
commit f9c463f87a
1839 changed files with 323096 additions and 1 deletions
@@ -0,0 +1,27 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: docker-registry-public
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
app.kubernetes.io/version: "2.8.3"
app.kubernetes.io/component: registry
app.kubernetes.io/part-of: platform-registry
app.kubernetes.io/managed-by: kustomize
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
traefik.ingress.kubernetes.io/router.middlewares: kube-system-security-headers@kubernetescrd,mnt-docker-registry-basic-auth@kubernetescrd
spec:
ingressClassName: traefik
rules:
- host: registry.project.com
http:
paths:
- path: /v2
pathType: Prefix
backend:
service:
name: docker-registry
port:
name: http
@@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- ../../../base/plugins/docker-registry
- vault-secrets.yaml
- middleware.yaml
- ingress-public.yaml
- networkpolicy.yaml
+14
View File
@@ -0,0 +1,14 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: docker-registry-basic-auth
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/part-of: platform-registry
app.kubernetes.io/managed-by: kustomize
spec:
basicAuth:
secret: docker-registry-basic-auth
realm: docker-registry
@@ -0,0 +1,82 @@
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: docker-registry-ingress-intra
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/part-of: platform-registry
app.kubernetes.io/managed-by: kustomize
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
policyTypes:
- Ingress
ingress:
- from:
- podSelector: {}
ports:
- protocol: TCP
port: 5000
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: docker-registry-ingress-traefik
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/part-of: platform-registry
app.kubernetes.io/managed-by: kustomize
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
podSelector:
matchLabels:
app.kubernetes.io/name: traefik
ports:
- protocol: TCP
port: 5000
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: docker-registry-egress-minio
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
app.kubernetes.io/component: registry
app.kubernetes.io/part-of: platform-registry
app.kubernetes.io/managed-by: kustomize
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
policyTypes:
- Egress
egress:
- to:
- podSelector:
matchLabels:
v1.min.io/tenant: minio
ports:
- protocol: TCP
port: 80
- protocol: TCP
port: 443
- protocol: TCP
port: 9000
@@ -0,0 +1,83 @@
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
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 }}'
---
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
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 }}"
}
}
}