{"id":20272280,"url":"https://github.com/kubetrail/geth-deployment","last_synced_at":"2026-06-07T17:32:45.757Z","repository":{"id":43396706,"uuid":"465570277","full_name":"kubetrail/geth-deployment","owner":"kubetrail","description":"Kubernetes manifests for deploying geth in dev mode, i.e. an Ethereum proof-of-authority single node for testing purposes","archived":false,"fork":false,"pushed_at":"2022-03-03T17:25:15.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-14T06:08:18.819Z","etag":null,"topics":["ethereum","geth","geth-node","kubernetes-deployment","metamask"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kubetrail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-03T04:41:53.000Z","updated_at":"2022-03-03T16:24:50.000Z","dependencies_parsed_at":"2022-08-24T14:36:45.872Z","dependency_job_id":null,"html_url":"https://github.com/kubetrail/geth-deployment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubetrail%2Fgeth-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubetrail%2Fgeth-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubetrail%2Fgeth-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubetrail%2Fgeth-deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubetrail","download_url":"https://codeload.github.com/kubetrail/geth-deployment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241758960,"owners_count":20015251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ethereum","geth","geth-node","kubernetes-deployment","metamask"],"created_at":"2024-11-14T12:42:43.231Z","updated_at":"2026-06-07T17:32:45.651Z","avatar_url":"https://github.com/kubetrail.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# geth-deployment\nDeploy `geth` to a k8s cluster in `dev` node running\nas an Ethereum single node testnet with proof-of-authority (PoA) consensus\n\n## disclaimer\n\u003e The use of this tool does not guarantee security or usability for any\n\u003e particular purpose. Please review the code and use at your own risk.\n\n## installation\nfirst download the code, build container image and push\nto your container registry.\n\u003e please make sure go toolchain and docker are installed\n\u003e at relatively newer versions and also update the\n\u003e IMG value to point to your registry\n```bash\nexport IMG=docker.io/your-account-name/geth:v1.10.16\nmake manifests\nmake docker-build\nmake docker-push\n```\nonce the container image is available in your registry you can\ndeploy `geth` to a kubernetes cluster.\n\n```bash\nmake deploy\n```\n\nThe status of k8s resources should appear as follows:\n```bash\nkubectl --namespace=geth-system get pods,svc,configmaps,secrets                                                                    dusy: Thu Mar  3 09:00:15 2022\n\nNAME                                           READY   STATUS    RESTARTS   AGE\npod/geth-controller-manager-65dcc9f484-27dpt   1/1     Running   0          4m18s\n\nNAME                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE\nservice/geth-geth   ClusterIP   10.107.236.154   \u003cnone\u003e        8545/TCP,8546/TCP   4m20s\n\nNAME                         DATA   AGE\nconfigmap/kube-root-ca.crt   1      4m20s\n\nNAME                                         TYPE                                  DATA   AGE\nsecret/artifact-registry-key                 kubernetes.io/dockerconfigjson        1      4m20s\nsecret/default-token-m7tpn                   kubernetes.io/service-account-token   3      4m20s\nsecret/geth-controller-manager-token-lbn6t   kubernetes.io/service-account-token   3      4m20s\n```\n\n## interact with the chain\nExec into the pod by running `geth attach` command as shown below:\n```bash\nmake console\nWelcome to the Geth JavaScript console!\n\ninstance: Geth/v1.10.16-stable-20356e57/linux-arm64/go1.17.7\ncoinbase: 0x\u003caddress redacted\u003e\nat block: 1 (Thu Mar 03 2022 04:21:18 GMT+0000 (UTC))\n datadir: \n modules: admin:1.0 clique:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0\n\nTo exit, press ctrl-d or type exit\n\u003e \n```\n\nTransfer funds to an address:\n```bash\n\u003e eth.sendTransaction({from:eth.coinbase, to:\"0x62c1831A63069619EE94d73853C21ceD076d0665\", value: web3.toWei(125, \"ether\")})\n```\n\n## connect via Metamask\nFirst, port-forward RPC\n```bash\nmake port-forward-rpc\nForwarding from 127.0.0.1:8545 -\u003e 8545\nForwarding from [::1]:8545 -\u003e 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\nHandling connection for 8545\n```\n\nMetamask Chrome extension can be configured to connect to this network.\n\u003e Note that Metamask smartphone app will not accept http only RPC addresses\n\u003e and therefore in such cases only Chrome extensions can be used.\n\u003e See more: https://github.com/MetaMask/metamask-mobile/issues/2314#issuecomment-1013680137\n\nConnection parameters, typically already setup as `Localhost` network:\n* RPC: http://127.0.0.1:8545\n* ChainID: 1337\n* Currency symbol: ETH\n\nAt this point the funds transferred in previous should be visible in the Metamask wallet\nassuming you have configured Metamask with the same address.\n\n## linux and arm64 users:\nFirst set env. var `PROJECT` to point to Google cloud project ID.\nAlso make sure you have artifact registry API enabled and a repo called\n`services` has been provisioned for container images to reside in it.\n\n`podman` can be used instead of `docker` to build and push multi-arch container\nimages. First build `amd64` and `arm64` images separately on respective host machines\nwith these host architectures.\n```bash\nmake podman-build\n```\n\nSave/load container images and make sure both `amd64` and `arm64` images are \npresent on the same machine for next step to link them togehter in a manifest.\n\n```bash\nmake podman-push\n```\n\nThis will push the container images to your registry and link them in a manifest.\n\n## references:\n* https://geth.ethereum.org/docs/getting-started/dev-mode\n* https://dev.to/blockchain_dev/getting-started-with-ethereum-connecting-geth-remix-and-metamask-for-local-development-ce1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubetrail%2Fgeth-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubetrail%2Fgeth-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubetrail%2Fgeth-deployment/lists"}