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
+15
View File
@@ -0,0 +1,15 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: docker-registry-config
data:
REGISTRY_HTTP_ADDR: "0.0.0.0:5000"
REGISTRY_LOG_FORMATTER: "json"
REGISTRY_STORAGE: "s3"
REGISTRY_STORAGE_S3_REGION: "us-east-1"
REGISTRY_STORAGE_S3_REGIONENDPOINT: "https://minio"
REGISTRY_STORAGE_S3_BUCKET: "docker-registry"
REGISTRY_STORAGE_S3_FORCEPATHSTYLE: "true"
REGISTRY_STORAGE_S3_SKIPVERIFY: "true"
REGISTRY_STORAGE_REDIRECT_DISABLE: "true"
REGISTRY_STORAGE_DELETE_ENABLED: "true"
@@ -0,0 +1,94 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: docker-registry
spec:
replicas: 1
revisionHistoryLimit: 5
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 0
selector:
matchLabels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
template:
metadata:
labels:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
spec:
serviceAccountName: docker-registry
automountServiceAccountToken: false
terminationGracePeriodSeconds: 45
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
fsGroupChangePolicy: OnRootMismatch
seccompProfile:
type: RuntimeDefault
containers:
- name: registry
image: registry:2.8.3
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 5000
protocol: TCP
envFrom:
- configMapRef:
name: docker-registry-config
- secretRef:
name: docker-registry-minio
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 512Mi
startupProbe:
httpGet:
path: /v2/
port: http
periodSeconds: 5
failureThreshold: 12
timeoutSeconds: 3
readinessProbe:
httpGet:
path: /v2/
port: http
periodSeconds: 10
failureThreshold: 3
timeoutSeconds: 3
livenessProbe:
httpGet:
path: /v2/
port: http
periodSeconds: 30
failureThreshold: 3
timeoutSeconds: 3
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
allowPrivilegeEscalation: false
privileged: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir:
medium: Memory
sizeLimit: 64Mi
+19
View File
@@ -0,0 +1,19 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- serviceaccount.yaml
- configmap.yaml
- service.yaml
- deployment.yaml
labels:
- pairs:
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
includeSelectors: false
includeTemplates: true
+15
View File
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: docker-registry
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: docker-registry
app.kubernetes.io/instance: docker-registry
ports:
- name: http
port: 5000
targetPort: http
protocol: TCP
appProtocol: http
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: docker-registry
automountServiceAccountToken: false
@@ -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,22 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: mnt
resources:
- ../../base
- middleware.yaml
- ingress-public.yaml
- networkpolicy.yaml
patches:
- target:
kind: ConfigMap
name: docker-registry-config
patch: |-
- op: replace
path: /data/REGISTRY_STORAGE_S3_REGIONENDPOINT
value: http://minio
- op: replace
path: /data/REGISTRY_STORAGE_S3_SKIPVERIFY
value: "false"
@@ -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