iuna

iuna

iuna - experimental mainnet-candidate protocol
git clone https://getiuna.org/git/iuna.git
Log | Files | Refs | README | LICENSE

deployment.yml (5362B)


      1 apiVersion: v1
      2 kind: Namespace
      3 metadata:
      4   name: iuna
      5 ---
      6 apiVersion: v1
      7 kind: PersistentVolumeClaim
      8 metadata:
      9   name: ${IUNA_NODE_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     - host: wallet.getiuna.org
     77       http:
     78         paths:
     79           - path: /
     80             pathType: Prefix
     81             backend:
     82               service:
     83                 name: iuna-www
     84                 port:
     85                   number: 80
     86   tls:
     87     - secretName: iuna-tls
     88       hosts:
     89         - getiuna.org
     90         - wallet.getiuna.org
     91 ---
     92 apiVersion: traefik.containo.us/v1alpha1
     93 kind: Middleware
     94 metadata:
     95   name: iuna-redirect-to-getiuna
     96   namespace: iuna
     97 spec:
     98   redirectRegex:
     99     regex: "^https?://iuna\\.jhx\\.app(?:/(.*))?$"
    100     replacement: "https://getiuna.org/$1"
    101     permanent: true
    102 
    103 ---
    104 apiVersion: traefik.containo.us/v1alpha1
    105 kind: IngressRoute
    106 metadata:
    107   name: iuna-redirect
    108   namespace: iuna
    109 spec:
    110   entryPoints:
    111     - web
    112     - websecure
    113   routes:
    114     - match: Host(`iuna.jhx.app`) && PathPrefix(`/v1`)
    115       kind: Rule
    116       priority: 100
    117       services:
    118         - name: iuna-wallet
    119           port: 18662
    120     - match: Host(`iuna.jhx.app`)
    121       kind: Rule
    122       priority: 1
    123       middlewares:
    124         - name: iuna-redirect-to-getiuna
    125       services:
    126         - name: iuna-www
    127           port: 80
    128   tls:
    129     secretName: iuna-redirect-tls
    130 ---
    131 apiVersion: networking.k8s.io/v1
    132 kind: Ingress
    133 metadata:
    134   name: iuna-admin-tls-ingress
    135   namespace: iuna
    136   annotations:
    137     cert-manager.io/cluster-issuer: letsencrypt-prod
    138     traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd,iuna-iuna-admin-ip-allowlist@kubernetescrd
    139 spec:
    140   ingressClassName: traefik
    141   rules:
    142     - host: admin.iuna.jhx.app
    143       http:
    144         paths:
    145           - path: /
    146             pathType: Prefix
    147             backend:
    148               service:
    149                 name: iuna-management
    150                 port:
    151                   number: 18661
    152   tls:
    153     - secretName: iuna-admin-tls
    154       hosts:
    155         - admin.iuna.jhx.app
    156 ---
    157 apiVersion: traefik.containo.us/v1alpha1
    158 kind: Middleware
    159 metadata:
    160   name: iuna-admin-ip-allowlist
    161   namespace: iuna
    162 spec:
    163   ipAllowList:
    164     sourceRange:
    165 ${IUNA_ADMIN_IP_ALLOWLIST_LOCAL}
    166 ---
    167 apiVersion: apps/v1
    168 kind: Deployment
    169 metadata:
    170   name: node
    171   namespace: iuna
    172 spec:
    173   replicas: 1
    174   minReadySeconds: 3
    175   strategy:
    176     type: Recreate
    177     rollingUpdate: null
    178   selector:
    179     matchLabels:
    180       app: iuna-node
    181   template:
    182     metadata:
    183       labels:
    184         app: iuna-node
    185     spec:
    186       containers:
    187         - name: iuna-node
    188           image: ${IUNA_NODE_IMAGE}
    189           imagePullPolicy: IfNotPresent
    190           args:
    191 ${IUNA_NODE_GENESIS_ARG}
    192             - --data-dir
    193             - /data
    194             - --http
    195             - 0.0.0.0:18661
    196             - --p2p
    197             - 0.0.0.0:9444
    198             - --p2p-announce
    199             - 142.132.164.59:9444
    200             - --wallet-endpoint
    201             - 0.0.0.0:18662
    202           ports:
    203             - name: management
    204               containerPort: 18661
    205             - name: p2p
    206               containerPort: 9444
    207             - name: wallet-api
    208               containerPort: 18662
    209           readinessProbe:
    210             tcpSocket:
    211               port: management
    212             initialDelaySeconds: 1
    213             periodSeconds: 2
    214             timeoutSeconds: 1
    215             failureThreshold: 30
    216           volumeMounts:
    217             - name: data
    218               mountPath: /data
    219       volumes:
    220         - name: data
    221           persistentVolumeClaim:
    222             claimName: ${IUNA_NODE_PVC}
    223 ---
    224 apiVersion: v1
    225 kind: Service
    226 metadata:
    227   name: iuna-management
    228   namespace: iuna
    229 spec:
    230   selector:
    231     app: iuna-node
    232   ports:
    233     - name: management
    234       port: 18661
    235       targetPort: 18661
    236 ---
    237 apiVersion: v1
    238 kind: Service
    239 metadata:
    240   name: iuna-wallet
    241   namespace: iuna
    242 spec:
    243   selector:
    244     app: iuna-node
    245   ports:
    246     - name: wallet-api
    247       port: 18662
    248       targetPort: 18662
    249 ---
    250 apiVersion: v1
    251 kind: Service
    252 metadata:
    253   name: iuna
    254   namespace: iuna
    255 spec:
    256   type: LoadBalancer
    257   externalTrafficPolicy: Local
    258   selector:
    259     app: iuna-node
    260   ports:
    261     - name: p2p
    262       port: 9444
    263       targetPort: 9444