Helmfile

Below are two examples of helmfile in action. One a simple single helmfile for testing and the second a more realistic example to be used in production.

Basic helmfile example

This is a very simple one file example of a helmfile to deploy two rococo-local relaychain validators along with two parachains statemint-dev and contracts-rococo-dev. It is intended for basic testing and familiarization of helmfile.

A more real world example is listed below which comes from the testnet-manager repo. A nginx container will also be deployed to host chain spec files.

Steps:

  • Create a helmfile based on the simple example below and name it helmfile.yaml

  • Install a web server to host helmfiles using kubectl create -f https://raw.githubusercontent.com/paritytech/testnet-manager/main/local-kubernetes/kube-setup/validators-chainspec.yml

  • Add relaychain and parachains using: helmfile sync

Real world helmfile example

You can find a good reference helmfile example at the testnet-manager examples folder.

Basic_helmfile

repositories:
  - name: parity
    url: https://paritytech.github.io/helm-charts/

helmDefaults:
  createNamespace: false
  waitForJobs: true

releases:
  ## Relaychain Rococo ##
  - name: validator-alice
    namespace: rococo
    chart: parity/node
    version: 2.11.4
    values:
      - node:
          chain: rococo-local
          replicas: 1
          customChainspecUrl: "http://chainspec.rococo/rococo-local.json"
          role: authority
          flags:
            - "--alice"
            - "--unsafe-rpc-external"
            - "--unsafe-ws-external"
            - "--rpc-methods=unsafe"
            - "--rpc-cors=all"
            - "--node-key 0x91cb59d86820419075b08e3043cd802ba3506388d8b161d2d4acd203af5194c1"
        storageClass: standard
        extraLabels:
          validatorAccount: "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY" # Alice address
          ss58Format: "0"
  - name: validator-bob
    namespace: rococo
    chart: parity/node
    version: 2.11.4
    values:
      - node:
          chain: rococo-local
          customChainspecUrl: "http://chainspec.rococo/rococo-local.json"
          role: authority
          replicas: 1
          flags:
            - "--bob"
            - "--unsafe-rpc-external"
            - "--unsafe-ws-external"
            - "--rpc-methods=unsafe"
            - "--rpc-cors=all"
        storageClass: standard
        extraLabels:
          validatorAccount: "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc" # Bob address
          ss58Format: "0"

  ## Parachain Statemint ##
  - name: statemint-alice
    namespace: rococo
    chart: parity/node
    version: 2.11.4
    values:
      - image:
          repository: "parity/polkadot-parachain"
          tag: "latest"
      - node:
          chain: statemint-dev
          role: collator
          command: "/usr/local/bin/polkadot-parachain"
          collator:
            isParachain: true
            relayChainFlags: "--execution wasm --bootnodes /dns4/validator-alice-node-0/tcp/30333/p2p/12D3KooWMeR4iQLRBNq87ViDf9W7f6cc9ydAPJgmq48rAH116WoC"
            relayChainCustomChainspecUrl: "http://chainspec.rococo/rococo-local.json"
          flags:
            - "--alice"
            - "--unsafe-rpc-external"
            - "--unsafe-ws-external"
            - "--rpc-methods=unsafe"
            - "--rpc-cors=all"
            - "--force-authoring"
            - "--pruning=archive"
        storageClass: standard
        extraLabels:
          paraId: "1000"
          ss58Format: "0"

  ## Parachain contracts rococo
  - name: contracts-alice
    namespace: rococo
    chart: parity/node
    version: 2.11.4
    values:
      - image:
          repository: "parity/polkadot-parachain"
          tag: "latest"
      - node:
          chain: contracts-rococo-dev
          role: collator
          command: "/usr/local/bin/polkadot-parachain"
          collator:
            isParachain: true
            relayChainFlags: "--execution wasm --bootnodes /dns4/validator-alice-node-0/tcp/30333/p2p/12D3KooWMeR4iQLRBNq87ViDf9W7f6cc9ydAPJgmq48rAH116WoC"
            relayChainCustomChainspecUrl: "http://chainspec.rococo/rococo-local.json"
          flags:
            - "--alice"
            - "--unsafe-rpc-external"
            - "--unsafe-ws-external"
            - "--rpc-methods=unsafe"
            - "--rpc-cors=all"
            - "--force-authoring"
            - "--pruning=archive"
        storageClass: standard
        extraLabels:
          paraId: "1002"
          ss58Format: "0"
Last change: 2024-03-29, commit: 937fd62