diff --git a/infrastructure_setup/docker-registry/config.env b/infrastructure_setup/docker-registry/config.env new file mode 100644 index 0000000..7a5d913 --- /dev/null +++ b/infrastructure_setup/docker-registry/config.env @@ -0,0 +1,2 @@ +DOCKER_REGISTRY_STORAGE=10Gi +DOCKER_REGISTRY_HOST=docker-registry.internal.cloud.payne.io diff --git a/infrastructure_setup/docker-registry/deployment.yaml b/infrastructure_setup/docker-registry/deployment.yaml new file mode 100644 index 0000000..dc8cc08 --- /dev/null +++ b/infrastructure_setup/docker-registry/deployment.yaml @@ -0,0 +1,36 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: docker-registry + labels: + app: docker-registry +spec: + replicas: 1 + selector: + matchLabels: + app: docker-registry + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + app: docker-registry + spec: + containers: + - image: registry:3.0.0 + name: docker-registry + ports: + - containerPort: 5000 + protocol: TCP + volumeMounts: + - mountPath: /var/lib/registry + name: docker-registry-storage + readOnly: false + volumes: + - name: docker-registry-storage + persistentVolumeClaim: + claimName: docker-registry-pvc diff --git a/infrastructure_setup/docker-registry/ingress.yaml b/infrastructure_setup/docker-registry/ingress.yaml new file mode 100644 index 0000000..31602be --- /dev/null +++ b/infrastructure_setup/docker-registry/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: docker-registry +spec: + rules: + - host: docker-registry.internal.${DOMAIN} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: docker-registry + port: + number: 5000 + tls: + - hosts: + - docker-registry.internal.${DOMAIN} + secretName: wildcard-internal-sovereign-cloud-tls diff --git a/infrastructure_setup/docker-registry/kustomization.yaml b/infrastructure_setup/docker-registry/kustomization.yaml new file mode 100644 index 0000000..8d21a64 --- /dev/null +++ b/infrastructure_setup/docker-registry/kustomization.yaml @@ -0,0 +1,40 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: docker-registry +labels: +- includeSelectors: true + pairs: + app: docker-registry + managedBy: sovereign-cloud +resources: +- deployment.yaml +- ingress.yaml +- service.yaml +- namespace.yaml +- pvc.yaml +configMapGenerator: + - name: docker-registry-config + envs: + - config.env +replacements: + - source: + kind: ConfigMap + name: docker-registry-config + fieldPath: data.DOCKER_REGISTRY_STORAGE + targets: + - select: + kind: PersistentVolumeClaim + name: docker-registry-pvc + fieldPaths: + - spec.resources.requests.storage + - source: + kind: ConfigMap + name: docker-registry-config + fieldPath: data.DOCKER_REGISTRY_HOST + targets: + - select: + kind: Ingress + name: docker-registry + fieldPaths: + - spec.rules.0.host + - spec.tls.0.hosts.0 diff --git a/infrastructure_setup/docker-registry/namespace.yaml b/infrastructure_setup/docker-registry/namespace.yaml new file mode 100644 index 0000000..4cd3252 --- /dev/null +++ b/infrastructure_setup/docker-registry/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: docker-registry diff --git a/infrastructure_setup/docker-registry/pvc.yaml b/infrastructure_setup/docker-registry/pvc.yaml new file mode 100644 index 0000000..41ced2f --- /dev/null +++ b/infrastructure_setup/docker-registry/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: docker-registry-pvc +spec: + storageClassName: longhorn + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + resources: + requests: + storage: 10Gi diff --git a/infrastructure_setup/docker-registry/service.yaml b/infrastructure_setup/docker-registry/service.yaml new file mode 100644 index 0000000..b040967 --- /dev/null +++ b/infrastructure_setup/docker-registry/service.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: docker-registry + labels: + app: docker-registry +spec: + ports: + - port: 5000 + targetPort: 5000 + selector: + app: docker-registry diff --git a/infrastructure_setup/setup-all.sh b/infrastructure_setup/setup-all.sh index 22b39d4..3f7c948 100755 --- a/infrastructure_setup/setup-all.sh +++ b/infrastructure_setup/setup-all.sh @@ -32,6 +32,10 @@ chmod +x *.sh # Setup Kubernetes Dashboard ./setup-dashboard.sh +# Setup Docker Registry +./setup-registry.sh +kubectl apply -k docker-registry + echo "Infrastructure setup complete!" echo echo "Next steps:"