diff --git a/book/book.toml b/book/book.toml
index ea17be3c8..c150a410a 100644
--- a/book/book.toml
+++ b/book/book.toml
@@ -12,6 +12,10 @@ build-dir = "docs"
default-theme = "ayu"
additional-js = ["mermaid.min.js", "mermaid-init.js"]
+[output.html.fold]
+enable = true
+level = 0
+
[preprocessor.alerts]
[preprocessor.cmdrun]
diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md
index e94b61e02..bf62fd336 100644
--- a/book/src/SUMMARY.md
+++ b/book/src/SUMMARY.md
@@ -2,70 +2,59 @@
- [Overview](./overview.md)
- [Framework](./framework/overview.md)
+- [Basic Usage](./framework/getting_started.md)
- [Getting Started](./framework/getting_started.md)
- [Your First Test](./framework/first_test.md)
- [NodeSet Environment](./framework/nodeset_environment.md)
- - [NodeSet Environment (Import Keys)](./framework/nodeset_environment_import.md)
- - [NodeSet with Capabilities](./framework/nodeset_capabilities.md)
+ - [NodeSet (Capabilities)](./framework/nodeset_capabilities.md)
- [NodeSet (Local Docker builds)](./framework/nodeset_docker_rebuild.md)
- - [NodeSet Compat Environment](./framework/nodeset_compatibility.md)
+- [Advanced Usage](./framework/configuration.md)
+ - [CLI](./framework/cli.md)
+ - [Configuration](./framework/configuration.md)
+ - [Debugging Tests](framework/components/debug.md)
- [Creating your own components](./developing/developing_components.md)
+ - [Exposing Components](framework/components/state.md)
- [Asserting Logs](./developing/asserting_logs.md)
- [Quick Contracts Deployment](./framework/quick_deployment.md)
- [Verifying Contracts](./framework/verify.md)
- - [NodeSet with External Blockchain]()
- - [CLI](./framework/cli.md)
- - [Configuration](./framework/configuration.md)
+ - [CL Node Keys Import](./framework/cl_node_keys_import.md)
- [Test Configuration](./framework/test_configuration_overrides.md)
- - [Exposing Components](framework/components/state.md)
- - [Debugging Tests](framework/components/debug.md)
- [Debugging K8s Chaos Tests](framework/chaos/debug-k8s.md)
- [Components Cleanup](framework/components/cleanup.md)
- [Components Caching](framework/components/caching.md)
- [Components Resources](framework/components/resources.md)
- [Containers Network Isolation](framework/components/network_isolation.md)
- - [Faking Services](framework/components/mocking.md)
+ - [Fake Services](framework/components/mocking.md)
- [Copying Files](framework/copying_files.md)
- [External Environment](framework/components/external.md)
- - [Troubleshooting](framework/components/troubleshooting.md)
- - [Secrets]()
- - [Observability Stack](framework/observability/observability_stack.md)
- - [Metrics](framework/observability/metrics.md)
- - [Logs](framework/observability/logs.md)
- - [Profiling](framework/observability/profiling.md)
- - [PostgreSQL](framework/observability/postgresql.md)
- - [Traces]()
- - [Blockscout](framework/observability/blockscout.md)
- - [Components](framework/components/overview.md)
- - [Blockchains](framework/components/blockchains/overview.md)
- - [EVM](framework/components/blockchains/evm.md)
- - [Solana](framework/components/blockchains/solana.md)
- - [Aptos](framework/components/blockchains/aptos.md)
- - [Sui](framework/components/blockchains/sui.md)
- - [TRON](framework/components/blockchains/tron.md)
- - [ZKSync](framework/components/blockchains/zksync.md)
- - [Ton](framework/components/blockchains/ton.md)
- - [Optimism Stack]()
- - [Arbitrum Stack]()
- - [Chainlink](framework/components/chainlink.md)
- - [Node](framework/components/chainlink/node.md)
- - [NodeSet](framework/components/chainlink/nodeset.md)
- - [Storage](framework/components/storage.md)
- - [S3](framework/components/storage/s3.md)
- - [Chip Ingress Set](framework/components/chipingresset/chip_ingress.md)
- - [Clients]()
- - [Chainlink]()
- - [RPC]()
- - [Loki]()
+- [Observability Stack](framework/observability/observability_stack.md)
+ - [Overview](framework/observability/observability_stack.md)
+ - [Metrics](framework/observability/metrics.md)
+ - [Logs](framework/observability/logs.md)
+ - [Profiling](framework/observability/profiling.md)
+ - [PostgreSQL](framework/observability/postgresql.md)
+ - [BlockScout](framework/observability/blockscout.md)
+- [Components](framework/components/overview.md)
+ - [Overview](framework/components/overview.md)
+ - [Blockchains](framework/components/blockchains/overview.md)
+ - [EVM](framework/components/blockchains/evm.md)
+ - [Solana](framework/components/blockchains/solana.md)
+ - [Aptos](framework/components/blockchains/aptos.md)
+ - [Sui](framework/components/blockchains/sui.md)
+ - [TRON](framework/components/blockchains/tron.md)
+ - [ZKSync](framework/components/blockchains/zksync.md)
+ - [Ton](framework/components/blockchains/ton.md)
+ - [Storage](framework/components/storage.md)
+ - [S3](framework/components/storage/s3.md)
+ - [Chip Ingress Set](framework/components/chipingresset/chip_ingress.md)
+- [Troubleshooting](framework/components/troubleshooting.md)
- [Mono Repository Tooling](./monorepo-tools.md)
- [Testing Maturity Model](framework/testing.md)
- - [Smoke]()
- - [Performance]()
- - [Chaos](./framework/chaos/chaos.md)
+ - [Chaos Testing](./framework/chaos/chaos.md)
- [Fork Testing](./framework/fork.md)
- [Fork Testing (Mutating Storage)](./framework/fork_storage.md)
- [Libraries](./libraries.md)
- - [Seth](./libs/seth.md)
+ - [Overview](./libraries.md)
- [WASP](./libs/wasp/overview.md)
- [Getting started](./libs/wasp/getting_started.md)
- [First test (RPS test)](./libs/wasp/first_test.md)
@@ -112,45 +101,46 @@
- [Reuse dashboard components](./libs/wasp/how-to/reuse_dashboard_components.md)
- [Parallelize load](./libs/wasp/how-to/parallelise_load.md)
- [Debug Loki errors](./libs/wasp/how-to/debug_loki_errors.md)
- - [Havoc](./libs/havoc.md)
- - [K8s Test Runner](k8s-test-runner/k8s-test-runner.md)
+ - [Havoc](./libs/havoc.md)
+ - [Seth](./libs/seth.md)
- [Sentinel](./libs/sentinel.md)
-
---
-- [Releasing modules](releasing_modules.md)
+- [Legacy](./legacy.md)
+ - [Overview](./legacy.md)
+ - [CTFv1](lib.md)
+ - [Blockchain](lib/blockchain.md)
+ - [Concurrency](lib/concurrency.md)
+ - [Client](lib/client.md)
+ - [Anvil]()
+ - [AWS Secrets Manager](lib/client/aws_secrets_manager.md)
+ - [Github](lib/client/github.md)
+ - [Grafana](lib/client/grafana.md)
+ - [Kafka](lib/client/kafka.md)
+ - [Loki](lib/client/loki.md)
+ - [MockServer](lib/client/mockserver.md)
+ - [Postgres](lib/client/postgres.md)
+ - [Prometheus](lib/client/prometheus.md)
+ - [Kubernetes](lib/k8s_new/overview.md)
+ - [Creating environments](lib/k8s_new/environments.md)
+ - [Using remote runner](lib/k8s_new/remote_runner.md)
+ - [Passing test secrets](lib/k8s_new/test_secrets.md)
+ - [chain.link labels](lib/k8s/labels.md)
+ - [Kubernetes (legacy docs)](lib/k8s/KUBERNETES.md)
+ - [K8s Remote Run](lib/k8s/REMOTE_RUN.md)
+ - [K8s Tutorial](lib/k8s/TUTORIAL.md)
+ - [Config](lib/config/config.md)
+ - [Docker](lib/docker/overview.md)
+ - [Blockchain nodes](lib/docker/blockchain_nodes.md)
+ - [Chainlink ecosystem](lib/docker/chainlink_ecosystem.md)
+ - [Third party apps]()
+ - [Test helpers](lib/docker/test_helpers.md)
+ - [Logging](lib/logging.md)
+ - [K8s Test Runner](k8s-test-runner/k8s-test-runner.md)
---
-- [CTFv1 (Discouraged)](lib.md)
- - [Blockchain](lib/blockchain.md)
- - [Concurrency](lib/concurrency.md)
- - [Client](lib/client.md)
- - [Anvil]()
- - [AWS Secrets Manager](lib/client/aws_secrets_manager.md)
- - [Github](lib/client/github.md)
- - [Grafana](lib/client/grafana.md)
- - [Kafka](lib/client/kafka.md)
- - [Loki](lib/client/loki.md)
- - [MockServer](lib/client/mockserver.md)
- - [Postgres](lib/client/postgres.md)
- - [Prometheus](lib/client/prometheus.md)
- - [Kubernetes](lib/k8s_new/overview.md)
- - [Creating environments](lib/k8s_new/environments.md)
- - [Using remote runner](lib/k8s_new/remote_runner.md)
- - [Passing test secrets](lib/k8s_new/test_secrets.md)
- - [chain.link labels](lib/k8s/labels.md)
- - [Kubernetes (legacy docs)](lib/k8s/KUBERNETES.md)
- - [K8s Remote Run](lib/k8s/REMOTE_RUN.md)
- - [K8s Tutorial](lib/k8s/TUTORIAL.md)
- - [Config](lib/config/config.md)
- - [CRIB Connector](lib/crib.md)
- - [Docker](lib/docker/overview.md)
- - [Blockchain nodes](lib/docker/blockchain_nodes.md)
- - [Chainlink ecosystem](lib/docker/chainlink_ecosystem.md)
- - [Third party apps]()
- - [Test helpers](lib/docker/test_helpers.md)
- - [Logging](lib/logging.md)
+- [Releasing modules](releasing_modules.md)
---
diff --git a/book/src/developing.md b/book/src/developing.md
index 629accedf..76cee74da 100644
--- a/book/src/developing.md
+++ b/book/src/developing.md
@@ -5,4 +5,4 @@ Here we describe good practices for developing components for our framework.
Rules for components are simple:
- Component should declare some `Input` and an optional `Output` (we use that so we can skip or cache any component results)
- Components should be isolated, they should not return anything except basic types like `int`, `string`, `maps` or `structs`
-- Component **must** have documentation under [Components](./framework/components/overview.md), here is an [example](./framework/components/chainlink/node.md)
\ No newline at end of file
+- Component **must** have documentation under [Components](./framework/components/overview.md), here is an [example](./framework/components/chainlink/nodeset.md)
\ No newline at end of file
diff --git a/book/src/framework/nodeset_environment_import.md b/book/src/framework/cl_node_keys_import.md
similarity index 91%
rename from book/src/framework/nodeset_environment_import.md
rename to book/src/framework/cl_node_keys_import.md
index d26e98206..a514b073f 100644
--- a/book/src/framework/nodeset_environment_import.md
+++ b/book/src/framework/cl_node_keys_import.md
@@ -1,5 +1,6 @@
-# NodeSet Environment (Import Keys)
+# CL Node Keys Import
If your tests are designed to run not just within a Docker environment but also with external infrastructure, and you want to reuse the test logic across different environments or securely store private keys, refer to the example below.
[Import Keys Example](https://github.com/smartcontractkit/chainlink-testing-framework/blob/main/framework/examples/myproject/smoke_import_keys_test.go)
+
diff --git a/book/src/framework/components/chainlink/node.md b/book/src/framework/components/chainlink/node.md
deleted file mode 100644
index eba6e5e92..000000000
--- a/book/src/framework/components/chainlink/node.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# Node
-
-Here we provide *full* configuration parameters for `Node`
-
-
-Here we provide full configuration reference, if you want to copy and run it, please remove all .out fields before!
-
-
-
-## Configuration
-```toml
-[cl_node]
-
- [cl_node.db]
- # PostgreSQL image version and tag
- image = "postgres:12.0"
- # Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
- pull_image = false
-
- [cl_node.node]
- # custom ports that plugins may need to expose and map to the host machine
- custom_ports = [14000, 14001]
- # A list of paths to capability binaries
- capabilities = ["./capability_1", "./capability_2"]
- # Default capabilities directory inside container
- capabilities_container_dir = "/usr/local/bin"
- # Image to use, you can either provide "image" or "docker_file" + "docker_ctx" fields
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- # Path to your Chainlink Dockerfile
- docker_file = "../../core/chainlink.Dockerfile"
- # Path to docker context that should be used to build from
- docker_ctx = "../.."
- # Optional name for image we build, default is "ctftmp"
- docker_image_name = "ctftmp"
- # Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
- pull_image = false
- # Overrides Chainlink node TOML configuration
- # can be multiline, see example
- user_config_overrides = """
- [Log]
- level = 'info'
- """
- # Overrides Chainlink node secrets TOML configuration
- # you can only add fields, overriding existing fields is prohibited by Chainlink node
- user_secrets_overrides = """
- [AnotherSecret]
- mySecret = 'a'
- """
-
- [cl_node.node.env_vars]
- MY_FIRST_ENV_VAR = "env var value"
-
- # Outputs are the results of deploying a component that can be used by another component
- [cl_node.out]
- # If 'use_cache' equals 'true' we skip component setup when we run the test and return the outputs
- use_cache = true
- # Describes deployed or external Chainlink node
- [cl_node.out.node]
- # API user name
- api_auth_user = 'notreal@fakeemail.ch'
- # API password
- api_auth_password = 'fj293fbBnlQ!f9vNs'
- # Host Docker URLs the test uses
- # in case of using external component you can replace these URLs with another deployment
- p2p_url = "http://127.0.0.1:32812"
- url = "http://127.0.0.1:32847"
-
- # Describes deployed or external Chainlink node
- [cl_node.out.postgresql]
- # PostgreSQL connection string
- # in case of using external database can be overriden
- url = "postgresql://chainlink:thispasswordislongenough@127.0.0.1:32846/chainlink?sslmode=disable"
-```
-
-## Usage
-```golang
-package yourpackage_test
-
-import (
- "fmt"
- "github.com/smartcontractkit/chainlink-testing-framework/framework"
- "github.com/smartcontractkit/chainlink-testing-framework/framework/components/blockchain"
- "github.com/smartcontractkit/chainlink-testing-framework/framework/components/clnode"
- "github.com/stretchr/testify/require"
- "testing"
-)
-
-type Step2Cfg struct {
- BlockchainA *blockchain.Input `toml:"blockchain_a" validate:"required"`
- CLNode *clnode.Input `toml:"cl_node" validate:"required"`
-}
-
-func TestMe(t *testing.T) {
- in, err := framework.Load[Step2Cfg](t)
- require.NoError(t, err)
-
- bc, err := blockchain.NewBlockchainNetwork(in.BlockchainA)
- require.NoError(t, err)
-
- networkCfg, err := clnode.NewNetworkCfgOneNetworkAllNodes(bc)
- require.NoError(t, err)
- in.CLNode.Node.TestConfigOverrides = networkCfg
-
- output, err := clnode.NewNodeWithDB(in.CLNode)
- require.NoError(t, err)
-
- t.Run("test something", func(t *testing.T) {
- fmt.Printf("node url: %s\n", output.Node.ExternalURL)
- require.NotEmpty(t, output.Node.ExternalURL)
- })
-}
-```
\ No newline at end of file
diff --git a/book/src/framework/components/chainlink/nodeset.md b/book/src/framework/components/chainlink/nodeset.md
deleted file mode 100644
index 6f0fb77b9..000000000
--- a/book/src/framework/components/chainlink/nodeset.md
+++ /dev/null
@@ -1,163 +0,0 @@
-# NodeSet
-
-Here we provide *full* configuration parameters for `NodeSet`
-
-
-Here we provide full configuration reference, if you want to copy and run it, please remove all .out fields before!
-
-
-## Configuration
-
-This component requires some Blockchain to be deployed, add this to config
-```toml
-[blockchain_a]
- # Blockchain node type, can be "anvil" or "geth"
- type = "anvil"
- # Chain ID
- chain_id = "1337"
- # Anvil command line params, ex.: docker_cmd_params = ['--block-time=1', '...']
- docker_cmd_params = []
- # Docker image and tag
- image = "ghcr.io/foundry-rs/foundry:stable"
- # External port to expose
- port = "8545"
- # Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
- pull_image = false
-
- # Outputs are the results of deploying a component that can be used by another component
- [blockchain_a.out]
- chain_id = "1337"
- # If 'use_cache' equals 'true' we skip component setup when we run the test and return the outputs
- use_cache = true
-
- [[blockchain_a.out.nodes]]
- # URLs to access the node(s) inside docker network, used by other components
- internal_http_url = "http://anvil-14411:8545"
- internal_ws_url = "ws://anvil-14411:8545"
- # URLs to access the node(s) on your host machine or in CI
- http_url = "http://127.0.0.1:33955"
- ws_url = "ws://127.0.0.1:33955"
-```
-
-Then configure NodeSet
-```toml
-[[nodesets]]
- # unique NodeSet name
- name = "don"
- # amount of Chainlink nodes to spin up
- nodes = 5
- # Override mode: can be "all" or "each"
- # defines how we override configs, either we apply first node fields to all of them
- # or we define each node custom configuration (used in compatibility testing)
- override_mode = "all"
- # HTTP API port range start, each new node get port incremented (host machine)
- http_port_range_start = 10000
- # P2P API port range start, each new node get port incremented (host machine)
- p2p_port_range_start = 12000
-
- [nodesets.db]
- # PostgreSQL image version and tag
- image = "postgres:12.0"
- # Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
- pull_image = false
- # PostgreSQL volume name
- volume_name = ""
-
- [[nodesets.node_specs]]
-
- [nodesets.node_specs.node]
- # custom ports that plugins may need to expose and map to the host machine
- custom_ports = [14000, 14001]
- # A list of paths to capability binaries
- capabilities = ["./capability_1", "./capability_2"]
- # Default capabilities directory inside container
- capabilities_container_dir = "/usr/local/bin"
- # Image to use, you can either provide "image" or "docker_file" + "docker_ctx" fields
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- # Path to your Chainlink Dockerfile
- docker_file = "../../core/chainlink.Dockerfile"
- # Path to docker context that should be used to build from
- docker_ctx = "../.."
- # Optional name for image we build, default is "ctftmp"
- docker_image_name = "ctftmp"
- # Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
- pull_image = false
- # Overrides Chainlink node TOML configuration
- # can be multiline, see example
- user_config_overrides = """
- [Log]
- level = 'info'
- """
- # Overrides Chainlink node secrets TOML configuration
- # you can only add fields, overriding existing fields is prohibited by Chainlink node
- user_secrets_overrides = """
- [AnotherSecret]
- mySecret = 'a'
- """
-
- # Outputs are the results of deploying a component that can be used by another component
- [nodesets.out]
- # If 'use_cache' equals 'true' we skip component setup when we run the test and return the outputs
- use_cache = true
-
- # Describes deployed or external Chainlink nodes
- [[nodesets.out.cl_nodes]]
- use_cache = true
-
- # Describes deployed or external Chainlink node
- [nodesets.out.cl_nodes.node]
- # API user name
- api_auth_user = 'notreal@fakeemail.ch'
- # API password
- api_auth_password = 'fj293fbBnlQ!f9vNs'
- # Host Docker URLs the test uses
- # in case of using external component you can replace these URLs with another deployment
- p2p_url = "http://127.0.0.1:32996"
- url = "http://127.0.0.1:33096"
- # Describes PostgreSQL instance
- [nodesets.out.cl_nodes.postgresql]
- # PostgreSQL connection string
- # in case of using external database can be overriden
- url = "postgresql://chainlink:thispasswordislongenough@127.0.0.1:33094/chainlink?sslmode=disable"
-
- # Can have more than one node, fields are the same, see above ^^
- [[nodesets.out.cl_nodes]]
- [nodesets.out.cl_nodes.node]
- [nodesets.out.cl_nodes.postgresql]
- ...
-```
-
-## Usage
-```golang
-package capabilities_test
-
-import (
- "github.com/smartcontractkit/chainlink-testing-framework/framework"
- "github.com/smartcontractkit/chainlink-testing-framework/framework/components/blockchain"
- ns "github.com/smartcontractkit/chainlink-testing-framework/framework/components/simple_node_set"
- "github.com/stretchr/testify/require"
- "testing"
-)
-
-type Config struct {
- BlockchainA *blockchain.Input `toml:"blockchain_a" validate:"required"`
- NodeSets []*ns.Input `toml:"nodesets" validate:"required"`
-}
-
-func TestMe(t *testing.T) {
- in, err := framework.Load[Config](t)
- require.NoError(t, err)
-
- bc, err := blockchain.NewBlockchainNetwork(in.BlockchainA)
- require.NoError(t, err)
- out, err := ns.NewSharedDBNodeSet(in.NodeSet, bc)
- require.NoError(t, err)
-
- t.Run("test something", func(t *testing.T) {
- for _, n := range out.CLNodes {
- require.NotEmpty(t, n.Node.ExternalURL)
- require.NotEmpty(t, n.Node.HostP2PURL)
- }
- })
-}
-```
\ No newline at end of file
diff --git a/book/src/framework/components/mocking.md b/book/src/framework/components/mocking.md
index 8664edff3..90c16c89f 100644
--- a/book/src/framework/components/mocking.md
+++ b/book/src/framework/components/mocking.md
@@ -1,4 +1,4 @@
-# Faking Services
+# Fake Services
The framework aims to equip you with all the necessary tools to write end-to-end system-level tests, while still allowing the flexibility to fake third-party services that are not critical to your testing scope.
diff --git a/book/src/framework/components/overview.md b/book/src/framework/components/overview.md
index baf3f64a5..3db19f12c 100644
--- a/book/src/framework/components/overview.md
+++ b/book/src/framework/components/overview.md
@@ -1,8 +1,5 @@
# Components
-CTF contains a lot of useful components, some of them are off-chain services like `Chainlink Node`, `NodeSet`
-
-CTF contains three groups of components:
-- Off-chain services like `CL Node`, `NodeSet`, `JobDistributor`, etc.
-- On-chain wrappers for [chainlink-deployments](https://github.com/smartcontractkit/chainlink-deployments) repository
-- Test components, blockchain simulators, fakes, etc
+CTF contains of two groups of components:
+- Off-chain services like [NodeSet](../../framework/nodeset_environment.md)
+- Test components, blockchain simulators, fake server
diff --git a/book/src/framework/getting_started.md b/book/src/framework/getting_started.md
index a6f245d90..028d42aab 100644
--- a/book/src/framework/getting_started.md
+++ b/book/src/framework/getting_started.md
@@ -1,13 +1,13 @@
# 🚀 Getting started
## Prerequisites
-- `Docker` [OrbStack](https://orbstack.dev/) or [Docker Desktop](https://www.docker.com/products/docker-desktop/), we recommend OrbStack (faster, smaller memory footprint)
+- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- [Golang](https://go.dev/doc/install)
Tested with
```
+Docker Desktop version 4.36.0
Docker version 27.3.1
-OrbStack Version: 1.8.2 (1080200)
```
## Test setup
diff --git a/book/src/framework/nodeset_compatibility.md b/book/src/framework/nodeset_compatibility.md
deleted file mode 100644
index 6c4866842..000000000
--- a/book/src/framework/nodeset_compatibility.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# Chainlink Node Set Compatibility Testing Environment
-
-The difference between this and [basic node set configuration](nodeset_environment.md) is that here you can provide any custom configuration for CL nodes.
-
-Create a configuration file `smoke.toml`
-```toml
-[blockchain_a]
- type = "anvil"
- docker_cmd_params = ["-b", "1"]
-
-[[nodesets]]
- name = "don"
- nodes = 5
- override_mode = "each"
-
- [nodesets.db]
- image = "postgres:12.0"
-
- [[nodesets.node_specs]]
-
- [nodesets.node_specs.node]
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- user_config_overrides = " [Log]\n level = 'info'\n "
- user_secrets_overrides = ""
-
- [[nodesets.node_specs]]
-
- [nodesets.node_specs.node]
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- user_config_overrides = " [Log]\n level = 'info'\n "
- user_secrets_overrides = ""
-
- [[nodesets.node_specs]]
-
- [nodesets.node_specs.node]
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- user_config_overrides = " [Log]\n level = 'info'\n "
- user_secrets_overrides = ""
-
- [[nodesets.node_specs]]
-
- [nodesets.node_specs.node]
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- user_config_overrides = " [Log]\n level = 'info'\n "
- user_secrets_overrides = ""
-
- [[nodesets.node_specs]]
-
- [nodesets.node_specs.node]
- image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
- user_config_overrides = " [Log]\n level = 'info'\n "
- user_secrets_overrides = ""
-```
-
-You can reuse `smoke_test.go` from previous [setup](nodeset_environment.md)
-
-Run it
-```bash
-CTF_CONFIGS=smoke.toml go test -v -run TestNodeSet
-```
-
-Summary:
-- We deployed fully-fledged set of Chainlink nodes connected to some blockchain and faked external data provider
-- We understood how we can test different versions of Chainlink nodes for compatibility and override configs
diff --git a/book/src/framework/observability/observability_stack.md b/book/src/framework/observability/observability_stack.md
index c7ba0384e..85438b85b 100644
--- a/book/src/framework/observability/observability_stack.md
+++ b/book/src/framework/observability/observability_stack.md
@@ -14,13 +14,6 @@ ctf obs down
Read more about how to check [logs](logs.md) and [profiles](profiling.md)
-## Helpful links for your local setup
-
-- [Loki](http://localhost:3000/explore?panes=%7B%22qZw%22:%7B%22datasource%22:%22P8E80F9AEF21F6940%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22expr%22:%22%22,%22queryType%22:%22range%22,%22datasource%22:%7B%22type%22:%22loki%22,%22uid%22:%22P8E80F9AEF21F6940%22%7D%7D%5D,%22range%22:%7B%22from%22:%22now-6h%22,%22to%22:%22now%22%7D%7D%7D&schemaVersion=1&orgId=1)
-- [Prometheus](http://localhost:3000/explore?panes=%7B%22qZw%22:%7B%22datasource%22:%22PBFA97CFB590B2093%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22expr%22:%22%22,%22range%22:true,%22datasource%22:%7B%22type%22:%22prometheus%22,%22uid%22:%22PBFA97CFB590B2093%22%7D%7D%5D,%22range%22:%7B%22from%22:%22now-6h%22,%22to%22:%22now%22%7D%7D%7D&schemaVersion=1&orgId=1)
-- [PostgreSQL](http://localhost:3000/d/000000039/postgresql-database?orgId=1&refresh=10s&var-DS_PROMETHEUS=PBFA97CFB590B2093&var-interval=$__auto_interval_interval&var-namespace=&var-release=&var-instance=postgres_exporter_0:9187&var-datname=All&var-mode=All&from=now-5m&to=now)
-- [Pyroscope](http://localhost:4040)
-
## Developing
Change compose files under `framework/cmd/observability` and restart the stack (removing volumes too)
diff --git a/book/src/framework/overview.md b/book/src/framework/overview.md
index 823011f7e..c41108521 100644
--- a/book/src/framework/overview.md
+++ b/book/src/framework/overview.md
@@ -17,6 +17,3 @@ It enables tests to run in any environment and serves as a single source of trut
- **Caching**: Any component can use cached configs to skip setup for even faster test development.
- **Integrated observability stack**: get all the info you need to develop end-to-end tests: metrics, logs, traces, profiles.
-
-###### * If all the images are cached, you are using [OrbStack](https://orbstack.dev/) with M1/M2/M3 chips and have at least 8CPU dedicated to Docker
-
diff --git a/book/src/k8s-test-runner/k8s-test-runner.md b/book/src/k8s-test-runner/k8s-test-runner.md
index 758597092..f8dce0708 100644
--- a/book/src/k8s-test-runner/k8s-test-runner.md
+++ b/book/src/k8s-test-runner/k8s-test-runner.md
@@ -1,5 +1,9 @@
## Preparing to Run Tests on Staging
+
+This is legacy documentation and code, it'd be sunset on next release
+
+
Ensure you complete the following steps before executing tests on the staging environment:
1. **Connect to the VPN**
diff --git a/book/src/legacy.md b/book/src/legacy.md
new file mode 100644
index 000000000..c1dcda801
--- /dev/null
+++ b/book/src/legacy.md
@@ -0,0 +1,3 @@
+# Legacy
+
+This chapter contains legacy documentation or code examples that will be sunset in the next major release
diff --git a/book/src/lib.md b/book/src/lib.md
index 392ac7cd5..522f2ede0 100644
--- a/book/src/lib.md
+++ b/book/src/lib.md
@@ -11,8 +11,13 @@
+
+
**DEPRECATED: This is v1 version and it is not actively maintained**
+
+
+
The purpose of this framework is to:
- Interact with different blockchains
- Configure CL jobs
diff --git a/book/src/lib/crib.md b/book/src/lib/crib.md
deleted file mode 100644
index 63537d63d..000000000
--- a/book/src/lib/crib.md
+++ /dev/null
@@ -1,7 +0,0 @@
-### CRIB Connector
-
-
-
-`GAPv1` won't be supported in the future, you can still use [this example](https://github.com/smartcontractkit/chainlink/tree/develop/integration-tests/crib), [CI run](https://github.com/smartcontractkit/chainlink/actions/workflows/crib-integration-test.yml) but expect this to be changed.
-
-
diff --git a/book/src/libraries.md b/book/src/libraries.md
index 671c2bc8c..03da0d719 100644
--- a/book/src/libraries.md
+++ b/book/src/libraries.md
@@ -1,4 +1,4 @@
-# Libraries
+# Overview
CTF monorepository contains a set of libraries: