GithubHelp home page GithubHelp logo

kotalco / kotal Goto Github PK

View Code? Open in Web Editor NEW
205.0 8.0 48.0 1.98 MB

Blockchain Kubernetes Operator

Home Page: https://kotal.co

License: Apache License 2.0

Dockerfile 0.11% Makefile 0.74% Go 98.25% Shell 0.91%
kubernetes blockchain ethereum ipfs filecoin algorand polkadot chainlink bitcoin stacks

kotal's People

Contributors

dependabot[bot] avatar mabdulmoghni avatar mfarghaly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kotal's Issues

Controller-manager error when creating Ethereum node using Hyperleger Besu client

Hello,

on k8s 1.20.9 on azure, controller-manager- goes into CrashLoopBackOff when trying to apply the example. I've tried also this, same behaviour.

Thanks for letting me know if i'm missing something

2021-10-13T18:13:07.002Z    INFO    controller-runtime.manager.controller.node    Starting workers    {"reconciler group": "ethereum.kotal.io", "reconciler ki
nd": "Node", "worker count": 1}
panic: cannot parse '': quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'
goroutine 660 [running]:
k8s.io/apimachinery/pkg/api/resource.MustParse(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /go/pkg/mod/k8s.io/[email protected]/pkg/api/resource/quantity.go:128 +0x231
github.com/kotalco/kotal/controllers/ethereum.(*NodeReconciler).specPVC(0xc000569aa0, 0xc0004c4300, 0xc00003d340)
    /workspace/controllers/ethereum/node_controller.go:342 +0x65
github.com/kotalco/kotal/controllers/ethereum.(*NodeReconciler).reconcilePVC.func1(0x0, 0x18fdd89)
    /workspace/controllers/ethereum/node_controller.go:377 +0xba
sigs.k8s.io/controller-runtime/pkg/controller/controllerutil.mutate(0xc0006a6ca0, 0xc000462330, 0x5, 0xc0000d1980, 0x11, 0x1c61a90, 0xc00003d340, 0x1c61a90, 0
xc00003d340)
    /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/controller/controllerutil/controllerutil.go:339 +0x2b
sigs.k8s.io/controller-runtime/pkg/controller/controllerutil.CreateOrUpdate(0x1c3f878, 0xc000a666f0, 0x1c521c0, 0xc0000c0410, 0x1c61a90, 0xc00003d340, 0xc0006
a6ca0, 0x2fcb9f5c6f1ed130, 0xf, 0x0, ...)
    /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/controller/controllerutil/controllerutil.go:201 +0x1c5
github.com/kotalco/kotal/controllers/ethereum.(*NodeReconciler).reconcilePVC(0xc000569aa0, 0x1c3f878, 0xc000a666f0, 0xc0004c4300, 0xc0004f4308, 0xc0000d1980)
    /workspace/controllers/ethereum/node_controller.go:373 +0x110
github.com/kotalco/kotal/controllers/ethereum.(*NodeReconciler).Reconcile(0xc000569aa0, 0x1c3f878, 0xc000a666f0, 0xc000462330, 0x5, 0xc0000d1980, 0x11, 0xc000
a666f0, 0xc000030000, 0x17bdaa0, ...)
    /workspace/controllers/ethereum/node_controller.go:70 +0x42f
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000400b40, 0x1c3f7d0, 0xc000602000, 0x1780120, 0xc0006a6000)
    /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:298 +0x30d
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000400b40, 0x1c3f7d0, 0xc000602000, 0xc00097af00)
    /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:253 +0x205
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2(0xc00004b050, 0xc000400b40, 0x1c3f7d0, 0xc000602000)
    /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:214 +0x6b
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2
    /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:210 +0x425

Support for Nethermind or OpenEthereum

Hi,

great tool. Found it via Gitcoin grants.
Do you have any plans to support Nethermind or OpenEthereum clients.
Will be great to put in for test for xDai RPCs.

Thank you

panic while upgrading operator version

if you have a deployment in the cluster while upgrading the operator version you might get this error

2024-04-29T14:25:48Z	INFO	Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference	{"controller": "peer", "controllerGroup": "ipfs.kotal.io", "controllerKind": "Peer", "Peer": {"name":"my-peer","namespace":"default"}, "namespace": "default", "name": "my-peer", "reconcileID": "59088123-8415-4c46-ab7c-e0a730976954"}
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1624313]

goroutine 608 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:116 +0x1e5
panic({0x17a0f00?, 0x29a4170?})
	/usr/local/go/src/runtime/panic.go:914 +0x21f
github.com/kotalco/kotal/controllers/ipfs.(*PeerReconciler).specStatefulSet(0x16?, 0xc00090db00, 0xc00024c500, {0x19b4970, 0xa}, {0xc000458500, 0x2, 0x2}, {0xc0001d30c0, 0x1, ...}, ...)
	/workspace/controllers/ipfs/peer_controller.go:370 +0x1b33
github.com/kotalco/kotal/controllers/ipfs.(*PeerReconciler).Reconcile.func4({0x1d24430?, 0xc00024c500})
	/workspace/controllers/ipfs/peer_controller.go:97 +0x27c
github.com/kotalco/kotal/controllers/shared.Reconciler.ReconcileOwned.func1()
	/workspace/controllers/shared/reconciler.go:35 +0xb2
sigs.k8s.io/controller-runtime/pkg/controller/controllerutil.mutate(0xc00024c500?, {{0xc0008fa950?, 0x0?}, {0xc0008fa946?, 0x1d10578?}}, {0x1d24430, 0xc00024c500})
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/controller/controllerutil/controllerutil.go:340 +0x49
sigs.k8s.io/controller-runtime/pkg/controller/controllerutil.CreateOrUpdate({0x1d10578, 0xc000998a50}, {0x1d18520, 0xc0000d86c0}, {0x1d24430?, 0xc00024c500}, 0x0?)
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/controller/controllerutil/controllerutil.go:212 +0x246
github.com/kotalco/kotal/controllers/shared.Reconciler.ReconcileOwned({{0x1d18520, 0xc0000d86c0}, 0xc00012c850}, {0x1d10578, 0xc000998a50}, {0x1d22998, 0xc00090db00}, {0x1d24430?, 0xc00024c500?}, 0xc000a682d0)
	/workspace/controllers/shared/reconciler.go:30 +0x1ec
github.com/kotalco/kotal/controllers/ipfs.(*PeerReconciler).Reconcile(0xc000380de0, {0x1d10578, 0xc000998a50}, {{{0xc00043f1b0?, 0x5?}, {0xc00043f1f0?, 0xc00066fd48?}}})
	/workspace/controllers/ipfs/peer_controller.go:85 +0x505
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x1d135a0?, {0x1d10578?, 0xc000998a50?}, {{{0xc00043f1b0?, 0xb?}, {0xc00043f1f0?, 0x0?}}})
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:119 +0xb7
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0002b5540, {0x1d105b0, 0xc0004d2e10}, {0x181e480?, 0xc0005b2780?})
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:316 +0x3cc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0002b5540, {0x1d105b0, 0xc0004d2e10})
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:266 +0x1c9
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:227 +0x79
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 156
	/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:223 +0x565

Support user friendly validation for the API sdk

When user tries to validate create or update in the API sdk it returns unformatted and not friendly error validation which used for cli

eg:

{"level":"error","time":"2022-06-22T18:52:55.742+0200","msg":"ERROR_IN_ETHEREUMSERVICE_UPDATE-FM","error":"Node.ethereum.kotal.io \"mynodes\" is invalid: spec.resources.memoryLimit: Invalid value: \"0Gi\": spec.resources.memoryLimit in body should match '^[1-9][0-9]*[KMGTPE]i$'"}

To-do lists

Hello, this project is great! We are very interested in this project.
Which protocol nodes be supported next?
Can you provide a list of plans?
Looking forward to your reply.Thanks!

Use subpath instead of initContianer copy shell script

Hi, I'm little curious about initContainer logic (e.g. lotus).

Can I use subPath mount config toml file Instead of initContainer?

apiVersion: apps/v1
kind: StatefulSet
spec:
  template:
    spec:
      containers:
      - args:
        - lotus
        - daemon
        env:
        - name: LOTUS_PATH
          value: /home/filecoin/kotal-data
        - name: GOLOG_LOG_LEVEL
          value: info
        imagePullPolicy: IfNotPresent
        name: node
        volumeMounts:
        - mountPath: /home/filecoin/kotal-data
          name: data
        - mountPath: /home/filecoin/kotal-data/config.toml
          name: config
          subPath: config.toml
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: filecoin-mainnet-ckeil8ouci5s
      - configMap:
          defaultMode: 420
          name: filecoin-mainnet-ckeil8ouci5s
        name: config

I tested it , it works well.

Allow Disabling of spec.rpc in Prysm Client

Description

According to this validation in the Prysm client, it is not possible to disable the spec.rpc feature, which handles JSON-RPC for beacon nodes.

Proposed Changes

Enable the acceptance of false values for spec.rpc

Change the go.mod module path

➜ Narendranath git:(master) ✗ go get -u github.com/kotalco/kotal
go: downloading github.com/kotalco/kotal v0.0.0-20200813223727-235173dd6fff
go: github.com/kotalco/kotal upgrade => v0.0.0-20200813223727-235173dd6fff
go get: github.com/kotalco/[email protected]: parsing go.mod:
module declares its path as: github.com/mfarghaly/kotal
but was required as: github.com/kotalco/kotal

go.mod path should always match with the GitHub.com

From module github.com/mfarghaly/kotal -> module github.com/kotalco/kotal and update the Project

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.