From d769d187482fa5dbecd65ef2a581970eadd05617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=CE=9ETA?= <19519604+aWN4Y25pa2EK@users.noreply.github.com> Date: Tue, 13 Aug 2024 10:47:47 +0100 Subject: [PATCH] Add release `v0.15.0` (#23) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add v0.15.0 release * add v0.15.0 release * add v0.15.0 release * add new configurations * add new docs * fix typos on wss protocol * feat: improvements Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> * fix nil pointer on node ws settings * fix: add env var for tls path Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> * feat(node): files fixes -testing Signed-off-by: Jose Ramon Mañes * feat(node): files fixes -testing Signed-off-by: Jose Ramon Mañes * fix: some bugs Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> * feat: improve way to mount keys Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> * fix: dont hardcode path Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --------- Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> Signed-off-by: Jose Ramon Mañes Co-authored-by: Smuu <18609909+Smuu@users.noreply.github.com> Co-authored-by: Jose Ramon Mañes --- charts/celestia-app/README.md | 2 +- charts/celestia-node/Chart.lock | 6 +- charts/celestia-node/Chart.yaml | 4 +- charts/celestia-node/README.md | 336 +++++++++++++----- charts/celestia-node/templates/_helpers.tpl | 8 +- .../templates/configmap-address.yaml | 12 - .../templates/configmap-bridge.yaml | 5 +- .../templates/configmap-full.yaml | 5 +- .../templates/configmap-light.yaml | 7 +- charts/celestia-node/templates/service.yaml | 19 + .../celestia-node/templates/statefulset.yaml | 65 ++-- charts/celestia-node/values.yaml | 60 +++- examples/README.md | 5 - examples/celestia-app/mocha.yaml | 58 --- examples/celestia-node/arabica-bridge.yaml | 80 ----- examples/celestia-node/arabica-full.yaml | 76 ---- examples/celestia-node/arabica-light.yaml | 73 ---- examples/celestia-node/mocha.yaml | 66 ---- .../config/node/bridge/v0.15.0/config.toml | 80 +++++ scripts/config/node/full/v0.15.0/config.toml | 87 +++++ scripts/config/node/light/v0.15.0/config.toml | 89 +++++ scripts/create_new_key_upload_1pass.sh | 71 ++++ 22 files changed, 698 insertions(+), 516 deletions(-) delete mode 100644 charts/celestia-node/templates/configmap-address.yaml delete mode 100644 examples/README.md delete mode 100644 examples/celestia-app/mocha.yaml delete mode 100644 examples/celestia-node/arabica-bridge.yaml delete mode 100644 examples/celestia-node/arabica-full.yaml delete mode 100644 examples/celestia-node/arabica-light.yaml delete mode 100644 examples/celestia-node/mocha.yaml create mode 100644 scripts/config/node/bridge/v0.15.0/config.toml create mode 100644 scripts/config/node/full/v0.15.0/config.toml create mode 100644 scripts/config/node/light/v0.15.0/config.toml create mode 100755 scripts/create_new_key_upload_1pass.sh diff --git a/charts/celestia-app/README.md b/charts/celestia-app/README.md index 700f417..f1b5c09 100644 --- a/charts/celestia-app/README.md +++ b/charts/celestia-app/README.md @@ -1,6 +1,6 @@ # celestia-app -![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![AppVersion: v1.11.0](https://img.shields.io/badge/AppVersion-v1.11.0-informational?style=flat-square) +![Version: 0.1.2](https://img.shields.io/badge/Version-0.1.2-informational?style=flat-square) ![AppVersion: v1.11.0](https://img.shields.io/badge/AppVersion-v1.11.0-informational?style=flat-square) Celestia App diff --git a/charts/celestia-node/Chart.lock b/charts/celestia-node/Chart.lock index ce351d5..4b726d3 100644 --- a/charts/celestia-node/Chart.lock +++ b/charts/celestia-node/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: common repository: oci://registry-1.docker.io/bitnamicharts - version: 2.20.2 -digest: sha256:35d895f873f86ebff35e439bcf9da34c42a78c4db2e0e179bfb4014a2a0e2e10 -generated: "2024-06-13T11:08:30.71548+02:00" + version: 2.21.0 +digest: sha256:aad727fb6bd333a7ebb22f06f1edcb53349acdbffaa1baffa0266d9a33162dbd +generated: "2024-08-08T12:00:46.778208+02:00" diff --git a/charts/celestia-node/Chart.yaml b/charts/celestia-node/Chart.yaml index 8c5e5b3..876a286 100644 --- a/charts/celestia-node/Chart.yaml +++ b/charts/celestia-node/Chart.yaml @@ -2,7 +2,7 @@ annotations: category: celestia licenses: Apache-2.0 apiVersion: v2 -appVersion: v0.14.1 +appVersion: v0.15.0 dependencies: - name: common repository: oci://registry-1.docker.io/bitnamicharts @@ -21,4 +21,4 @@ maintainers: name: celestia-node sources: - https://github.com/celestiaorg/celestia-node -version: 0.1.4 +version: 0.2.0 diff --git a/charts/celestia-node/README.md b/charts/celestia-node/README.md index f7cca8d..d95ced0 100644 --- a/charts/celestia-node/README.md +++ b/charts/celestia-node/README.md @@ -1,6 +1,6 @@ # celestia-node -![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![AppVersion: v0.14.0](https://img.shields.io/badge/AppVersion-v0.14.0-informational?style=flat-square) +![Version: 0.2.0](https://img.shields.io/badge/Version-0.2.0-informational?style=flat-square) ![AppVersion: v0.15.0](https://img.shields.io/badge/AppVersion-v0.15.0-informational?style=flat-square) Celestia Node @@ -56,88 +56,241 @@ Celestia Node | networkPolicy | with the correct destination port | `{"allowExternal":true,"allowExternalEgress":true,"enabled":true,"extraEgress":[],"extraIngress":[],"ingressNSMatchLabels":{},"ingressNSPodMatchLabels":{}}` | . | | networkPolicy.enabled | bool | `true` | enable network policy, true by default | | node.affinity | object | `{}` | | -| node.args[0] | string | `"bridge"` | | -| node.args[1] | string | `"start"` | | -| node.args[2] | string | `"--node.store=$(CELESTIA_HOME)"` | | -| node.args[3] | string | `"--metrics"` | | -| node.args[4] | string | `"--metrics.tls=false"` | | -| node.args[5] | string | `"--p2p.metrics"` | | +| node.args | string | `nil` | | | node.automountServiceAccountToken | bool | `false` | mount service account token in node pods | | node.command | list | `["celestia"]` | command for the celestia-node | | node.command[0] | string | `"celestia"` | celestia | -| node.config.configtoml.Core.GRPCPort | string | `"9090"` | | -| node.config.configtoml.Core.IP | string | `""` | | -| node.config.configtoml.Core.RPCPort | string | `"26657"` | | -| node.config.configtoml.Gateway.Address | string | `"localhost"` | | -| node.config.configtoml.Gateway.Enabled | bool | `false` | | -| node.config.configtoml.Gateway.Port | string | `"26659"` | | -| node.config.configtoml.Header.Client.MaxHeadersPerRangeRequest | int | `64` | | -| node.config.configtoml.Header.Client.RangeRequestTimeout | string | `"8s"` | | -| node.config.configtoml.Header.Server.RangeRequestTimeout | string | `"10s"` | | -| node.config.configtoml.Header.Server.ReadDeadline | string | `"1m0s"` | | -| node.config.configtoml.Header.Server.WriteDeadline | string | `"8s"` | | -| node.config.configtoml.Header.Store.IndexCacheSize | int | `16384` | | -| node.config.configtoml.Header.Store.StoreCacheSize | int | `4096` | | -| node.config.configtoml.Header.Store.WriteBatchSize | int | `2048` | | -| node.config.configtoml.Header.Syncer.TrustingPeriod | string | `"336h0m0s"` | | -| node.config.configtoml.Header.TrustedHash | string | `""` | | -| node.config.configtoml.Header.TrustedPeers | list | `[]` | | -| node.config.configtoml.Node.ShutdownTimeout | string | `"2m0s"` | | -| node.config.configtoml.Node.StartupTimeout | string | `"2m0s"` | | -| node.config.configtoml.P2P.AnnounceAddresses | list | `[]` | | -| node.config.configtoml.P2P.ConnManager.GracePeriod | string | `"1m0s"` | | -| node.config.configtoml.P2P.ConnManager.High | int | `1000` | | -| node.config.configtoml.P2P.ConnManager.Low | int | `800` | | -| node.config.configtoml.P2P.ListenAddresses[0] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | -| node.config.configtoml.P2P.ListenAddresses[1] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | -| node.config.configtoml.P2P.ListenAddresses[2] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | -| node.config.configtoml.P2P.ListenAddresses[3] | string | `"/ip6/::/udp/2121/quic-v1"` | | -| node.config.configtoml.P2P.ListenAddresses[4] | string | `"/ip4/0.0.0.0/tcp/2121"` | | -| node.config.configtoml.P2P.ListenAddresses[5] | string | `"/ip6/::/tcp/2121"` | | -| node.config.configtoml.P2P.MutualPeers | list | `[]` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[0] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1/webtransport"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[1] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[2] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[3] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[4] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[5] | string | `"/ip6/::/udp/2121/quic-v1"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[6] | string | `"/ip4/0.0.0.0/tcp/2121"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[7] | string | `"/ip4/127.0.0.1/tcp/2121"` | | -| node.config.configtoml.P2P.NoAnnounceAddresses[8] | string | `"/ip6/::/tcp/2121"` | | -| node.config.configtoml.P2P.PeerExchange | bool | `true` | | -| node.config.configtoml.P2P.RoutingTableRefreshPeriod | string | `"1m0s"` | | -| node.config.configtoml.Pruner.EnableService | bool | `false` | | -| node.config.configtoml.RPC.Address | string | `"localhost"` | | -| node.config.configtoml.RPC.Port | string | `"26658"` | | -| node.config.configtoml.RPC.SkipAuth | bool | `false` | | -| node.config.configtoml.Share.Discovery.AdvertiseInterval | string | `"1h0m0s"` | | -| node.config.configtoml.Share.Discovery.PeersLimit | int | `5` | | -| node.config.configtoml.Share.EDSStoreParams.BlockstoreCacheSize | int | `128` | | -| node.config.configtoml.Share.EDSStoreParams.GCInterval | string | `"0s"` | | -| node.config.configtoml.Share.EDSStoreParams.RecentBlocksCacheSize | int | `10` | | -| node.config.configtoml.Share.PeerManagerParams.EnableBlackListing | bool | `false` | | -| node.config.configtoml.Share.PeerManagerParams.GcInterval | string | `"30s"` | | -| node.config.configtoml.Share.PeerManagerParams.PeerCooldown | string | `"3s"` | | -| node.config.configtoml.Share.PeerManagerParams.PoolValidationTimeout | string | `"2m0s"` | | -| node.config.configtoml.Share.ShrExEDSParams.BufferSize | int | `32768` | | -| node.config.configtoml.Share.ShrExEDSParams.ConcurrencyLimit | int | `10` | | -| node.config.configtoml.Share.ShrExEDSParams.HandleRequestTimeout | string | `"1m0s"` | | -| node.config.configtoml.Share.ShrExEDSParams.ServerReadTimeout | string | `"5s"` | | -| node.config.configtoml.Share.ShrExEDSParams.ServerWriteTimeout | string | `"1m0s"` | | -| node.config.configtoml.Share.ShrExNDParams.ConcurrencyLimit | int | `10` | | -| node.config.configtoml.Share.ShrExNDParams.HandleRequestTimeout | string | `"1m0s"` | | -| node.config.configtoml.Share.ShrExNDParams.ServerReadTimeout | string | `"5s"` | | -| node.config.configtoml.Share.ShrExNDParams.ServerWriteTimeout | string | `"1m0s"` | | -| node.config.configtoml.Share.UseShareExchange | bool | `true` | | -| node.config.configtoml.State.GranterAddress | list | `[]` | | -| node.config.configtoml.State.KeyringAccName | string | `""` | | -| node.config.configtoml.State.KeyringBackend | string | `"test"` | | -| node.containerPorts | object | `{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658}` | Container ports for the node | +| node.config.bridge.configtoml.Core.GRPCPort | string | `"9090"` | | +| node.config.bridge.configtoml.Core.IP | string | `""` | | +| node.config.bridge.configtoml.Core.RPCPort | string | `"26657"` | | +| node.config.bridge.configtoml.Gateway.Address | string | `"localhost"` | | +| node.config.bridge.configtoml.Gateway.Enabled | bool | `false` | | +| node.config.bridge.configtoml.Gateway.Port | string | `"26659"` | | +| node.config.bridge.configtoml.Header.Client.MaxHeadersPerRangeRequest | int | `64` | | +| node.config.bridge.configtoml.Header.Client.RangeRequestTimeout | string | `"8s"` | | +| node.config.bridge.configtoml.Header.Server.RangeRequestTimeout | string | `"10s"` | | +| node.config.bridge.configtoml.Header.Server.ReadDeadline | string | `"1m0s"` | | +| node.config.bridge.configtoml.Header.Server.WriteDeadline | string | `"8s"` | | +| node.config.bridge.configtoml.Header.Store.IndexCacheSize | int | `16384` | | +| node.config.bridge.configtoml.Header.Store.StoreCacheSize | int | `4096` | | +| node.config.bridge.configtoml.Header.Store.WriteBatchSize | int | `2048` | | +| node.config.bridge.configtoml.Header.Syncer.TrustingPeriod | string | `"336h0m0s"` | | +| node.config.bridge.configtoml.Header.TrustedHash | string | `""` | | +| node.config.bridge.configtoml.Header.TrustedPeers | list | `[]` | | +| node.config.bridge.configtoml.Node.ShutdownTimeout | string | `"2m0s"` | | +| node.config.bridge.configtoml.Node.StartupTimeout | string | `"2m0s"` | | +| node.config.bridge.configtoml.P2P.AnnounceAddresses | list | `[]` | | +| node.config.bridge.configtoml.P2P.ConnManager.GracePeriod | string | `"1m0s"` | | +| node.config.bridge.configtoml.P2P.ConnManager.High | int | `1000` | | +| node.config.bridge.configtoml.P2P.ConnManager.Low | int | `800` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[0] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[1] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[2] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[3] | string | `"/ip6/::/udp/2121/quic-v1"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[4] | string | `"/ip4/0.0.0.0/udp/2121/webrtc-direct"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[5] | string | `"/ip6/::/udp/2121/webrtc-direct"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[6] | string | `"/ip4/0.0.0.0/tcp/2121"` | | +| node.config.bridge.configtoml.P2P.ListenAddresses[7] | string | `"/ip6/::/tcp/2121"` | | +| node.config.bridge.configtoml.P2P.MutualPeers | list | `[]` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[0] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1/webtransport"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[10] | string | `"/ip4/127.0.0.1/tcp/2121"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[11] | string | `"/ip6/::/tcp/2121"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[1] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[2] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[3] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[4] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[5] | string | `"/ip6/::/udp/2121/quic-v1"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[6] | string | `"/ip4/0.0.0.0/udp/2121/webrtc-direct"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[7] | string | `"/ip4/127.0.0.1/udp/2121/webrtc-direct"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[8] | string | `"/ip6/::/udp/2121/webrtc-direct"` | | +| node.config.bridge.configtoml.P2P.NoAnnounceAddresses[9] | string | `"/ip4/0.0.0.0/tcp/2121"` | | +| node.config.bridge.configtoml.P2P.PeerExchange | bool | `true` | | +| node.config.bridge.configtoml.P2P.RoutingTableRefreshPeriod | string | `"1m0s"` | | +| node.config.bridge.configtoml.Pruner.EnableService | bool | `false` | | +| node.config.bridge.configtoml.RPC.Address | string | `"localhost"` | | +| node.config.bridge.configtoml.RPC.Port | string | `"26658"` | | +| node.config.bridge.configtoml.RPC.SkipAuth | bool | `false` | | +| node.config.bridge.configtoml.Share.Discovery.AdvertiseInterval | string | `"1h0m0s"` | | +| node.config.bridge.configtoml.Share.Discovery.PeersLimit | int | `5` | | +| node.config.bridge.configtoml.Share.EDSStoreParams.BlockstoreCacheSize | int | `128` | | +| node.config.bridge.configtoml.Share.EDSStoreParams.GCInterval | string | `"0s"` | | +| node.config.bridge.configtoml.Share.EDSStoreParams.RecentBlocksCacheSize | int | `10` | | +| node.config.bridge.configtoml.Share.PeerManagerParams.EnableBlackListing | bool | `false` | | +| node.config.bridge.configtoml.Share.PeerManagerParams.GcInterval | string | `"30s"` | | +| node.config.bridge.configtoml.Share.PeerManagerParams.PeerCooldown | string | `"3s"` | | +| node.config.bridge.configtoml.Share.PeerManagerParams.PoolValidationTimeout | string | `"2m0s"` | | +| node.config.bridge.configtoml.Share.ShrExEDSParams.BufferSize | int | `32768` | | +| node.config.bridge.configtoml.Share.ShrExEDSParams.ConcurrencyLimit | int | `10` | | +| node.config.bridge.configtoml.Share.ShrExEDSParams.HandleRequestTimeout | string | `"1m0s"` | | +| node.config.bridge.configtoml.Share.ShrExEDSParams.ServerReadTimeout | string | `"5s"` | | +| node.config.bridge.configtoml.Share.ShrExEDSParams.ServerWriteTimeout | string | `"1m0s"` | | +| node.config.bridge.configtoml.Share.ShrExNDParams.ConcurrencyLimit | int | `10` | | +| node.config.bridge.configtoml.Share.ShrExNDParams.HandleRequestTimeout | string | `"1m0s"` | | +| node.config.bridge.configtoml.Share.ShrExNDParams.ServerReadTimeout | string | `"5s"` | | +| node.config.bridge.configtoml.Share.ShrExNDParams.ServerWriteTimeout | string | `"1m0s"` | | +| node.config.bridge.configtoml.Share.UseShareExchange | bool | `true` | | +| node.config.bridge.configtoml.State.DefaultBackendName | string | `"test"` | | +| node.config.bridge.configtoml.State.DefaultKeyName | string | `"my_celes_key"` | | +| node.config.full.configtoml.Core.GRPCPort | string | `"9090"` | | +| node.config.full.configtoml.Core.IP | string | `""` | | +| node.config.full.configtoml.Core.RPCPort | string | `"26657"` | | +| node.config.full.configtoml.DASer.BackgroundStoreInterval | string | `"10m0s"` | | +| node.config.full.configtoml.DASer.ConcurrencyLimit | int | `6` | | +| node.config.full.configtoml.DASer.SampleFrom | int | `1` | | +| node.config.full.configtoml.DASer.SampleTimeout | string | `"2m0s"` | | +| node.config.full.configtoml.DASer.SamplingRange | int | `100` | | +| node.config.full.configtoml.Gateway.Address | string | `"localhost"` | | +| node.config.full.configtoml.Gateway.Enabled | bool | `false` | | +| node.config.full.configtoml.Gateway.Port | string | `"26659"` | | +| node.config.full.configtoml.Header.Client.MaxHeadersPerRangeRequest | int | `64` | | +| node.config.full.configtoml.Header.Client.RangeRequestTimeout | string | `"8s"` | | +| node.config.full.configtoml.Header.Server.RangeRequestTimeout | string | `"10s"` | | +| node.config.full.configtoml.Header.Server.ReadDeadline | string | `"1m0s"` | | +| node.config.full.configtoml.Header.Server.WriteDeadline | string | `"8s"` | | +| node.config.full.configtoml.Header.Store.IndexCacheSize | int | `16384` | | +| node.config.full.configtoml.Header.Store.StoreCacheSize | int | `4096` | | +| node.config.full.configtoml.Header.Store.WriteBatchSize | int | `2048` | | +| node.config.full.configtoml.Header.Syncer.TrustingPeriod | string | `"336h0m0s"` | | +| node.config.full.configtoml.Header.TrustedHash | string | `""` | | +| node.config.full.configtoml.Header.TrustedPeers | list | `[]` | | +| node.config.full.configtoml.Node.ShutdownTimeout | string | `"2m0s"` | | +| node.config.full.configtoml.Node.StartupTimeout | string | `"2m0s"` | | +| node.config.full.configtoml.P2P.AnnounceAddresses | list | `[]` | | +| node.config.full.configtoml.P2P.ConnManager.GracePeriod | string | `"1m0s"` | | +| node.config.full.configtoml.P2P.ConnManager.High | int | `1000` | | +| node.config.full.configtoml.P2P.ConnManager.Low | int | `800` | | +| node.config.full.configtoml.P2P.ListenAddresses[0] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | +| node.config.full.configtoml.P2P.ListenAddresses[1] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | +| node.config.full.configtoml.P2P.ListenAddresses[2] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | +| node.config.full.configtoml.P2P.ListenAddresses[3] | string | `"/ip6/::/udp/2121/quic-v1"` | | +| node.config.full.configtoml.P2P.ListenAddresses[4] | string | `"/ip4/0.0.0.0/udp/2121/webrtc-direct"` | | +| node.config.full.configtoml.P2P.ListenAddresses[5] | string | `"/ip6/::/udp/2121/webrtc-direct"` | | +| node.config.full.configtoml.P2P.ListenAddresses[6] | string | `"/ip4/0.0.0.0/tcp/2121"` | | +| node.config.full.configtoml.P2P.ListenAddresses[7] | string | `"/ip6/::/tcp/2121"` | | +| node.config.full.configtoml.P2P.MutualPeers | list | `[]` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[0] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1/webtransport"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[10] | string | `"/ip4/127.0.0.1/tcp/2121"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[11] | string | `"/ip6/::/tcp/2121"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[1] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[2] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[3] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[4] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[5] | string | `"/ip6/::/udp/2121/quic-v1"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[6] | string | `"/ip4/0.0.0.0/udp/2121/webrtc-direct"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[7] | string | `"/ip4/127.0.0.1/udp/2121/webrtc-direct"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[8] | string | `"/ip6/::/udp/2121/webrtc-direct"` | | +| node.config.full.configtoml.P2P.NoAnnounceAddresses[9] | string | `"/ip4/0.0.0.0/tcp/2121"` | | +| node.config.full.configtoml.P2P.PeerExchange | bool | `true` | | +| node.config.full.configtoml.P2P.RoutingTableRefreshPeriod | string | `"1m0s"` | | +| node.config.full.configtoml.Pruner.EnableService | bool | `false` | | +| node.config.full.configtoml.RPC.Address | string | `"localhost"` | | +| node.config.full.configtoml.RPC.Port | string | `"26658"` | | +| node.config.full.configtoml.RPC.SkipAuth | bool | `false` | | +| node.config.full.configtoml.Share.Discovery.AdvertiseInterval | string | `"1h0m0s"` | | +| node.config.full.configtoml.Share.Discovery.PeersLimit | int | `5` | | +| node.config.full.configtoml.Share.EDSStoreParams.BlockstoreCacheSize | int | `128` | | +| node.config.full.configtoml.Share.EDSStoreParams.GCInterval | string | `"0s"` | | +| node.config.full.configtoml.Share.EDSStoreParams.RecentBlocksCacheSize | int | `10` | | +| node.config.full.configtoml.Share.PeerManagerParams.EnableBlackListing | bool | `false` | | +| node.config.full.configtoml.Share.PeerManagerParams.GcInterval | string | `"30s"` | | +| node.config.full.configtoml.Share.PeerManagerParams.PeerCooldown | string | `"3s"` | | +| node.config.full.configtoml.Share.PeerManagerParams.PoolValidationTimeout | string | `"2m0s"` | | +| node.config.full.configtoml.Share.ShrExEDSParams.BufferSize | int | `32768` | | +| node.config.full.configtoml.Share.ShrExEDSParams.ConcurrencyLimit | int | `10` | | +| node.config.full.configtoml.Share.ShrExEDSParams.HandleRequestTimeout | string | `"1m0s"` | | +| node.config.full.configtoml.Share.ShrExEDSParams.ServerReadTimeout | string | `"5s"` | | +| node.config.full.configtoml.Share.ShrExEDSParams.ServerWriteTimeout | string | `"1m0s"` | | +| node.config.full.configtoml.Share.ShrExNDParams.ConcurrencyLimit | int | `10` | | +| node.config.full.configtoml.Share.ShrExNDParams.HandleRequestTimeout | string | `"1m0s"` | | +| node.config.full.configtoml.Share.ShrExNDParams.ServerReadTimeout | string | `"5s"` | | +| node.config.full.configtoml.Share.ShrExNDParams.ServerWriteTimeout | string | `"1m0s"` | | +| node.config.full.configtoml.Share.UseShareExchange | bool | `true` | | +| node.config.full.configtoml.State.DefaultBackendName | string | `"test"` | | +| node.config.full.configtoml.State.DefaultKeyName | string | `"my_celes_key"` | | +| node.config.light.configtoml.Core.GRPCPort | string | `"9090"` | | +| node.config.light.configtoml.Core.IP | string | `""` | | +| node.config.light.configtoml.Core.RPCPort | string | `"26657"` | | +| node.config.light.configtoml.DASer.BackgroundStoreInterval | string | `"10m0s"` | | +| node.config.light.configtoml.DASer.ConcurrencyLimit | int | `16` | | +| node.config.light.configtoml.DASer.SampleFrom | int | `1` | | +| node.config.light.configtoml.DASer.SampleTimeout | string | `"2m40s"` | | +| node.config.light.configtoml.DASer.SamplingRange | int | `100` | | +| node.config.light.configtoml.Gateway.Address | string | `"localhost"` | | +| node.config.light.configtoml.Gateway.Enabled | bool | `false` | | +| node.config.light.configtoml.Gateway.Port | string | `"26659"` | | +| node.config.light.configtoml.Header.Client.MaxHeadersPerRangeRequest | int | `64` | | +| node.config.light.configtoml.Header.Client.RangeRequestTimeout | string | `"8s"` | | +| node.config.light.configtoml.Header.Server.RangeRequestTimeout | string | `"10s"` | | +| node.config.light.configtoml.Header.Server.ReadDeadline | string | `"1m0s"` | | +| node.config.light.configtoml.Header.Server.WriteDeadline | string | `"8s"` | | +| node.config.light.configtoml.Header.Store.IndexCacheSize | int | `2048` | | +| node.config.light.configtoml.Header.Store.StoreCacheSize | int | `512` | | +| node.config.light.configtoml.Header.Store.WriteBatchSize | int | `512` | | +| node.config.light.configtoml.Header.Syncer.TrustingPeriod | string | `"336h0m0s"` | | +| node.config.light.configtoml.Header.TrustedHash | string | `""` | | +| node.config.light.configtoml.Header.TrustedPeers | list | `[]` | | +| node.config.light.configtoml.Node.ShutdownTimeout | string | `"20s"` | | +| node.config.light.configtoml.Node.StartupTimeout | string | `"20s"` | | +| node.config.light.configtoml.P2P.AnnounceAddresses | list | `[]` | | +| node.config.light.configtoml.P2P.ConnManager.GracePeriod | string | `"1m0s"` | | +| node.config.light.configtoml.P2P.ConnManager.High | int | `100` | | +| node.config.light.configtoml.P2P.ConnManager.Low | int | `50` | | +| node.config.light.configtoml.P2P.ListenAddresses[0] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | +| node.config.light.configtoml.P2P.ListenAddresses[1] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | +| node.config.light.configtoml.P2P.ListenAddresses[2] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | +| node.config.light.configtoml.P2P.ListenAddresses[3] | string | `"/ip6/::/udp/2121/quic-v1"` | | +| node.config.light.configtoml.P2P.ListenAddresses[4] | string | `"/ip4/0.0.0.0/udp/2121/webrtc-direct"` | | +| node.config.light.configtoml.P2P.ListenAddresses[5] | string | `"/ip6/::/udp/2121/webrtc-direct"` | | +| node.config.light.configtoml.P2P.ListenAddresses[6] | string | `"/ip4/0.0.0.0/tcp/2121"` | | +| node.config.light.configtoml.P2P.ListenAddresses[7] | string | `"/ip6/::/tcp/2121"` | | +| node.config.light.configtoml.P2P.MutualPeers | list | `[]` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[0] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1/webtransport"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[10] | string | `"/ip4/127.0.0.1/tcp/2121"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[11] | string | `"/ip6/::/tcp/2121"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[1] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1/webtransport"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[2] | string | `"/ip6/::/udp/2121/quic-v1/webtransport"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[3] | string | `"/ip4/0.0.0.0/udp/2121/quic-v1"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[4] | string | `"/ip4/127.0.0.1/udp/2121/quic-v1"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[5] | string | `"/ip6/::/udp/2121/quic-v1"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[6] | string | `"/ip4/0.0.0.0/udp/2121/webrtc-direct"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[7] | string | `"/ip4/127.0.0.1/udp/2121/webrtc-direct"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[8] | string | `"/ip6/::/udp/2121/webrtc-direct"` | | +| node.config.light.configtoml.P2P.NoAnnounceAddresses[9] | string | `"/ip4/0.0.0.0/tcp/2121"` | | +| node.config.light.configtoml.P2P.PeerExchange | bool | `false` | | +| node.config.light.configtoml.P2P.RoutingTableRefreshPeriod | string | `"1m0s"` | | +| node.config.light.configtoml.Pruner.EnableService | bool | `false` | | +| node.config.light.configtoml.RPC.Address | string | `"localhost"` | | +| node.config.light.configtoml.RPC.Port | string | `"26658"` | | +| node.config.light.configtoml.RPC.SkipAuth | bool | `false` | | +| node.config.light.configtoml.Share.Discovery.AdvertiseInterval | string | `"1h0m0s"` | | +| node.config.light.configtoml.Share.Discovery.PeersLimit | int | `5` | | +| node.config.light.configtoml.Share.EDSStoreParams.BlockstoreCacheSize | int | `128` | | +| node.config.light.configtoml.Share.EDSStoreParams.GCInterval | string | `"0s"` | | +| node.config.light.configtoml.Share.EDSStoreParams.RecentBlocksCacheSize | int | `10` | | +| node.config.light.configtoml.Share.LightAvailability.SampleAmount | int | `16` | | +| node.config.light.configtoml.Share.PeerManagerParams.EnableBlackListing | bool | `false` | | +| node.config.light.configtoml.Share.PeerManagerParams.GcInterval | string | `"30s"` | | +| node.config.light.configtoml.Share.PeerManagerParams.PeerCooldown | string | `"3s"` | | +| node.config.light.configtoml.Share.PeerManagerParams.PoolValidationTimeout | string | `"2m0s"` | | +| node.config.light.configtoml.Share.ShrExEDSParams.BufferSize | int | `32768` | | +| node.config.light.configtoml.Share.ShrExEDSParams.ConcurrencyLimit | int | `10` | | +| node.config.light.configtoml.Share.ShrExEDSParams.HandleRequestTimeout | string | `"1m0s"` | | +| node.config.light.configtoml.Share.ShrExEDSParams.ServerReadTimeout | string | `"5s"` | | +| node.config.light.configtoml.Share.ShrExEDSParams.ServerWriteTimeout | string | `"1m0s"` | | +| node.config.light.configtoml.Share.ShrExNDParams.ConcurrencyLimit | int | `10` | | +| node.config.light.configtoml.Share.ShrExNDParams.HandleRequestTimeout | string | `"1m0s"` | | +| node.config.light.configtoml.Share.ShrExNDParams.ServerReadTimeout | string | `"5s"` | | +| node.config.light.configtoml.Share.ShrExNDParams.ServerWriteTimeout | string | `"1m0s"` | | +| node.config.light.configtoml.Share.UseShareExchange | bool | `true` | | +| node.config.light.configtoml.State.DefaultBackendName | string | `"test"` | | +| node.config.light.configtoml.State.DefaultKeyName | string | `"my_celes_key"` | | +| node.containerPorts | object | `{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658,"ws":2122}` | Container ports for the node | | node.containerPorts.p2p | int | `2121` | P2P container port, 2121 by default | | node.containerPorts.profiling | int | `6060` | Profiling container port, 6060 by default | | node.containerPorts.prometheus | int | `8890` | Prometheus container port, 8890 by default | | node.containerPorts.rest | int | `26659` | REST container port, 26659 by default | | node.containerPorts.rpc | int | `26658` | RPC container port, 26658 by default | +| node.containerPorts.ws | int | `2122` | WebSocket container port, 2122 by default | | node.containerSecurityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"enabled":true,"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":10001,"runAsNonRoot":true,"runAsUser":10001,"seLinuxOptions":{},"seccompProfile":{"type":"RuntimeDefault"}}` | container security context for the node | | node.containerSecurityContext.allowPrivilegeEscalation | bool | `false` | allowPrivilegeEscalation in node container, false by default | | node.containerSecurityContext.capabilities | object | `{"drop":["ALL"]}` | capabilities to be dropped in node container, ["ALL"] by default | @@ -155,17 +308,20 @@ Celestia Node | node.daemonsetAnnotations | object | `{}` | | | node.deploymentAnnotations | object | `{}` | | | node.existingConfigmap | string | `nil` | | +| node.extraArgs[0] | string | `"--metrics"` | | +| node.extraArgs[1] | string | `"--metrics.tls=false"` | | +| node.extraArgs[2] | string | `"--p2p.metrics"` | | | node.extraEnvVars | list | `[]` | | | node.extraEnvVarsCM | string | `""` | | | node.extraEnvVarsSecret | string | `""` | | | node.extraVolumeMounts | list | `[]` | | | node.extraVolumes | list | `[]` | | | node.hostAliases | list | `[]` | | -| node.image | object | `{"digest":"","pullPolicy":"IfNotPresent","pullSecrets":[],"registry":"ghcr.io","repository":"celestiaorg/celestia-node","tag":"v0.14.0"}` | image parameters for the image | +| node.image | object | `{"digest":"","pullPolicy":"IfNotPresent","pullSecrets":[],"registry":"ghcr.io","repository":"celestiaorg/celestia-node","tag":"v0.15.0"}` | image parameters for the image | | node.image.pullPolicy | string | `"IfNotPresent"` | pull policy for the image, IfNotPresent by default | | node.image.registry | string | `"ghcr.io"` | registry for the image, GitHub Container Registry by default | | node.image.repository | string | `"celestiaorg/celestia-node"` | repository for the image, celestiaorg/celestia-node by default | -| node.image.tag | string | `"v0.14.0"` | tag for the image, v0.13.6 by default | +| node.image.tag | string | `"v0.15.0"` | tag for the image, v0.13.6 by default | | node.initContainers | list | `[]` | | | node.lifecycleHooks | object | `{}` | | | node.livenessProbe | object | `{"enabled":false,"failureThreshold":3,"initialDelaySeconds":0,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | liveness probe for the node | @@ -184,8 +340,8 @@ Celestia Node | node.otelAgent.grafanaOtelSecret | object | `{"name":"SET_IT"}` | grafana otel secret for the node | | node.otelAgent.grafanaOtelSecret.name | string | `"SET_IT"` | name of the grafana otel secret, it must be set | | node.otelAgent.image | object | `{"digest":"","pullPolicy":"IfNotPresent","registry":"ghcr.io","repository":"open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib","tag":"0.102.0"}` | image for the otel agent, ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.102.0 by default | -| node.otelAgent.resources | object | `{}` | | -| node.otelAgent.resourcesPreset | string | `"micro"` | | +| node.otelAgent.resources.requests.cpu | string | `"100m"` | | +| node.otelAgent.resources.requests.memory | string | `"100Mi"` | | | node.pdb.create | bool | `false` | | | node.pdb.maxUnavailable | string | `""` | | | node.pdb.minAvailable | int | `1` | | @@ -203,16 +359,15 @@ Celestia Node | node.podSecurityContext.supplementalGroups | list | `[]` | filesystem extra groups for node pods, [] by default | | node.podSecurityContext.sysctls | list | `[]` | kernel settings using the sysctl interface for node pods, [] by default | | node.priorityClassName | string | `""` | | -| node.readinessProbe.enabled | bool | `false` | enable readiness probe on node containers, false by default | +| node.readinessProbe.enabled | bool | `true` | enable readiness probe on node containers, false by default | | node.readinessProbe.failureThreshold | int | `3` | failure threshold for readinessProbe, 3 by default | | node.readinessProbe.initialDelaySeconds | int | `0` | initial delay seconds for readinessProbe, 0 by default | | node.readinessProbe.periodSeconds | int | `10` | period seconds for readinessProbe, 10 by default | | node.readinessProbe.successThreshold | int | `1` | success threshold for readinessProbe, 1 by default | | node.readinessProbe.timeoutSeconds | int | `1` | timeout seconds for readinessProbe, 1 by default | | node.replicaCount | int | `1` | number of node replicas to deploy, 1 by default | -| node.resources | object | `{"limits":{"cpu":6,"memory":"16Gi"},"requests":{"cpu":6,"memory":"16Gi"}}` | resources for the node | -| node.resources.limits | object | `{"cpu":6,"memory":"16Gi"}` | limits for the node | -| node.resources.limits.cpu | int | `6` | cpu limits for the node, 2 by default | +| node.resources | object | `{"limits":{"memory":"16Gi"},"requests":{"cpu":6,"memory":"16Gi"}}` | resources for the node | +| node.resources.limits | object | `{"memory":"16Gi"}` | limits for the node | | node.resources.limits.memory | string | `"16Gi"` | memory limits for the node, 8Gi by default | | node.resources.requests | object | `{"cpu":6,"memory":"16Gi"}` | requests for the node | | node.resources.requests.cpu | int | `6` | cpu requests for the node, 2 by default | @@ -221,8 +376,11 @@ Celestia Node | node.schedulerName | string | `""` | | | node.settings.address | string | `"SET_IT"` | address for the celestia-node, it must be set | | node.settings.home | string | `"/home/celestia"` | home directory for the celestia-node, defaults to /home/celestia | +| node.settings.nodeType | string | `"bridge"` | | | node.settings.node_id | string | `"SET_IT"` | node ID for the celestia-node, it must be set | | node.settings.secret.name | string | `"SET_IT"` | name of the secret, it must be set | +| node.settings.ws.tls.enabled | bool | `false` | | +| node.settings.ws.tls.secret.name | string | `"SET_IT"` | | | node.sidecars | list | `[]` | | | node.startupProbe | object | `{"enabled":false,"initialDelaySeconds":0,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | startup probe for the node | | node.startupProbe.enabled | bool | `false` | enable startup probe on node containers, false by default | @@ -240,8 +398,8 @@ Celestia Node | persistence.size | string | `"250Gi"` | size of data volume, 250Gi by default | | rbac.create | bool | `false` | | | rbac.rules | list | `[]` | | -| service | object | `{"external":{"annotations":{},"enabled":true,"externalTrafficPolicy":"Cluster","extraPorts":[],"loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":{"p2p":"","profiling":"","prometheus":"","rest":"","rpc":""},"ports":{"p2p":2121,"rest":26659,"rpc":26658},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"LoadBalancer"},"internal":{"annotations":{},"clusterIP":"","ports":{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"ClusterIP"}}` | service parameters | -| service.external | object | `{"annotations":{},"enabled":true,"externalTrafficPolicy":"Cluster","extraPorts":[],"loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":{"p2p":"","profiling":"","prometheus":"","rest":"","rpc":""},"ports":{"p2p":2121,"rest":26659,"rpc":26658},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"LoadBalancer"}` | external service parameters | +| service | object | `{"external":{"annotations":{},"clusterIP":"None","enabled":true,"externalTrafficPolicy":"Cluster","extraPorts":[],"loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":{"p2p":"","profiling":"","prometheus":"","rest":"","rpc":""},"ports":{"p2p":2121,"rest":26659,"rpc":26658,"ws":2122},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"ClusterIP"},"internal":{"annotations":{},"clusterIP":"None","ports":{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658,"ws":2122},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"ClusterIP"}}` | service parameters | +| service.external | object | `{"annotations":{},"clusterIP":"None","enabled":true,"externalTrafficPolicy":"Cluster","extraPorts":[],"loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":{"p2p":"","profiling":"","prometheus":"","rest":"","rpc":""},"ports":{"p2p":2121,"rest":26659,"rpc":26658,"ws":2122},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"ClusterIP"}` | external service parameters | | service.external.enabled | bool | `true` | enable external service, true by default | | service.external.nodePorts | object | `{"p2p":"","profiling":"","prometheus":"","rest":"","rpc":""}` | node ports for the celestia-app | | service.external.nodePorts.p2p | string | `""` | p2p port, 2121 by default | @@ -252,14 +410,16 @@ Celestia Node | service.external.ports.p2p | int | `2121` | P2P container port, 2121 by default | | service.external.ports.rest | int | `26659` | REST container port, 26659 by default | | service.external.ports.rpc | int | `26658` | RPC container port, 26658 by default | -| service.external.type | string | `"LoadBalancer"` | external service type, LoadBalancer by default | -| service.internal | object | `{"annotations":{},"clusterIP":"","ports":{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"ClusterIP"}` | service type, ClusterIP by default | -| service.internal.ports | object | `{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658}` | Ports for the celestia-node | +| service.external.ports.ws | int | `2122` | WebSocket container port, 2122 by default | +| service.external.type | string | `"ClusterIP"` | external service type, ClusterIP by default | +| service.internal | object | `{"annotations":{},"clusterIP":"None","ports":{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658,"ws":2122},"sessionAffinity":"None","sessionAffinityConfig":{},"type":"ClusterIP"}` | service type, ClusterIP by default | +| service.internal.ports | object | `{"p2p":2121,"profiling":6060,"prometheus":8890,"rest":26659,"rpc":26658,"ws":2122}` | Ports for the celestia-node | | service.internal.ports.p2p | int | `2121` | P2P container port, 2121 by default | | service.internal.ports.profiling | int | `6060` | Profiling container port, 6060 by default | | service.internal.ports.prometheus | int | `8890` | Prometheus container port, 8890 by default | | service.internal.ports.rest | int | `26659` | REST container port, 26659 by default | | service.internal.ports.rpc | int | `26658` | RPC container port, 26658 by default | +| service.internal.ports.ws | int | `2122` | WebSocket container port, 2122 by default | | service.internal.type | string | `"ClusterIP"` | service type, ClusterIP by default | | serviceAccount.annotations | object | `{}` | | | serviceAccount.automountServiceAccountToken | bool | `true` | | diff --git a/charts/celestia-node/templates/_helpers.tpl b/charts/celestia-node/templates/_helpers.tpl index 111fae3..654bd51 100644 --- a/charts/celestia-node/templates/_helpers.tpl +++ b/charts/celestia-node/templates/_helpers.tpl @@ -80,7 +80,7 @@ Compile all deprecation warnings into a single message. {{- define "node.deprecationWarnings" -}} {{- $warnings := list -}} {{- if .Values.node.args -}} - DEPRECATION WARNING: The use of node.args is deprecated. Please configure container args using node.settings.nodeType and node.extraArgs. + {{- $warnings = append $warnings "DEPRECATION WARNING: The use of node.args is deprecated. Please configure container args using node.settings.nodeType and node.extraArgs." -}} {{- end -}} {{- $warnings := without $warnings "" -}} {{- $warning := join "\n" $warnings -}} @@ -98,6 +98,12 @@ Compile all validation messages into a single message and fail the deployment if {{- define "node.validateValues" -}} {{- $messages := list -}} {{- $messages := append $messages (include "node.validateValues.nodeType" .) -}} +{{- if .Values.node.settings.node_id -}} + {{- $messages = append $messages "ERROR: The use of node.settings.node_id is not allowed. Please use the secret specified in node.settings.secret." -}} +{{- end -}} +{{- if .Values.node.settings.address -}} + {{- $messages = append $messages "ERROR: The use of node.settings.address is not allowed. Please use the secret specified in node.settings.secret." -}} +{{- end -}} {{- $messages := without $messages "" -}} {{- $message := join "\n" $messages -}} diff --git a/charts/celestia-node/templates/configmap-address.yaml b/charts/celestia-node/templates/configmap-address.yaml deleted file mode 100644 index 7f030b5..0000000 --- a/charts/celestia-node/templates/configmap-address.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "common.names.fullname" . }}-address - namespace: {{ include "common.names.namespace" . | quote }} - labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} - app.kubernetes.io/component: node - {{- if .Values.commonAnnotations }} - annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} - {{- end }} -data: - address: {{ .Values.node.settings.address }} diff --git a/charts/celestia-node/templates/configmap-bridge.yaml b/charts/celestia-node/templates/configmap-bridge.yaml index 78d9fc4..04084a9 100644 --- a/charts/celestia-node/templates/configmap-bridge.yaml +++ b/charts/celestia-node/templates/configmap-bridge.yaml @@ -19,9 +19,8 @@ data: RPCPort = "{{ .Values.node.config.bridge.configtoml.Core.RPCPort }}" GRPCPort = "{{ .Values.node.config.bridge.configtoml.Core.GRPCPort }}" [State] - KeyringAccName = "{{ .Values.node.config.bridge.configtoml.State.KeyringAccName }}" - KeyringBackend = "{{ .Values.node.config.bridge.configtoml.State.KeyringBackend }}" - GranterAddress = {{ .Values.node.config.bridge.configtoml.State.GranterAddress }} + DefaultKeyName = "{{ .Values.node.config.bridge.configtoml.State.DefaultKeyName }}" + DefaultBackendName = "{{ .Values.node.config.bridge.configtoml.State.DefaultBackendName }}" [P2P] ListenAddresses = [{{ range $index, $element := .Values.node.config.bridge.configtoml.P2P.ListenAddresses }}{{ if $index }}, {{ end }}"{{ $element }}"{{ end }}] AnnounceAddresses = {{ .Values.node.config.bridge.configtoml.P2P.AnnounceAddresses }} diff --git a/charts/celestia-node/templates/configmap-full.yaml b/charts/celestia-node/templates/configmap-full.yaml index e369bd9..e67d1a5 100644 --- a/charts/celestia-node/templates/configmap-full.yaml +++ b/charts/celestia-node/templates/configmap-full.yaml @@ -19,9 +19,8 @@ data: RPCPort = "{{ .Values.node.config.full.configtoml.Core.RPCPort }}" GRPCPort = "{{ .Values.node.config.full.configtoml.Core.GRPCPort }}" [State] - KeyringAccName = "{{ .Values.node.config.full.configtoml.State.KeyringAccName }}" - KeyringBackend = "{{ .Values.node.config.full.configtoml.State.KeyringBackend }}" - GranterAddress = {{ .Values.node.config.full.configtoml.State.GranterAddress }} + DefaultKeyName = "{{ .Values.node.config.full.configtoml.State.DefaultKeyName }}" + DefaultBackendName = "{{ .Values.node.config.full.configtoml.State.DefaultBackendName }}" [P2P] ListenAddresses = [{{ range $index, $element := .Values.node.config.full.configtoml.P2P.ListenAddresses }}{{ if $index }}, {{ end }}"{{ $element }}"{{ end }}] AnnounceAddresses = {{ .Values.node.config.full.configtoml.P2P.AnnounceAddresses }} diff --git a/charts/celestia-node/templates/configmap-light.yaml b/charts/celestia-node/templates/configmap-light.yaml index ed16c7c..d34ec4f 100644 --- a/charts/celestia-node/templates/configmap-light.yaml +++ b/charts/celestia-node/templates/configmap-light.yaml @@ -19,9 +19,8 @@ data: RPCPort = "{{ .Values.node.config.light.configtoml.Core.RPCPort }}" GRPCPort = "{{ .Values.node.config.light.configtoml.Core.GRPCPort }}" [State] - KeyringAccName = "{{ .Values.node.config.light.configtoml.State.KeyringAccName }}" - KeyringBackend = "{{ .Values.node.config.light.configtoml.State.KeyringBackend }}" - GranterAddress = {{ .Values.node.config.light.configtoml.State.GranterAddress }} + DefaultKeyName = "{{ .Values.node.config.light.configtoml.State.DefaultKeyName }}" + DefaultBackendName = "{{ .Values.node.config.light.configtoml.State.DefaultBackendName }}" [P2P] ListenAddresses = [{{ range $index, $element := .Values.node.config.light.configtoml.P2P.ListenAddresses }}{{ if $index }}, {{ end }}"{{ $element }}"{{ end }}] AnnounceAddresses = {{ .Values.node.config.light.configtoml.P2P.AnnounceAddresses }} @@ -63,6 +62,8 @@ data: PeerCooldown = "{{ .Values.node.config.light.configtoml.Share.PeerManagerParams.PeerCooldown }}" GcInterval = "{{ .Values.node.config.light.configtoml.Share.PeerManagerParams.GcInterval }}" EnableBlackListing = {{ .Values.node.config.light.configtoml.Share.PeerManagerParams.EnableBlackListing }} + [Share.LightAvailability] + SampleAmount = {{ printf "%.0f" .Values.node.config.light.configtoml.Share.LightAvailability.SampleAmount }} [Share.Discovery] PeersLimit = {{ printf "%.0f" .Values.node.config.light.configtoml.Share.Discovery.PeersLimit }} AdvertiseInterval = "{{ .Values.node.config.light.configtoml.Share.Discovery.AdvertiseInterval }}" diff --git a/charts/celestia-node/templates/service.yaml b/charts/celestia-node/templates/service.yaml index 166ac92..2daade4 100644 --- a/charts/celestia-node/templates/service.yaml +++ b/charts/celestia-node/templates/service.yaml @@ -57,6 +57,19 @@ spec: nodePort: null {{- end }} {{- end }} + {{- if .Values.service.external.ports.ws }} + - name: ws + port: {{ .Values.service.external.ports.ws }} + {{- if not (eq .Values.service.external.ports.ws .Values.node.containerPorts.ws) }} + targetPort: {{ .Values.node.containerPorts.ws }} + {{- end }} + protocol: TCP + {{- if and (or (eq .Values.service.external.type "NodePort") (eq .Values.service.external.type "LoadBalancer")) (not (empty .Values.service.external.nodePorts.ws)) }} + nodePort: {{ .Values.service.external.nodePorts.ws }} + {{- else if eq .Values.service.external.type "ClusterIP" }} + nodePort: null + {{- end }} + {{- end }} {{- if .Values.service.external.ports.rest }} - name: rest port: {{ .Values.service.external.ports.rest }} @@ -151,6 +164,12 @@ spec: port: {{ .Values.service.internal.ports.p2p }} targetPort: {{ .Values.node.containerPorts.p2p }} protocol: UDP + - name: ws + port: {{ .Values.service.internal.ports.ws }} + {{- if not (eq .Values.service.internal.ports.ws .Values.node.containerPorts.ws) }} + targetPort: {{ .Values.node.containerPorts.ws }} + {{- end }} + protocol: TCP - name: rest port: {{ .Values.service.internal.ports.rest }} {{- if not (eq .Values.service.internal.ports.rest .Values.node.containerPorts.rest) }} diff --git a/charts/celestia-node/templates/statefulset.yaml b/charts/celestia-node/templates/statefulset.yaml index efb9000..6b659eb 100644 --- a/charts/celestia-node/templates/statefulset.yaml +++ b/charts/celestia-node/templates/statefulset.yaml @@ -116,33 +116,32 @@ spec: command: - "sh" - "-c" - - "chown -R {{ .Values.node.containerSecurityContext.runAsUser }}:{{ .Values.node.containerSecurityContext.runAsGroup }} /home" + - | + set -ex + chown -R {{ .Values.node.containerSecurityContext.runAsUser }}:{{ .Values.node.containerSecurityContext.runAsGroup }} /home + ls -ltra /home volumeMounts: - name: home-dir # This is needed so that the process has permissions to create files in the home directory mountPath: /home readOnly: false - - name: keys-permission + - name: keys image: busybox command: - "sh" - "-c" - | - mkdir -p /keys-volume/keyring-test && \ - cp /keys/* /keys-volume/ && \ - cp /address/* /keys-volume/keyring-test/ && \ - cp /celes-key/* /keys-volume/keyring-test/ && \ - chown -R {{ .Values.node.containerSecurityContext.runAsUser }}:{{ .Values.node.containerSecurityContext.runAsGroup }} /keys-volume/* /keys-volume/keyring-test/ && \ + set -ex + mkdir -p /keys-volume/keyring-test + cp /keys/NJ3XILLTMVRXEZLUFZVHO5A /keys-volume/ + cp /keys/OAZHALLLMV4Q /keys-volume/ + cp /keys/my_celes_key.info /keys-volume/keyring-test/ + printf "%s" "$(cat /keys/address)" > /keys-volume/keyring-test/$(cat /keys/uid).address + chown -R {{ .Values.node.containerSecurityContext.runAsUser }}:{{ .Values.node.containerSecurityContext.runAsGroup }} /keys-volume/ find /keys-volume/ -type f -exec chmod 0600 {} \; volumeMounts: - name: keys mountPath: /keys readOnly: true - - name: address - mountPath: /address - readOnly: true - - name: celes-key - mountPath: /celes-key - readOnly: true - name: keys-volume mountPath: /keys-volume {{- if .Values.node.initContainers }} @@ -168,6 +167,10 @@ spec: env: - name: CELESTIA_HOME value: {{ .Values.node.settings.home }} + {{- if .Values.node.settings.ws.tls.enabled }} + - name: CELESTIA_TLS_PATH + value: {{ .Values.node.settings.home }}/tls + {{- end }} {{- if .Values.node.extraEnvVars }} {{- include "common.tplvalues.render" (dict "value" .Values.node.extraEnvVars "context" $) | nindent 12 }} {{- end }} @@ -194,6 +197,10 @@ spec: containerPort: {{ .Values.node.containerPorts.p2p }} hostPort: {{ .Values.node.containerPorts.p2p }} protocol: UDP + - name: ws + containerPort: {{ .Values.node.containerPorts.ws }} + hostPort: {{ .Values.node.containerPorts.ws }} + protocol: TCP - name: rest containerPort: {{ .Values.node.containerPorts.rest }} hostPort: {{ .Values.node.containerPorts.rest }} @@ -272,6 +279,16 @@ spec: - name: home-dir # This is needed so that the process has permissions to create files in the home directory mountPath: {{ .Values.node.settings.home }} readOnly: false + {{- if .Values.node.settings.ws.tls.enabled }} + - name: tls-certs + mountPath: {{ .Values.node.settings.home }}/tls/cert.pem + subPath: tls.crt + readOnly: true + - name: tls-certs + mountPath: {{ .Values.node.settings.home }}/tls/key.pem + subPath: tls.key + readOnly: true + {{- end }} {{- if .Values.node.extraVolumeMounts }} {{- include "common.tplvalues.render" (dict "value" .Values.node.extraVolumeMounts "context" $) | nindent 12 }} {{- end }} @@ -326,18 +343,10 @@ spec: path: OAZHALLLMV4Q - key: my_celes_key_info path: my_celes_key.info - - name: address - configMap: - name: {{ template "common.names.fullname" . }}-address - items: + - key: uid + path: uid - key: address path: address - - name: celes-key - secret: - secretName: {{ .Values.node.settings.secret.name }} - items: - - key: my_celes_key_info - path: my_celes_key.info - name: keys-volume emptyDir: {} - name: home-dir @@ -345,6 +354,16 @@ spec: - name: configtoml configMap: name: {{ template "common.names.fullname" . }}-configtoml + {{- if .Values.node.settings.ws.tls.enabled }} + - name: tls-certs + secret: + secretName: {{ .Values.node.settings.ws.tls.secret.name }} + items: + - key: tls.crt + path: tls.crt + - key: tls.key + path: tls.key + {{- end }} - name: otel-agent-config configMap: name: {{ template "common.names.fullname" . }}-otel-agent diff --git a/charts/celestia-node/values.yaml b/charts/celestia-node/values.yaml index 634b8f8..7b90a7a 100644 --- a/charts/celestia-node/values.yaml +++ b/charts/celestia-node/values.yaml @@ -90,7 +90,7 @@ node: # -- repository for the image, celestiaorg/celestia-node by default repository: celestiaorg/celestia-node # -- tag for the image, v0.13.6 by default - tag: v0.14.1 + tag: v0.15.0 digest: "" ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' @@ -118,25 +118,29 @@ node: ## # -- home directory for the celestia-node, defaults to /home/celestia home: "/home/celestia" - ## @param node.settings.node_id Node ID for the celestia-node - ## - # -- node ID for the celestia-node, it must be set - node_id: "SET_IT" - ## @param node.settings.address Address for the celestia-node - ## - # -- address for the celestia-node, it must be set - address: "SET_IT" ## @param node.settings.secret Secret for the celestia-node ## ## A secret must be available in the cluster with the following format: ## - name: ## - items: + ## - key: my_celes_key_info + ## - key: uid + ## - key: address ## - key: NJ3XILLTMVRXEZLUFZVHO5A ## - key: OAZHALLLMV4Q - ## - key: my_celes_key_info secret: # -- name of the secret, it must be set name: SET_IT + ws: + tls: + enabled: false + ## A secret must be available in the cluster with the following format: + ## - name: + ## - items: + ## - key: tls.cert + ## - key: tls.key + secret: + name: SET_IT ## @param node.config Configuration for the celestia-node ## ## @param node.config.bridge Configuration for the celestia-node bridge @@ -155,15 +159,16 @@ node: RPCPort: "26657" GRPCPort: "9090" State: - KeyringAccName: "" - KeyringBackend: test - GranterAddress: [] + DefaultKeyName: my_celes_key + DefaultBackendName: test P2P: ListenAddresses: - /ip4/0.0.0.0/udp/2121/quic-v1/webtransport - /ip6/::/udp/2121/quic-v1/webtransport - /ip4/0.0.0.0/udp/2121/quic-v1 - /ip6/::/udp/2121/quic-v1 + - /ip4/0.0.0.0/udp/2121/webrtc-direct + - /ip6/::/udp/2121/webrtc-direct - /ip4/0.0.0.0/tcp/2121 - /ip6/::/tcp/2121 AnnounceAddresses: [] @@ -174,6 +179,9 @@ node: - /ip4/0.0.0.0/udp/2121/quic-v1 - /ip4/127.0.0.1/udp/2121/quic-v1 - /ip6/::/udp/2121/quic-v1 + - /ip4/0.0.0.0/udp/2121/webrtc-direct + - /ip4/127.0.0.1/udp/2121/webrtc-direct + - /ip6/::/udp/2121/webrtc-direct - /ip4/0.0.0.0/tcp/2121 - /ip4/127.0.0.1/tcp/2121 - /ip6/::/tcp/2121 @@ -247,15 +255,16 @@ node: RPCPort: "26657" GRPCPort: "9090" State: - KeyringAccName: "" - KeyringBackend: test - GranterAddress: [] + DefaultKeyName: my_celes_key + DefaultBackendName: test P2P: ListenAddresses: - /ip4/0.0.0.0/udp/2121/quic-v1/webtransport - /ip6/::/udp/2121/quic-v1/webtransport - /ip4/0.0.0.0/udp/2121/quic-v1 - /ip6/::/udp/2121/quic-v1 + - /ip4/0.0.0.0/udp/2121/webrtc-direct + - /ip6/::/udp/2121/webrtc-direct - /ip4/0.0.0.0/tcp/2121 - /ip6/::/tcp/2121 AnnounceAddresses: [] @@ -266,6 +275,9 @@ node: - /ip4/0.0.0.0/udp/2121/quic-v1 - /ip4/127.0.0.1/udp/2121/quic-v1 - /ip6/::/udp/2121/quic-v1 + - /ip4/0.0.0.0/udp/2121/webrtc-direct + - /ip4/127.0.0.1/udp/2121/webrtc-direct + - /ip6/::/udp/2121/webrtc-direct - /ip4/0.0.0.0/tcp/2121 - /ip4/127.0.0.1/tcp/2121 - /ip6/::/tcp/2121 @@ -345,15 +357,16 @@ node: RPCPort: "26657" GRPCPort: "9090" State: - KeyringAccName: "" - KeyringBackend: test - GranterAddress: [] + DefaultKeyName: my_celes_key + DefaultBackendName: test P2P: ListenAddresses: - /ip4/0.0.0.0/udp/2121/quic-v1/webtransport - /ip6/::/udp/2121/quic-v1/webtransport - /ip4/0.0.0.0/udp/2121/quic-v1 - /ip6/::/udp/2121/quic-v1 + - /ip4/0.0.0.0/udp/2121/webrtc-direct + - /ip6/::/udp/2121/webrtc-direct - /ip4/0.0.0.0/tcp/2121 - /ip6/::/tcp/2121 AnnounceAddresses: [] @@ -364,6 +377,9 @@ node: - /ip4/0.0.0.0/udp/2121/quic-v1 - /ip4/127.0.0.1/udp/2121/quic-v1 - /ip6/::/udp/2121/quic-v1 + - /ip4/0.0.0.0/udp/2121/webrtc-direct + - /ip4/127.0.0.1/udp/2121/webrtc-direct + - /ip6/::/udp/2121/webrtc-direct - /ip4/0.0.0.0/tcp/2121 - /ip4/127.0.0.1/tcp/2121 - /ip6/::/tcp/2121 @@ -525,6 +541,8 @@ node: containerPorts: # -- P2P container port, 2121 by default p2p: 2121 + # -- WebSocket container port, 2122 by default + ws: 2122 # -- REST container port, 26659 by default rest: 26659 # -- RPC container port, 26658 by default @@ -911,6 +929,8 @@ service: ports: # -- P2P container port, 2121 by default p2p: 2121 + # -- WebSocket container port, 2122 by default + ws: 2122 # -- REST container port, 26659 by default rest: 26659 # -- RPC container port, 26658 by default @@ -957,6 +977,8 @@ service: ports: # -- P2P container port, 2121 by default p2p: 2121 + # -- WebSocket container port, 2122 by default + ws: 2122 # -- REST container port, 26659 by default rest: 26659 # -- RPC container port, 26658 by default diff --git a/examples/README.md b/examples/README.md deleted file mode 100644 index 2dbd375..0000000 --- a/examples/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# examples - -These example requires present Kubernetes secrets. - -See docs in the `values.yaml` file in the `app.settings` section. diff --git a/examples/celestia-app/mocha.yaml b/examples/celestia-app/mocha.yaml deleted file mode 100644 index cc265c7..0000000 --- a/examples/celestia-app/mocha.yaml +++ /dev/null @@ -1,58 +0,0 @@ -commonLabels: - chain_id: mocha-4 - environment: mocha - network: consensus - type: full -persistence: - size: 1200Gi - dataSource: - apiGroup: snapshot.storage.k8s.io - kind: VolumeSnapshot - name: consensus-latest -app: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Retain - otelAgent: - enabled: true - grafanaOtelSecret: - name: grafana-otel-token - resources: - requests: - cpu: 6 - memory: 24Gi - limits: - cpu: 6 - memory: 24Gi - livenessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 3 - readinessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 30 - startupProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 30 - settings: - genesisURL: "https://raw.githubusercontent.com/celestiaorg/networks/master/mocha-4/genesis.json" - secret: - name: keys-consensus-1 - config: - clienttoml: - chain_id: "mocha-4" - configtoml: - p2p: - seeds: "ee9f90974f85c59d3861fc7f7edb10894f6ac3c8@seed-mocha.pops.one:26656,258f523c96efde50d5fe0a9faeea8a3e83be22ca@seed.mocha-4.celestia.aviaone.com:20279,5d0bf034d6e6a8b5ee31a2f42f753f1107b3a00e@celestia-testnet-seed.itrocket.net:11656,7da0fb48d6ef0823bc9770c0c8068dd7c89ed4ee@celest-test-seed.theamsolutions.info:443" - persistent_peers: "34499b1ac473fbb03894c883178ecc83f0d6eaf6@64.227.18.169:26656,43e9da043318a4ea0141259c17fcb06ecff816af@rpc-1.celestia.nodes.guru:43656,f9e950870eccdb40e2386896d7b6a7687a103c99@rpc-2.celestia.nodes.guru:43656,daf2cecee2bd7f1b3bf94839f993f807c6b15fbf@celestia-testnet-peer.itrocket.net:11656" - instrumentation: - prometheus: true - tx_index: - indexer: "kv" - rpc: - laddr: "tcp://0.0.0.0:26657" - max_subscriptions_per_client: 1000 -diagnosticMode: - enabled: false diff --git a/examples/celestia-node/arabica-bridge.yaml b/examples/celestia-node/arabica-bridge.yaml deleted file mode 100644 index a21d136..0000000 --- a/examples/celestia-node/arabica-bridge.yaml +++ /dev/null @@ -1,80 +0,0 @@ -commonLabels: &commonLabels - chain_id: arabica-11 - environment: arabica - network: da - type: &nodeType bridge # check - secretName: &secretName keys-da-bridge-1 # check - pool: &pool pool-da-0 # check pool instance type to validate requests & limits -service: - external: - annotations: - external-dns.alpha.kubernetes.io/endpoints-type: "NodeExternalIP" - external-dns.alpha.kubernetes.io/hostname: "hc-bridge.celestia-arabica-11.com" - external-dns.alpha.kubernetes.io/ttl: "60" -persistence: - size: 750Gi - dataSource: - apiGroup: snapshot.storage.k8s.io - kind: VolumeSnapshot - name: da-latest -node: - nodeSelector: - k8s.scaleway.com/pool-name: *pool - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Retain - otelAgent: - enabled: true - grafanaOtelSecret: - name: grafana-otel-token - resources: - requests: - cpu: 2 - memory: 4Gi - limits: - #cpu: 4 # not required since this pod should run on it's own dedicated node - memory: 10Gi - livenessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 3 - readinessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 30 - startupProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 60 - args: - - *nodeType - - start - - --p2p.network=arabica-11 - - --node.store=$(CELESTIA_HOME) - - --metrics - - --metrics.tls=false - - --p2p.metrics - settings: - nodeType: *nodeType - address: "eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyNC0wMS0wMiAxMjo1NzoyMC4yNjk1Mjg2NTQgKzAwMDAgVVRDIG09KzAuMDQwNDkyNDk0IiwiZW5jIjoiQTI1NkdDTSIsInAyYyI6ODE5MiwicDJzIjoibHBUb0pLUkFvS3NPbmRhaCJ9.SFen5RaM_7JverpZQN6VxtJ06XePE5VKjyzMyIPgqURSge-XbiLHqA.vZ4fuVFbrLODe8RM.EGKwO3uGEifnPanziF-AD4i6q_92IetSVAEz-7Grg75AJyFLV3Flt4CmfLxrJ2JHWJEKUQBNyIU81u7pd01iNzEECDy9b0jO3DYZ_5PRET8zrVPv6SKKZ_U7MLWmAe_eUajipnbqZ6NzG8UcG4qAt278ttZB1KQsKqocKlE39fSvo3iaZEzOKxS0N3tU1Xw2C3w6HgHJFk0QiP36NIHuKoP_4QJkeAomhJX-cNOYwvTd8qTFTk2-1TzLJ5DasLXsVXTUSUzCzYQhEfL8F0qFoGvuY1dWRD5BESw2Gg2oLH1w957Xd2UhRbo5ORz9POR7goEv9AZ_rWrjSV8HozUmgFwDQyM89M7oiNedEfGQoDjypzcUBcVkZLEMIdrFRpshjcpNEzy6-PZ9rSxouKb7wemG_sueX3V3gIPCTfFr6hB8_b2mV-kKeIXQRS5pJz_wXxeFHFKOHDjt3L8n5eqh.fy-zygX7rjTUqgX02sZKKg" - node_id: "92a499fc2ce7cabd2de89416aa0d0d07838f625d" - secret: - name: *secretName - config: - bridge: - configtoml: - Core: - IP: consensus-validator - RPC: - Enabled: true - Address: 0.0.0.0 - Gateway: - Enabled: true - Address: 0.0.0.0 - Node: - StartupTimeout: 2m -diagnosticMode: - enabled: false -networkPolicy: - enabled: false - \ No newline at end of file diff --git a/examples/celestia-node/arabica-full.yaml b/examples/celestia-node/arabica-full.yaml deleted file mode 100644 index e121e67..0000000 --- a/examples/celestia-node/arabica-full.yaml +++ /dev/null @@ -1,76 +0,0 @@ -commonLabels: - chain_id: arabica-11 - environment: arabica - network: da - type: &nodeType full # check - pool: &pool pool-da-0 # check -service: - external: - annotations: - external-dns.alpha.kubernetes.io/endpoints-type: "NodeExternalIP" - external-dns.alpha.kubernetes.io/hostname: "hc-da-full-1.celestia-arabica-11.com" - external-dns.alpha.kubernetes.io/ttl: "60" -persistence: - size: 1000Gi - dataSource: - apiGroup: snapshot.storage.k8s.io - kind: VolumeSnapshot - name: da-latest -node: - nodeSelector: - k8s.scaleway.com/pool-name: *pool - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Retain - otelAgent: - enabled: true - grafanaOtelSecret: - name: grafana-otel-token - resources: - requests: - cpu: 3 - memory: 15Gi - limits: - cpu: 6 - memory: 24Gi - livenessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 3 - readinessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 30 - startupProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 60 - args: - - *nodeType # check - - start - - --p2p.network=arabica-11 - - --node.store=$(CELESTIA_HOME) - - --metrics - - --metrics.tls=false - - --p2p.metrics - settings: - nodeType: full # check - address: "eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyNC0wMS0wMiAxMjo1NzoyMC4yNjk1Mjg2NTQgKzAwMDAgVVRDIG09KzAuMDQwNDkyNDk0IiwiZW5jIjoiQTI1NkdDTSIsInAyYyI6ODE5MiwicDJzIjoibHBUb0pLUkFvS3NPbmRhaCJ9.SFen5RaM_7JverpZQN6VxtJ06XePE5VKjyzMyIPgqURSge-XbiLHqA.vZ4fuVFbrLODe8RM.EGKwO3uGEifnPanziF-AD4i6q_92IetSVAEz-7Grg75AJyFLV3Flt4CmfLxrJ2JHWJEKUQBNyIU81u7pd01iNzEECDy9b0jO3DYZ_5PRET8zrVPv6SKKZ_U7MLWmAe_eUajipnbqZ6NzG8UcG4qAt278ttZB1KQsKqocKlE39fSvo3iaZEzOKxS0N3tU1Xw2C3w6HgHJFk0QiP36NIHuKoP_4QJkeAomhJX-cNOYwvTd8qTFTk2-1TzLJ5DasLXsVXTUSUzCzYQhEfL8F0qFoGvuY1dWRD5BESw2Gg2oLH1w957Xd2UhRbo5ORz9POR7goEv9AZ_rWrjSV8HozUmgFwDQyM89M7oiNedEfGQoDjypzcUBcVkZLEMIdrFRpshjcpNEzy6-PZ9rSxouKb7wemG_sueX3V3gIPCTfFr6hB8_b2mV-kKeIXQRS5pJz_wXxeFHFKOHDjt3L8n5eqh.fy-zygX7rjTUqgX02sZKKg" - node_id: "92a499fc2ce7cabd2de89416aa0d0d07838f625d" - secret: - name: keys-da-bridge-1 - config: - full: - configtoml: - Core: - IP: consensus-validator - RPC: - Enabled: true - Address: 0.0.0.0 - Gateway: - Enabled: true - Address: 0.0.0.0 - Node: - StartupTimeout: 2m -diagnosticMode: - enabled: false diff --git a/examples/celestia-node/arabica-light.yaml b/examples/celestia-node/arabica-light.yaml deleted file mode 100644 index b05651b..0000000 --- a/examples/celestia-node/arabica-light.yaml +++ /dev/null @@ -1,73 +0,0 @@ -commonLabels: &commonLabels - chain_id: arabica-11 - environment: arabica - network: da - type: &nodeType light # check - secretName: &secretName keys-da-bridge-1 # check - pool: &pool pool-da-0 # check -service: - external: - annotations: - external-dns.alpha.kubernetes.io/endpoints-type: "NodeExternalIP" - external-dns.alpha.kubernetes.io/hostname: "hc-da-light-1.celestia-arabica-11.com" - external-dns.alpha.kubernetes.io/ttl: "60" -persistence: - size: 10Gi -node: - nodeSelector: - k8s.scaleway.com/pool-name: *pool - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Retain - otelAgent: - enabled: true - grafanaOtelSecret: - name: grafana-otel-token - resources: - requests: - cpu: 3 - memory: 15Gi - limits: - cpu: 6 - memory: 24Gi - livenessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 3 - readinessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 30 - startupProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 60 - args: - - *nodeType - - start - - --p2p.network=arabica-11 - - --node.store=$(CELESTIA_HOME) - - --metrics - - --metrics.tls=false - - --p2p.metrics - settings: - nodeType: *nodeType - address: "eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyNC0wMS0wMiAxMjo1NzoyMC4yNjk1Mjg2NTQgKzAwMDAgVVRDIG09KzAuMDQwNDkyNDk0IiwiZW5jIjoiQTI1NkdDTSIsInAyYyI6ODE5MiwicDJzIjoibHBUb0pLUkFvS3NPbmRhaCJ9.SFen5RaM_7JverpZQN6VxtJ06XePE5VKjyzMyIPgqURSge-XbiLHqA.vZ4fuVFbrLODe8RM.EGKwO3uGEifnPanziF-AD4i6q_92IetSVAEz-7Grg75AJyFLV3Flt4CmfLxrJ2JHWJEKUQBNyIU81u7pd01iNzEECDy9b0jO3DYZ_5PRET8zrVPv6SKKZ_U7MLWmAe_eUajipnbqZ6NzG8UcG4qAt278ttZB1KQsKqocKlE39fSvo3iaZEzOKxS0N3tU1Xw2C3w6HgHJFk0QiP36NIHuKoP_4QJkeAomhJX-cNOYwvTd8qTFTk2-1TzLJ5DasLXsVXTUSUzCzYQhEfL8F0qFoGvuY1dWRD5BESw2Gg2oLH1w957Xd2UhRbo5ORz9POR7goEv9AZ_rWrjSV8HozUmgFwDQyM89M7oiNedEfGQoDjypzcUBcVkZLEMIdrFRpshjcpNEzy6-PZ9rSxouKb7wemG_sueX3V3gIPCTfFr6hB8_b2mV-kKeIXQRS5pJz_wXxeFHFKOHDjt3L8n5eqh.fy-zygX7rjTUqgX02sZKKg" - node_id: "92a499fc2ce7cabd2de89416aa0d0d07838f625d" - secret: - name: *secretName - config: - light: - configtoml: - Core: - IP: consensus-validator - RPC: - Enabled: true - Address: 0.0.0.0 - Gateway: - Enabled: true - Address: 0.0.0.0 - Node: - StartupTimeout: 2m -diagnosticMode: - enabled: false diff --git a/examples/celestia-node/mocha.yaml b/examples/celestia-node/mocha.yaml deleted file mode 100644 index c4208da..0000000 --- a/examples/celestia-node/mocha.yaml +++ /dev/null @@ -1,66 +0,0 @@ -commonLabels: - chain_id: mocha-4 - environment: mocha - network: da - type: bridge -persistence: - size: 5000Gi - dataSource: - apiGroup: snapshot.storage.k8s.io - kind: VolumeSnapshot - name: da-latest -node: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Retain - otelAgent: - enabled: true - grafanaOtelSecret: - name: grafana-otel-token - resources: - requests: - cpu: 6 - memory: 24Gi - limits: - cpu: 6 - memory: 24Gi - livenessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 3 - readinessProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 30 - startupProbe: - enabled: true - periodSeconds: 10 - failureThreshold: 60 - args: - - bridge - - start - - --p2p.network=mocha-4 - - --node.store=$(CELESTIA_HOME) - - --metrics - - --metrics.tls=false - - --p2p.metrics - settings: - address: "eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMy0wOS0wNiAxNDoyOTozNi44NTgyOTk3NTMgKzAwMDAgVVRDIG09KzAuMDcyOTE0OTk4IiwiZW5jIjoiQTI1NkdDTSIsInAyYyI6ODE5MiwicDJzIjoiQVIwenY1UGhFaUMxLXlHZiJ9.I5fV04Ezg" - node_id: "b9b227cd41a7567d270d2c630e40b77167b2539f" - secret: - name: keys-da-bridge-1 - config: - bridge: - configtoml: - Core: - IP: consensus-full-mocha-4.celestia-mocha.com - RPC: - Enabled: true - Address: 0.0.0.0 - Gateway: - Enabled: true - Address: 0.0.0.0 - Node: - StartupTimeout: 2m -diagnosticMode: - enabled: false diff --git a/scripts/config/node/bridge/v0.15.0/config.toml b/scripts/config/node/bridge/v0.15.0/config.toml new file mode 100644 index 0000000..b16dad5 --- /dev/null +++ b/scripts/config/node/bridge/v0.15.0/config.toml @@ -0,0 +1,80 @@ +[Node] + StartupTimeout = "2m0s" + ShutdownTimeout = "2m0s" + +[Core] + IP = "" + RPCPort = "26657" + GRPCPort = "9090" + +[State] + DefaultKeyName = "my_celes_key" + DefaultBackendName = "test" + +[P2P] + ListenAddresses = ["/ip4/0.0.0.0/udp/2121/quic-v1/webtransport", "/ip6/::/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1", "/ip6/::/udp/2121/quic-v1", "/ip4/0.0.0.0/udp/2121/webrtc-direct", "/ip6/::/udp/2121/webrtc-direct", "/ip4/0.0.0.0/tcp/2121", "/ip6/::/tcp/2121"] + AnnounceAddresses = [] + NoAnnounceAddresses = ["/ip4/127.0.0.1/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1/webtransport", "/ip6/::/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1", "/ip4/127.0.0.1/udp/2121/quic-v1", "/ip6/::/udp/2121/quic-v1", "/ip4/0.0.0.0/udp/2121/webrtc-direct", "/ip4/127.0.0.1/udp/2121/webrtc-direct", "/ip6/::/udp/2121/webrtc-direct", "/ip4/0.0.0.0/tcp/2121", "/ip4/127.0.0.1/tcp/2121", "/ip6/::/tcp/2121"] + MutualPeers = [] + PeerExchange = true + RoutingTableRefreshPeriod = "1m0s" + [P2P.ConnManager] + Low = 800 + High = 1000 + GracePeriod = "1m0s" + +[RPC] + Address = "localhost" + Port = "26658" + SkipAuth = false + +[Gateway] + Address = "localhost" + Port = "26659" + Enabled = false + +[Share] + UseShareExchange = true + [Share.EDSStoreParams] + GCInterval = "0s" + RecentBlocksCacheSize = 10 + BlockstoreCacheSize = 128 + [Share.ShrExEDSParams] + ServerReadTimeout = "5s" + ServerWriteTimeout = "1m0s" + HandleRequestTimeout = "1m0s" + ConcurrencyLimit = 10 + BufferSize = 32768 + [Share.ShrExNDParams] + ServerReadTimeout = "5s" + ServerWriteTimeout = "1m0s" + HandleRequestTimeout = "1m0s" + ConcurrencyLimit = 10 + [Share.PeerManagerParams] + PoolValidationTimeout = "2m0s" + PeerCooldown = "3s" + GcInterval = "30s" + EnableBlackListing = false + [Share.Discovery] + PeersLimit = 5 + AdvertiseInterval = "1h0m0s" + +[Header] + TrustedHash = "" + TrustedPeers = [] + [Header.Store] + StoreCacheSize = 4096 + IndexCacheSize = 16384 + WriteBatchSize = 2048 + [Header.Syncer] + TrustingPeriod = "336h0m0s" + [Header.Server] + WriteDeadline = "8s" + ReadDeadline = "1m0s" + RangeRequestTimeout = "10s" + [Header.Client] + MaxHeadersPerRangeRequest = 64 + RangeRequestTimeout = "8s" + +[Pruner] + EnableService = false diff --git a/scripts/config/node/full/v0.15.0/config.toml b/scripts/config/node/full/v0.15.0/config.toml new file mode 100644 index 0000000..249c87e --- /dev/null +++ b/scripts/config/node/full/v0.15.0/config.toml @@ -0,0 +1,87 @@ +[Node] + StartupTimeout = "2m0s" + ShutdownTimeout = "2m0s" + +[Core] + IP = "" + RPCPort = "26657" + GRPCPort = "9090" + +[State] + DefaultKeyName = "my_celes_key" + DefaultBackendName = "test" + +[P2P] + ListenAddresses = ["/ip4/0.0.0.0/udp/2121/quic-v1/webtransport", "/ip6/::/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1", "/ip6/::/udp/2121/quic-v1", "/ip4/0.0.0.0/udp/2121/webrtc-direct", "/ip6/::/udp/2121/webrtc-direct", "/ip4/0.0.0.0/tcp/2121", "/ip6/::/tcp/2121"] + AnnounceAddresses = [] + NoAnnounceAddresses = ["/ip4/127.0.0.1/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1/webtransport", "/ip6/::/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1", "/ip4/127.0.0.1/udp/2121/quic-v1", "/ip6/::/udp/2121/quic-v1", "/ip4/0.0.0.0/udp/2121/webrtc-direct", "/ip4/127.0.0.1/udp/2121/webrtc-direct", "/ip6/::/udp/2121/webrtc-direct", "/ip4/0.0.0.0/tcp/2121", "/ip4/127.0.0.1/tcp/2121", "/ip6/::/tcp/2121"] + MutualPeers = [] + PeerExchange = true + RoutingTableRefreshPeriod = "1m0s" + [P2P.ConnManager] + Low = 800 + High = 1000 + GracePeriod = "1m0s" + +[RPC] + Address = "localhost" + Port = "26658" + SkipAuth = false + +[Gateway] + Address = "localhost" + Port = "26659" + Enabled = false + +[Share] + UseShareExchange = true + [Share.EDSStoreParams] + GCInterval = "0s" + RecentBlocksCacheSize = 10 + BlockstoreCacheSize = 128 + [Share.ShrExEDSParams] + ServerReadTimeout = "5s" + ServerWriteTimeout = "1m0s" + HandleRequestTimeout = "1m0s" + ConcurrencyLimit = 10 + BufferSize = 32768 + [Share.ShrExNDParams] + ServerReadTimeout = "5s" + ServerWriteTimeout = "1m0s" + HandleRequestTimeout = "1m0s" + ConcurrencyLimit = 10 + [Share.PeerManagerParams] + PoolValidationTimeout = "2m0s" + PeerCooldown = "3s" + GcInterval = "30s" + EnableBlackListing = false + [Share.Discovery] + PeersLimit = 5 + AdvertiseInterval = "1h0m0s" + +[Header] + TrustedHash = "" + TrustedPeers = [] + [Header.Store] + StoreCacheSize = 4096 + IndexCacheSize = 16384 + WriteBatchSize = 2048 + [Header.Syncer] + TrustingPeriod = "336h0m0s" + [Header.Server] + WriteDeadline = "8s" + ReadDeadline = "1m0s" + RangeRequestTimeout = "10s" + [Header.Client] + MaxHeadersPerRangeRequest = 64 + RangeRequestTimeout = "8s" + +[DASer] + SamplingRange = 100 + ConcurrencyLimit = 6 + BackgroundStoreInterval = "10m0s" + SampleFrom = 1 + SampleTimeout = "2m0s" + +[Pruner] + EnableService = false diff --git a/scripts/config/node/light/v0.15.0/config.toml b/scripts/config/node/light/v0.15.0/config.toml new file mode 100644 index 0000000..0a15b56 --- /dev/null +++ b/scripts/config/node/light/v0.15.0/config.toml @@ -0,0 +1,89 @@ +[Node] + StartupTimeout = "20s" + ShutdownTimeout = "20s" + +[Core] + IP = "" + RPCPort = "26657" + GRPCPort = "9090" + +[State] + DefaultKeyName = "my_celes_key" + DefaultBackendName = "test" + +[P2P] + ListenAddresses = ["/ip4/0.0.0.0/udp/2121/quic-v1/webtransport", "/ip6/::/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1", "/ip6/::/udp/2121/quic-v1", "/ip4/0.0.0.0/udp/2121/webrtc-direct", "/ip6/::/udp/2121/webrtc-direct", "/ip4/0.0.0.0/tcp/2121", "/ip6/::/tcp/2121"] + AnnounceAddresses = [] + NoAnnounceAddresses = ["/ip4/127.0.0.1/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1/webtransport", "/ip6/::/udp/2121/quic-v1/webtransport", "/ip4/0.0.0.0/udp/2121/quic-v1", "/ip4/127.0.0.1/udp/2121/quic-v1", "/ip6/::/udp/2121/quic-v1", "/ip4/0.0.0.0/udp/2121/webrtc-direct", "/ip4/127.0.0.1/udp/2121/webrtc-direct", "/ip6/::/udp/2121/webrtc-direct", "/ip4/0.0.0.0/tcp/2121", "/ip4/127.0.0.1/tcp/2121", "/ip6/::/tcp/2121"] + MutualPeers = [] + PeerExchange = false + RoutingTableRefreshPeriod = "1m0s" + [P2P.ConnManager] + Low = 50 + High = 100 + GracePeriod = "1m0s" + +[RPC] + Address = "localhost" + Port = "26658" + SkipAuth = false + +[Gateway] + Address = "localhost" + Port = "26659" + Enabled = false + +[Share] + UseShareExchange = true + [Share.EDSStoreParams] + GCInterval = "0s" + RecentBlocksCacheSize = 10 + BlockstoreCacheSize = 128 + [Share.ShrExEDSParams] + ServerReadTimeout = "5s" + ServerWriteTimeout = "1m0s" + HandleRequestTimeout = "1m0s" + ConcurrencyLimit = 10 + BufferSize = 32768 + [Share.ShrExNDParams] + ServerReadTimeout = "5s" + ServerWriteTimeout = "1m0s" + HandleRequestTimeout = "1m0s" + ConcurrencyLimit = 10 + [Share.PeerManagerParams] + PoolValidationTimeout = "2m0s" + PeerCooldown = "3s" + GcInterval = "30s" + EnableBlackListing = false + [Share.LightAvailability] + SampleAmount = 16 + [Share.Discovery] + PeersLimit = 5 + AdvertiseInterval = "1h0m0s" + +[Header] + TrustedHash = "" + TrustedPeers = [] + [Header.Store] + StoreCacheSize = 512 + IndexCacheSize = 2048 + WriteBatchSize = 512 + [Header.Syncer] + TrustingPeriod = "336h0m0s" + [Header.Server] + WriteDeadline = "8s" + ReadDeadline = "1m0s" + RangeRequestTimeout = "10s" + [Header.Client] + MaxHeadersPerRangeRequest = 64 + RangeRequestTimeout = "8s" + +[DASer] + SamplingRange = 100 + ConcurrencyLimit = 16 + BackgroundStoreInterval = "10m0s" + SampleFrom = 1 + SampleTimeout = "2m40s" + +[Pruner] + EnableService = false diff --git a/scripts/create_new_key_upload_1pass.sh b/scripts/create_new_key_upload_1pass.sh new file mode 100755 index 0000000..b0666e6 --- /dev/null +++ b/scripts/create_new_key_upload_1pass.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# Check if the correct number of arguments are provided +if [ "$#" -ne 4 ]; then + echo "Usage: $0 " + exit 1 +fi + +# Check if Docker is installed +if ! command -v docker &> /dev/null; then + echo "Docker is not installed. Please install Docker and try again." + exit 1 +fi + +# Assign arguments to variables +CELESTIA_NODE_VERSION=$1 +SECRET_NAME=$2 +VAULT_NAME=$3 +CHAIN=$4 + +# Generate unique container name +NODE_CONTAINER_NAME="celestia-node-container-$(date +%s)" + +# Start the celestia-node container with the specified version and keep it running +docker run -d --name $NODE_CONTAINER_NAME --entrypoint tail ghcr.io/celestiaorg/celestia-node:$CELESTIA_NODE_VERSION -f /dev/null + +# Execute the command in the celestia-node container to create a new key +MNEMONIC=$(docker exec $NODE_CONTAINER_NAME cel-key mnemonic --node.type bridge 2>&1 >/dev/null) +KEY_NAME="my_celes_key" +docker exec -i $NODE_CONTAINER_NAME cel-key add $KEY_NAME --node.type bridge --recover --keyring-backend test --output json <<< "$MNEMONIC" + +docker exec $NODE_CONTAINER_NAME celestia bridge init +docker exec $NODE_CONTAINER_NAME celestia bridge start + +# Function to get keys from the running container and upload to 1password +upload_keys_to_1password() { + NJ=$(docker exec $NODE_CONTAINER_NAME cat /home/celestia/.celestia-bridge/keys/NJ3XILLTMVRXEZLUFZVHO5A) + OA=$(docker exec $NODE_CONTAINER_NAME cat /home/celestia/.celestia-bridge/keys/OAZHALLLMV4Q) + KEY_UID=$(docker exec $NODE_CONTAINER_NAME ls /home/celestia/.celestia-bridge/keys/keyring-test | grep address | cut -d '.' -f 1) + KEY_NAME=$(docker exec $NODE_CONTAINER_NAME ls /home/celestia/.celestia-bridge/keys/keyring-test | grep info | tr '.' '_') + ADDR=$(docker exec $NODE_CONTAINER_NAME bash -c "ls /home/celestia/.celestia-bridge/keys/keyring-test | grep address | xargs -I {} cat /home/celestia/.celestia-bridge/keys/keyring-test/{}") + ADDR_INFO=$(docker exec $NODE_CONTAINER_NAME bash -c "ls /home/celestia/.celestia-bridge/keys/keyring-test | grep info | xargs -I {} cat /home/celestia/.celestia-bridge/keys/keyring-test/{}") + + read -p "Do you want to add the node to 1Pass? (y/n): " confirm + case $confirm in + [yY]|[yesYES]) + echo "Adding node to 1Pass..." + op item create \ + --category password \ + --title "$SECRET_NAME" \ + --vault $VAULT_NAME \ + "mnemonic=${MNEMONIC}" \ + "uid=${KEY_UID}" \ + "address=${ADDR}" \ + "${KEY_NAME}=${ADDR_INFO}" \ + "NJ3XILLTMVRXEZLUFZVHO5A=${NJ}" \ + "OAZHALLLMV4Q=${OA}" \ + --tags ${CHAIN},kubernetes + ;; + *) + echo "Node not added to 1Pass." + ;; + esac +} + +# Upload keys to 1password +upload_keys_to_1password + +# Stop and remove the celestia-node container in the background +docker stop $NODE_CONTAINER_NAME +docker rm $NODE_CONTAINER_NAME