External Environment

Using remote components

Because components are decoupled through outputs, you can use a cached config and switch outputs to any deployed infrastructure, such as staging.

This allows you to reuse the same testing logic for behavior validation.

For example, to integrate with remote k8s environment you can use CTF_CONFIGS=smoke_external.toml and override all the outputs of components to connect to your remote env.

[blockchain_a]

  [blockchain_a.out]
    chain_id = "1337"
    use_cache = true

    [[blockchain_a.out.nodes]]
      # set up your RPC URLs
      http_url = "http://127.0.0.1:8545"
      ws_url = "ws://127.0.0.1:8545"

[nodeset]

  [[nodeset.node_specs]]
  ...

  [nodeset.out]
    use_cache = true

    [[nodeset.out.cl_nodes]]
      use_cache = true

      [nodeset.out.cl_nodes.node]
        # set up your user/password for API authorization
        api_auth_user = 'notreal@fakeemail.ch'
        api_auth_password = 'fj293fbBnlQ!f9vNs'
        # set up each node URLs
        p2p_url = "http://127.0.0.1:12000"
        url = "http://127.0.0.1:10000"

      [nodeset.out.cl_nodes.postgresql]
        # set up a database URL so tests can connect to your database if needed
        url = "postgresql://chainlink:thispasswordislongenough@127.0.0.1:13000/db_0?sslmode=disable"
      
      # more nodes in this array, configuration is the same ...