From b5d3c4e4caecd2516776d442bd05ea800dd2507d Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Mon, 3 Apr 2023 15:31:05 +0200 Subject: [PATCH] Creado NPM y StorageClass --- Nginx-proxy-manager/docker-compose.yml | 30 ++++ Nginx-proxy-manager/docker-compose.yml.nuevo | 52 ++++++ .../docker-compose.yml.original | 12 ++ StorageClass/local-storage.yaml | 6 + StorageClass/portainer.yaml | 152 ++++++++++++++++++ StorageClass/pv-local.yaml | 21 +++ 6 files changed, 273 insertions(+) create mode 100644 Nginx-proxy-manager/docker-compose.yml create mode 100644 Nginx-proxy-manager/docker-compose.yml.nuevo create mode 100644 Nginx-proxy-manager/docker-compose.yml.original create mode 100644 StorageClass/local-storage.yaml create mode 100644 StorageClass/portainer.yaml create mode 100644 StorageClass/pv-local.yaml diff --git a/Nginx-proxy-manager/docker-compose.yml b/Nginx-proxy-manager/docker-compose.yml new file mode 100644 index 00000000..95b9274e --- /dev/null +++ b/Nginx-proxy-manager/docker-compose.yml @@ -0,0 +1,30 @@ +version: "3" +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + container_name: npm + ports: + # These ports are in format : + - '80:80' # Public HTTP Port + - '443:443' # Public HTTPS Port + - '83:81' # Admin Web Port + # Add any other Stream port you want to expose + # - '21:21' # FTP + volumes: + - ./nuevo/data:/data + - ./nuevo/letsencrypt:/etc/letsencrypt + networks: + - default + - npm + web: + image: nginx + restart: always + networks: + - default + - npm + +networks: + npm: + driver: bridge + diff --git a/Nginx-proxy-manager/docker-compose.yml.nuevo b/Nginx-proxy-manager/docker-compose.yml.nuevo new file mode 100644 index 00000000..a511b868 --- /dev/null +++ b/Nginx-proxy-manager/docker-compose.yml.nuevo @@ -0,0 +1,52 @@ +version: "3" +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + container_name: npm + ports: + # These ports are in format : + - '80:80' # Public HTTP Port + - '443:443' # Public HTTPS Port + - '83:81' # Admin Web Port + # Add any other Stream port you want to expose + # - '21:21' # FTP + environment: + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "npm" + DB_MYSQL_PASSWORD: "npm" + DB_MYSQL_NAME: "npm" + # Uncomment this if IPv6 is not enabled on your host + # DISABLE_IPV6: 'true' + volumes: + - ./nuevo/data:/data + - ./nuevo/letsencrypt:/etc/letsencrypt + depends_on: + - db + networks: + - default + - npm + db: + image: 'jc21/mariadb-aria:latest' + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: 'npm' + MYSQL_DATABASE: 'npm' + MYSQL_USER: 'npm' + MYSQL_PASSWORD: 'npm' + volumes: + - ./nuevo/data/mysql:/var/lib/mysql + networks: + - npm + web: + image: nginx + restart: always + networks: + - default + - npm + +networks: + npm: + driver: bridge + diff --git a/Nginx-proxy-manager/docker-compose.yml.original b/Nginx-proxy-manager/docker-compose.yml.original new file mode 100644 index 00000000..b2b260a7 --- /dev/null +++ b/Nginx-proxy-manager/docker-compose.yml.original @@ -0,0 +1,12 @@ +version: '3.1' +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + ports: + - '80:80' + - '81:81' + - '443:443' + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt diff --git a/StorageClass/local-storage.yaml b/StorageClass/local-storage.yaml new file mode 100644 index 00000000..fcfb1a0f --- /dev/null +++ b/StorageClass/local-storage.yaml @@ -0,0 +1,6 @@ +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: local-storage +provisioner: kubernetes.io/no-provisioner +volumeBindingMode: WaitForFirstConsumer diff --git a/StorageClass/portainer.yaml b/StorageClass/portainer.yaml new file mode 100644 index 00000000..1d2fd3c2 --- /dev/null +++ b/StorageClass/portainer.yaml @@ -0,0 +1,152 @@ +--- +# Source: portainer/templates/namespace.yaml +apiVersion: v1 +kind: Namespace +metadata: + name: portainer +--- +# Source: portainer/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: portainer-sa-clusteradmin + namespace: portainer + labels: + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + app.kubernetes.io/version: "ce-latest-ee-2.17.1" +--- +# Source: portainer/templates/pvc.yaml +kind: "PersistentVolumeClaim" +apiVersion: "v1" +metadata: + name: portainer + namespace: portainer + annotations: + volume.alpha.kubernetes.io/storage-class: "generic" + labels: + io.portainer.kubernetes.application.stack: portainer + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + app.kubernetes.io/version: "ce-latest-ee-2.17.1" +spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "10Gi" +--- +# Source: portainer/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: portainer + labels: + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + app.kubernetes.io/version: "ce-latest-ee-2.17.1" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + namespace: portainer + name: portainer-sa-clusteradmin +--- +# Source: portainer/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: portainer + namespace: portainer + labels: + io.portainer.kubernetes.application.stack: portainer + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + app.kubernetes.io/version: "ce-latest-ee-2.17.1" +spec: + type: NodePort + ports: + - port: 9000 + targetPort: 9000 + protocol: TCP + name: http + nodePort: 30777 + - port: 9443 + targetPort: 9443 + protocol: TCP + name: https + nodePort: 30779 + - port: 30776 + targetPort: 30776 + protocol: TCP + name: edge + nodePort: 30776 + selector: + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer +--- +# Source: portainer/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: portainer + namespace: portainer + labels: + io.portainer.kubernetes.application.stack: portainer + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + app.kubernetes.io/version: "ce-latest-ee-2.17.1" +spec: + replicas: 1 + strategy: + type: "Recreate" + selector: + matchLabels: + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + template: + metadata: + labels: + app.kubernetes.io/name: portainer + app.kubernetes.io/instance: portainer + spec: + nodeSelector: + {} + serviceAccountName: portainer-sa-clusteradmin + volumes: + - name: "data" + persistentVolumeClaim: + claimName: portainer + containers: + - name: portainer + image: "portainer/portainer-ee:2.17.1" + imagePullPolicy: Always + args: + - '--tunnel-port=30776' + volumeMounts: + - name: data + mountPath: /data + ports: + - name: http + containerPort: 9000 + protocol: TCP + - name: https + containerPort: 9443 + protocol: TCP + - name: tcp-edge + containerPort: 8000 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: 9443 + scheme: HTTPS + readinessProbe: + httpGet: + path: / + port: 9443 + scheme: HTTPS + resources: + {} diff --git a/StorageClass/pv-local.yaml b/StorageClass/pv-local.yaml new file mode 100644 index 00000000..4d1a5929 --- /dev/null +++ b/StorageClass/pv-local.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: test-local-pv +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: local-storage + local: + path: /mnt/Externo/volumenes/pv1 + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - k8s-server