From c2f5eb70e4593e786df206c51cee3f10b89ac6f2 Mon Sep 17 00:00:00 2001 From: Jakub Nowakowski Date: Tue, 24 Jan 2023 10:49:49 +0100 Subject: [PATCH] keep-test kube configuration of electrumx-server The config deployed to keep-test. --- .../kube/keep-test/electrumx-service.yaml | 30 ++++++ .../kube/keep-test/electrumx-statefulset.yaml | 93 +++++++++++++++++++ .../keep-test/electrumx-storageclass.yaml | 14 +++ 3 files changed, 137 insertions(+) create mode 100644 infrastructure/kube/keep-test/electrumx-service.yaml create mode 100644 infrastructure/kube/keep-test/electrumx-statefulset.yaml create mode 100644 infrastructure/kube/keep-test/electrumx-storageclass.yaml diff --git a/infrastructure/kube/keep-test/electrumx-service.yaml b/infrastructure/kube/keep-test/electrumx-service.yaml new file mode 100644 index 000000000..8139a85da --- /dev/null +++ b/infrastructure/kube/keep-test/electrumx-service.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: electrumx + namespace: default + labels: + app: bitcoin + type: electrumx +spec: + type: LoadBalancer + loadBalancerIP: 34.70.22.39 + # Expose the service on ports that are proxied by Cloudflare. + # See: https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/ + ports: + - name: tcp + port: 80 + targetPort: tcp + - name: ssl + port: 443 + targetPort: ssl + - name: ws + port: 8080 + targetPort: ws + - name: wss + port: 8443 + targetPort: wss + selector: + app: bitcoin + type: electrumx diff --git a/infrastructure/kube/keep-test/electrumx-statefulset.yaml b/infrastructure/kube/keep-test/electrumx-statefulset.yaml new file mode 100644 index 000000000..ab8eca60b --- /dev/null +++ b/infrastructure/kube/keep-test/electrumx-statefulset.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: electrumx + namespace: default + labels: + app: bitcoin + type: electrumx +spec: + replicas: 1 + serviceName: electrumx + volumeClaimTemplates: + - metadata: + name: electrumx-data + spec: + storageClassName: electrumx + accessModes: [ReadWriteOnce] + resources: + requests: + storage: 30Gi + selector: + matchLabels: + app: bitcoin + type: electrumx + template: + metadata: + labels: + app: bitcoin + type: electrumx + spec: + containers: + - name: electrumx-server + image: lukechilds/electrumx:v1.16.0 + imagePullPolicy: Always + ports: + - name: tcp + containerPort: 50001 + - name: ssl + containerPort: 50002 + - name: ws + containerPort: 50003 + - name: wss + containerPort: 50004 + - name: rpc + containerPort: 8000 + readinessProbe: + tcpSocket: + port: tcp + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + tcpSocket: + port: tcp + initialDelaySeconds: 15 + periodSeconds: 20 + # Full list of env vars: https://electrumx.readthedocs.io/en/latest/environment.html + env: + - name: DB_DIRECTORY + value: /mnt/electrum/data + - name: SSL_CERTFILE + value: /mnt/electrum/cert/tls.crt + - name: SSL_KEYFILE + value: /mnt/electrum/cert/tls.key + - name: DAEMON_URL + valueFrom: + secretKeyRef: + name: bcoin + key: bcoin-url + - name: SERVICES + value: tcp://:50001,ssl://:50002,ws://:50003,wss://:50004,rpc://0.0.0.0:8000 + - name: COIN + value: Bitcoin + - name: NET + value: testnet + - name: COST_SOFT_LIMIT + value: '0' + - name: COST_HARD_LIMIT + value: '0' + - name: LOG_LEVEL + value: debug + volumeMounts: + - name: electrumx-data + mountPath: /mnt/electrum/data + - name: tbtc-network-cloudflare-origin-cert + mountPath: /mnt/electrum/cert + volumes: + - name: electrumx-data + persistentVolumeClaim: + claimName: electrumx-data + - name: tbtc-network-cloudflare-origin-cert + secret: + secretName: electrumx-server-test-tbtc-network diff --git a/infrastructure/kube/keep-test/electrumx-storageclass.yaml b/infrastructure/kube/keep-test/electrumx-storageclass.yaml new file mode 100644 index 000000000..5baee5dfd --- /dev/null +++ b/infrastructure/kube/keep-test/electrumx-storageclass.yaml @@ -0,0 +1,14 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: electrumx + namespace: default +provisioner: kubernetes.io/gce-pd +parameters: + type: pd-ssd + replication-type: none +reclaimPolicy: Retain +allowVolumeExpansion: true +mountOptions: + - debug +volumeBindingMode: Immediate