Code Monkey home page Code Monkey logo

dev-cluster's People

Contributors

joroshiba avatar noot avatar sambukowski avatar steezeburger avatar superfluffy avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

dev-cluster's Issues

Add workflow to auto add new issues to astriaorg master project

See: https://github.com/actions/add-to-project

Attempting to follow these instructions (https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/adding-items-automatically) and duplicating the existing workflow gives a message of "maximum number of auto-add workflows reached" but we may be able to manually add an action.

Example from above link:

name: Add bugs to bugs project

on:
  issues:
    types:
      - opened

jobs:
  add-to-project:
    name: Add issue to project
    runs-on: ubuntu-latest
    steps:
      - uses: actions/add-to-project@RELEASE_VERSION
        with:
          # You can target a project in a different organization
          # to the issue
          project-url: https://github.com/orgs/<orgName>/projects/<projectNumber>
          github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
          labeled: bug, needs-triage
          label-operator: OR

Note: we want to leave the labeled input empty which will add all issues

Screenshot 2023-06-14 at 8 13 30 PM

Make faucet delay configurable

The per rollup faucet is by default configured to have a 24h delay on token requests. I believe this is rate limited on a per IP address basis.

We should make this configurable and document how to change it.

Persistent volume for Blockscout's Postgres can crash on startup on Macs

I will sometimes get an error when Blockscout's Postgres is starting up related to data already existing. This blocks Blockscout from starting.

| The database cluster will be initialized with locale "en_US.utf8".                                                                                                                             │
│ The default database encoding has accordingly been set to "UTF8".                                                                                                                              │
│ The default text search configuration will be set to "english".                                                                                                                                │
│                                                                                                                                                                                                │
│ Data page checksums are disabled.                                                                                                                                                              │
│                                                                                                                                                                                                │
│ initdb: error: directory "/var/lib/postgresql/data" exists but is not empty                                                                                                                    │
│ If you want to create a new database system, either remove or empty                                                                                                                            │
│ the directory "/var/lib/postgresql/data" or run initdb                                                                                                                                         │
│ with an argument other than "/var/lib/postgresql/data".

README updates

add:
k9s -n astria-dev-cluster

will add more as i go through

Speed up block times on sequencer

Celestia-local is current cranking faster than normal, metro is slow. We should speed up metro block times, and slow down celestia times to get to point more similar to mainnet launch

EVM Faucet

Create a faucet setup for devnet EVM.

Gives the ability to transfer tokens to an account, with a mechanism in which we are responsible for/has limits.

Simplify launching of a new geth chain (and tooling)

Currently we have a geth pod, and are working on adding tooling to make that work nicely. (#12, #10)

We make it easy to run a second chain, and it's own set of infrastructure. This can be just commands + modified foundry with templated k8s with sh commands if that's the best implementation, but ideally just a couple of clean commands.

ie

export CHAIN_ID={}
export EVM_FUNDING_ADDR={}

just deploy-geth $CHAIN_ID $EVM_FUNDING_ADDRESS
just deploy-eth-explorer $CHAIN_ID
just deploy-faucet $CHAIN_ID $EVM_FUNDING_ADDRESS

Helmify Celestia

Refactor Celestia from regular k8s yaml manifests into a Helm Chart

Naming consistency in dev-cluster

I decided upon some naming conventions after having already done the celestia-local work, so I need to go back and make some things consistent with the newer work.

  • consistent naming for PersistentVolumes and PersistentVolumeClaims
    • {{pod name}}-{{service name}}-pv
    • {{pod name}}-{{service name}}-pvc
  • use plural version of words for kubernetes yaml filenames, even if there is only one resource in the file at the moment
    • volumes.yaml, storageclasses.yaml, etc
  • consistent naming for storage values in values.yaml

Celestia light nodes for each connection

Instead of sequencer-relayer and conductor connecting directly to the bridge, each should have their own light node, which connects to the bridge node.

Each light node should have it's own account, functioning as a wallet interface with the Celestia network.

We may need to update and have a default genesis for celestia-local which provides funds to multiple fixed account addresses. When running light nodes against a devnet or testnet network, operators

Default to ephemeral volumes for dev-cluster with option for PV

It's possible for a persistent volume to get very large, and bad things happen when a user's disk runs out of space. To avoid borking some poor soul's computer who just wanted to run our chain, let's default to ephemeral storage but provide a value that can be overridden to create a persistent local volume.

Ability to change deployed eth on startup

Currently my account hash is hardcoded into the geth configs.

It should be possible to use your own local account for the dev-cluster. This will require a template to get the user's hash to work with kustomization

consistent configMap envar casing

A lot of our configmap keys are snake_case, but should be UPPERCASE_SNAKE_CASE.

  • eliminate need for export SOME_VAR in init and start scripts (or setting envvars in deployment.ymls)
  • IDE no longer complains in bash scripts about undefined variables when they are UPPERCASED like envars
  • recommended by 12 factor app: https://12factor.net/config

Persistant storage for chains

On reboot, all of our pods lose their chain information. Need to update to have options for persistent storage, required for a public devnet.

Public Devnet

Private devnet requires we have a long lived deployed cluster where EVM can be accessed when a user has an API key from JSON RPCs, and data is posted to devnet (arabica) of Celestia.

Tasks

  1. demo
    steezeburger
  2. joroshiba
  3. steezeburger
  4. steezeburger
  5. joroshiba
  6. wontfix
  7. demo
    joroshiba
  8. joroshiba
  9. demo
    joroshiba
  10. demo
    steezeburger

k8ify

Moving from podman to k8 setup with ingress rules and such makes this reusable by testing setups in conductor & sequencer potentially, and makes deployment to GKE simpler

`just create-control-plane` fails on clean setup

When attempting to go through dev-cluster after a fresh git clone the just create-control-plane fails.

kind create cluster --config ./kubernetes/kind-cluster-config.yml
Creating cluster "astria-dev-cluster" ...
 ✓ Ensuring node image (kindest/node:v1.26.3) 🖼
 ✓ Preparing nodes 📦
 ✓ Writing configuration 📜
 ✗ Starting control-plane 🕹️
ERROR: failed to create cluster: failed to init node with kubeadm: command "docker exec --privileged astria-dev-cluster-control-plane kubeadm init --skip-phases=preflight --config=/kind/kubeadm.conf --skip-token-print --v=6" failed with error: exit status 1
Command Output: I0615 01:43:52.178033     131 initconfiguration.go:254] loading configuration from "/kind/kubeadm.conf"

Full error logs: https://gist.github.com/jbowen93/2d868f9923be7a3b65ffdc78ecc27bc5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.