From aac30bfe7742fe03078305fea8cee1a19b7d4deb Mon Sep 17 00:00:00 2001 From: xavor Date: Sun, 27 Apr 2025 15:57:11 +0000 Subject: [PATCH] Primer commit --- deployments/core.yaml | 30 ++++++++++++++++++++++++++++++ deployments/database.yaml | 27 +++++++++++++++++++++++++++ deployments/jobservice.yaml | 28 ++++++++++++++++++++++++++++ deployments/portal.yaml | 20 ++++++++++++++++++++ deployments/registry.yaml | 27 +++++++++++++++++++++++++++ ingress/ingress.yaml | 26 ++++++++++++++++++++++++++ kustomization.yaml | 23 +++++++++++++++++++++++ namespace.yaml | 4 ++++ pvc/core-pvc.yaml | 12 ++++++++++++ pvc/database-pvc.yaml | 12 ++++++++++++ pvc/jobservice-pvc.yaml | 12 ++++++++++++ pvc/portal-pvc.yaml | 12 ++++++++++++ pvc/registry-pvc.yaml | 12 ++++++++++++ services/core.yaml | 13 +++++++++++++ services/database.yaml | 13 +++++++++++++ services/jobservice.yaml | 13 +++++++++++++ services/portal.yaml | 13 +++++++++++++ services/registry.yaml | 13 +++++++++++++ 18 files changed, 310 insertions(+) create mode 100644 deployments/core.yaml create mode 100644 deployments/database.yaml create mode 100644 deployments/jobservice.yaml create mode 100644 deployments/portal.yaml create mode 100644 deployments/registry.yaml create mode 100644 ingress/ingress.yaml create mode 100644 kustomization.yaml create mode 100644 namespace.yaml create mode 100644 pvc/core-pvc.yaml create mode 100644 pvc/database-pvc.yaml create mode 100644 pvc/jobservice-pvc.yaml create mode 100644 pvc/portal-pvc.yaml create mode 100644 pvc/registry-pvc.yaml create mode 100644 services/core.yaml create mode 100644 services/database.yaml create mode 100644 services/jobservice.yaml create mode 100644 services/portal.yaml create mode 100644 services/registry.yaml diff --git a/deployments/core.yaml b/deployments/core.yaml new file mode 100644 index 0000000..959b6ef --- /dev/null +++ b/deployments/core.yaml @@ -0,0 +1,30 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: harbor-core + namespace: harbor +spec: + replicas: 1 + selector: + matchLabels: + app: harbor-core + template: + metadata: + labels: + app: harbor-core + spec: + containers: + - name: core + image: goharbor/harbor-core:v2.10.0 + env: + - name: CORE_SECRET + value: "notasecret" + ports: + - containerPort: 8080 + volumeMounts: + - name: core-data + mountPath: /data + volumes: + - name: core-data + persistentVolumeClaim: + claimName: core-pvc diff --git a/deployments/database.yaml b/deployments/database.yaml new file mode 100644 index 0000000..a90c8bf --- /dev/null +++ b/deployments/database.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: harbor-database + namespace: harbor +spec: + replicas: 1 + selector: + matchLabels: + app: harbor-database + template: + metadata: + labels: + app: harbor-database + spec: + containers: + - name: database + image: goharbor/harbor-db:v2.10.0 + ports: + - containerPort: 5432 + volumeMounts: + - name: db-data + mountPath: /var/lib/postgresql/data + volumes: + - name: db-data + persistentVolumeClaim: + claimName: database-pvc diff --git a/deployments/jobservice.yaml b/deployments/jobservice.yaml new file mode 100644 index 0000000..aacde01 --- /dev/null +++ b/deployments/jobservice.yaml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: harbor-jobservice + namespace: harbor +spec: + replicas: 1 + selector: + matchLabels: + app: harbor-jobservice + template: + metadata: + labels: + app: harbor-jobservice + spec: + containers: + - name: jobservice + image: goharbor/harbor-jobservice:v2.10.0 + ports: + - containerPort: 8080 + volumeMounts: + - name: jobservice-data + mountPath: /var/jobservice + volumes: + - name: jobservice-data + persistentVolumeClaim: + claimName: jobservice-pvc + diff --git a/deployments/portal.yaml b/deployments/portal.yaml new file mode 100644 index 0000000..cf49c24 --- /dev/null +++ b/deployments/portal.yaml @@ -0,0 +1,20 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: harbor-portal + namespace: harbor +spec: + replicas: 1 + selector: + matchLabels: + app: harbor-portal + template: + metadata: + labels: + app: harbor-portal + spec: + containers: + - name: portal + image: goharbor/harbor-portal:v2.10.0 + ports: + - containerPort: 8080 diff --git a/deployments/registry.yaml b/deployments/registry.yaml new file mode 100644 index 0000000..2f75372 --- /dev/null +++ b/deployments/registry.yaml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: harbor-registry + namespace: harbor +spec: + replicas: 1 + selector: + matchLabels: + app: harbor-registry + template: + metadata: + labels: + app: harbor-registry + spec: + containers: + - name: registry + image: goharbor/registry-photon:v2.10.0 + ports: + - containerPort: 5000 + volumeMounts: + - name: registry-data + mountPath: /storage + volumes: + - name: registry-data + persistentVolumeClaim: + claimName: registry-pvc diff --git a/ingress/ingress.yaml b/ingress/ingress.yaml new file mode 100644 index 0000000..e1da5e4 --- /dev/null +++ b/ingress/ingress.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: harbor-ingress + namespace: harbor + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + nginx.ingress.kubernetes.io/ssl-redirect: "true" + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" +spec: + ingressClassName: nginx + tls: + - hosts: + - harbor.manabo.org + secretName: harbor-tls + rules: + - host: harbor.manabo.org + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: harbor-portal + port: + number: 8080 diff --git a/kustomization.yaml b/kustomization.yaml new file mode 100644 index 0000000..201d3ad --- /dev/null +++ b/kustomization.yaml @@ -0,0 +1,23 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: harbor + +resources: + - namespace.yaml + - deployments/core.yaml + - deployments/portal.yaml + - deployments/registry.yaml + - deployments/jobservice.yaml + - deployments/database.yaml + - services/core.yaml + - services/portal.yaml + - services/registry.yaml + - services/jobservice.yaml + - services/database.yaml + - pvc/core-pvc.yaml + - pvc/portal-pvc.yaml + - pvc/registry-pvc.yaml + - pvc/jobservice-pvc.yaml + - pvc/database-pvc.yaml + - ingress/ingress.yaml diff --git a/namespace.yaml b/namespace.yaml new file mode 100644 index 0000000..0a27fb7 --- /dev/null +++ b/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: harbor diff --git a/pvc/core-pvc.yaml b/pvc/core-pvc.yaml new file mode 100644 index 0000000..c3c2924 --- /dev/null +++ b/pvc/core-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: core-pvc + namespace: harbor +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 1Gi diff --git a/pvc/database-pvc.yaml b/pvc/database-pvc.yaml new file mode 100644 index 0000000..45ac133 --- /dev/null +++ b/pvc/database-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: database-pvc + namespace: harbor +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 1Gi diff --git a/pvc/jobservice-pvc.yaml b/pvc/jobservice-pvc.yaml new file mode 100644 index 0000000..e6eb23b --- /dev/null +++ b/pvc/jobservice-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: jobservice-pvc + namespace: harbor +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 1Gi diff --git a/pvc/portal-pvc.yaml b/pvc/portal-pvc.yaml new file mode 100644 index 0000000..8b2288e --- /dev/null +++ b/pvc/portal-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: portal-pvc + namespace: harbor +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 500Mi diff --git a/pvc/registry-pvc.yaml b/pvc/registry-pvc.yaml new file mode 100644 index 0000000..9bc94eb --- /dev/null +++ b/pvc/registry-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: registry-pvc + namespace: harbor +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 10Gi diff --git a/services/core.yaml b/services/core.yaml new file mode 100644 index 0000000..b954215 --- /dev/null +++ b/services/core.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: harbor-core + namespace: harbor +spec: + selector: + app: harbor-core + ports: + - protocol: TCP + port: 80 + targetPort: 8080 + type: ClusterIP diff --git a/services/database.yaml b/services/database.yaml new file mode 100644 index 0000000..e37a219 --- /dev/null +++ b/services/database.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: harbor-database + namespace: harbor +spec: + selector: + app: harbor-database + ports: + - protocol: TCP + port: 5432 + targetPort: 5432 + type: ClusterIP diff --git a/services/jobservice.yaml b/services/jobservice.yaml new file mode 100644 index 0000000..5490a7e --- /dev/null +++ b/services/jobservice.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: harbor-jobservice + namespace: harbor +spec: + selector: + app: harbor-jobservice + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 + type: ClusterIP diff --git a/services/portal.yaml b/services/portal.yaml new file mode 100644 index 0000000..2d90877 --- /dev/null +++ b/services/portal.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: harbor-portal + namespace: harbor +spec: + selector: + app: harbor-portal + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 + type: ClusterIP diff --git a/services/registry.yaml b/services/registry.yaml new file mode 100644 index 0000000..d0ed2df --- /dev/null +++ b/services/registry.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: harbor-registry + namespace: harbor +spec: + selector: + app: harbor-registry + ports: + - protocol: TCP + port: 5000 + targetPort: 5000 + type: ClusterIP