deployment.yml (3702B)
1 apiVersion: v1 2 kind: Namespace 3 metadata: 4 name: iuna 5 --- 6 apiVersion: v1 7 kind: PersistentVolumeClaim 8 metadata: 9 name: local-path-db-pvc 10 namespace: iuna 11 spec: 12 accessModes: 13 - ReadWriteOnce 14 storageClassName: local-path 15 resources: 16 requests: 17 storage: 1Gi 18 --- 19 apiVersion: apps/v1 20 kind: Deployment 21 metadata: 22 name: www 23 namespace: iuna 24 spec: 25 replicas: 1 26 selector: 27 matchLabels: 28 app: iuna-www 29 template: 30 metadata: 31 labels: 32 app: iuna-www 33 spec: 34 containers: 35 - name: iuna-www 36 image: ${IUNA_WWW_IMAGE} 37 imagePullPolicy: IfNotPresent 38 ports: 39 - name: http 40 containerPort: 80 41 --- 42 apiVersion: v1 43 kind: Service 44 metadata: 45 name: iuna-www 46 namespace: iuna 47 spec: 48 selector: 49 app: iuna-www 50 ports: 51 - name: http 52 port: 80 53 targetPort: 80 54 --- 55 apiVersion: networking.k8s.io/v1 56 kind: Ingress 57 metadata: 58 name: iuna-tls-ingress 59 namespace: iuna 60 annotations: 61 cert-manager.io/cluster-issuer: letsencrypt-prod 62 traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd 63 spec: 64 ingressClassName: traefik 65 rules: 66 - host: getiuna.org 67 http: 68 paths: 69 - path: / 70 pathType: Prefix 71 backend: 72 service: 73 name: iuna-www 74 port: 75 number: 80 76 tls: 77 - secretName: iuna-tls 78 hosts: 79 - getiuna.org 80 --- 81 apiVersion: traefik.containo.us/v1alpha1 82 kind: Middleware 83 metadata: 84 name: iuna-redirect-to-getiuna 85 namespace: iuna 86 spec: 87 redirectRegex: 88 regex: "^https?://iuna\\.jhx\\.app(?:/(.*))?$" 89 replacement: "https://getiuna.org/$1" 90 permanent: true 91 92 --- 93 apiVersion: traefik.containo.us/v1alpha1 94 kind: IngressRoute 95 metadata: 96 name: iuna-redirect 97 namespace: iuna 98 spec: 99 entryPoints: 100 - web 101 - websecure 102 routes: 103 - match: Host(`iuna.jhx.app`) 104 kind: Rule 105 middlewares: 106 - name: iuna-redirect-to-getiuna 107 services: 108 - name: iuna-www 109 port: 80 110 tls: 111 secretName: iuna-redirect-tls 112 --- 113 apiVersion: networking.k8s.io/v1 114 kind: Ingress 115 metadata: 116 name: iuna-admin-tls-ingress 117 namespace: iuna 118 annotations: 119 cert-manager.io/cluster-issuer: letsencrypt-prod 120 traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd 121 spec: 122 ingressClassName: traefik 123 rules: 124 - host: admin.iuna.jhx.app 125 http: 126 paths: 127 - path: / 128 pathType: Prefix 129 backend: 130 service: 131 name: iuna 132 port: 133 number: 18661 134 tls: 135 - secretName: iuna-admin-tls 136 hosts: 137 - admin.iuna.jhx.app 138 --- 139 apiVersion: apps/v1 140 kind: Deployment 141 metadata: 142 name: node 143 namespace: iuna 144 spec: 145 replicas: 1 146 selector: 147 matchLabels: 148 app: iuna-node 149 template: 150 metadata: 151 labels: 152 app: iuna-node 153 spec: 154 containers: 155 - name: iuna-node 156 image: ${IUNA_NODE_IMAGE} 157 imagePullPolicy: IfNotPresent 158 ports: 159 - name: management 160 containerPort: 18661 161 - name: p2p 162 containerPort: 9444 163 volumeMounts: 164 - name: data 165 mountPath: /data 166 volumes: 167 - name: data 168 persistentVolumeClaim: 169 claimName: local-path-db-pvc 170 --- 171 apiVersion: v1 172 kind: Service 173 metadata: 174 name: iuna 175 namespace: iuna 176 spec: 177 type: LoadBalancer 178 externalTrafficPolicy: Local 179 selector: 180 app: iuna-node 181 ports: 182 - name: management 183 port: 18661 184 targetPort: 18661 185 - name: p2p 186 port: 9444 187 targetPort: 9444