diff --git a/services/monero/monerod/deployment.yaml b/services/monero/monerod/deployment.yaml index 2a9d2e7..5ec5f87 100644 --- a/services/monero/monerod/deployment.yaml +++ b/services/monero/monerod/deployment.yaml @@ -23,37 +23,36 @@ spec: - | set -euo pipefail apt-get update - apt-get install -y --no-install-recommends ca-certificates curl gnupg tar bzip2 - mkdir -p /opt/monero/bin /tmp/gnupg - gpg --homedir /tmp/gnupg --import /keys/binaryfate.asc - curl -fL https://downloads.getmonero.org/cli/linux64 -o /tmp/monero-cli.tar.bz2 - curl -fL https://downloads.getmonero.org/cli/linux64.sig -o /tmp/monero-cli.tar.bz2.asc - gpg --homedir /tmp/gnupg --verify /tmp/monero-cli.tar.bz2.asc /tmp/monero-cli.tar.bz2 - tar -xjf /tmp/monero-cli.tar.bz2 -C /opt/monero - MONEROD=$(find /opt/monero -type f -name monerod | head -n1) - install -m 0755 "$MONEROD" /opt/monero/bin/monerod + apt-get install -y --no-install-recommends ca-certificates curl bzip2 + update-ca-certificates + ARCH="$(uname -m)" + case "$ARCH" in + x86_64) F="monero-linux-x64" ;; + aarch64|arm64) F="monero-linux-armv8" ;; + armv7l) F="monero-linux-armv7" ;; + *) echo "Unsupported arch: $ARCH" >&2; exit 1 ;; + esac + VER="v0.18.3.4" # set the version you want + URL="https://downloads.getmonero.org/cli/${F}-${VER}.tar.bz2" + echo "Downloading $URL" + cd /data + curl -fL "$URL" -o monero.tar.bz2 + tar -xjf monero.tar.bz2 --strip-components=1 + rm -f monero.tar.bz2 volumeMounts: - - { name: monero-bin, mountPath: /opt/monero } - - { name: release-keys, mountPath: /keys, readOnly: true } - + - name: data + mountPath: /data containers: - name: monerod image: debian:bookworm-slim command: ["/bin/sh","-lc"] - args: - - | - exec /opt/monero/bin/monerod \ - --data-dir /chain \ - --prune-blockchain \ - --rpc-bind-ip 0.0.0.0 --rpc-bind-port 18081 \ - --confirm-external-bind \ - --non-interactive \ - --max-concurrency 2 - ports: - - { containerPort: 18081, name: rpc } + args: ["exec /data/monerod --data-dir=/data --non-interactive --prune-blockchain --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18081 --p2p-bind-ip=0.0.0.0 --p2p-bind-port=18080"] volumeMounts: - - { name: chain, mountPath: /chain } - - { name: monero-bin, mountPath: /opt/monero/bin } + - { name: tmp, mountPath: /tmp } + - { name: data, mountPath: /data } + ports: + - { containerPort: 18081, name: rpc } + - { containerPort: 18080, name: p2p } securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true @@ -62,16 +61,21 @@ spec: capabilities: { drop: ["ALL"] } readinessProbe: httpGet: { path: /get_info, port: 18081 } - initialDelaySeconds: 20 + initialDelaySeconds: 90 periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 6 livenessProbe: httpGet: { path: /get_info, port: 18081 } - initialDelaySeconds: 60 + initialDelaySeconds: 180 periodSeconds: 20 + timeoutSeconds: 3 + failureThreshold: 6 volumes: - - name: chain - persistentVolumeClaim: { claimName: monerod-chain } - - name: monero-bin + - name: data + persistentVolumeClaim: + claimName: monerod-chain + - name: tmp emptyDir: {} - name: release-keys configMap: { name: monero-release-keys }