over budget
Kelley: Cardano k8s Operators
Current Project Status
Unfunded
Amount
Received
$0
Amount
Requested
$64,560
Percentage
Received
0.00%
Solution

We’ll provide a set of Kubernetes operators for the main Cardano components, hiding the configuration complexity behind high-level resources.

Problem

Deploying and maintaining Cardano components on Kubernetes clusters is complex and requires a deep understanding of many configuration details.

Impact / Alignment
Feasibility
Auditability

txpipe

2 members

Kelley: Cardano k8s Operators

Please describe your proposed solution.

A Kubernetes operator is an application-specific controller that can help you package, deploy, and manage applications on Kubernetes clusters.

By defining custom, high-level resources, a developer can provision applications without having to know the low-level configurations details associated with each application.

A myriad of operators exist for well-known tools such as Redis, Kafka, Elasticsearch, etc.

This proposal involves the development of an operator for each of the following commonly used Cardano components:

  • Cardano Node
  • DB-Sync
  • Ogmios
  • Submit API

The features available in each operator will vary depending on the nature of the workload (eg: stateful vs stateless), but they all aim to solve the following infrastructure management procedures:

  • Basic install, provisioning and configuration
  • Version upgrades (minor / patch)
  • Storage backup and restore
  • Monitoring and alerts

This operators will provide a canonical way for deploying Cardano-specific infrastructure on Kubernetes clusters.

Please describe how your proposed solution will address the Challenge that you have submitted it in.

Simplifying the procedures required for deploying Cardano-specific infrastructure will lower the entry barrier for developers, which in turn increases adoption.

Removing the complexity associated with managing Cardano infrastructure will allow developers to focus on project features while seamlessly adopting best-practices.

What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

Implementing an operator involves hardcoding infrastructure management best-practices into executable binaries.

For an operator to be adopted by the community, it should provide, at least, the same level of performance and security of a manual deployment.

Our team has experience deploying these components, but other teams might have identified best-practices unknown to us.

Our mitigation includes reaching out to different projects and request non-confidential information on how they run their infrastructure to ensure that we are contemplating all the best-practices already used by the community.

Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

Milestone #1: MVP Operators

  • 2 month development
  • 1 full-time Python developer
  • 1 part-time SRE
  • Deliverables
  • All operators but with limited features
  • Install procedures
  • Version upgrade procedures
  • Monitoring and alert procedures

Milestone #2: Stateful Procedures

  • 1 month development
  • 1 full-time Python developer
  • 1 part-time SRE
  • Deliverables
  • Backup procedure for stateful components
  • Restore procedure for stateful components

Milestone #3: Hardening / Documentation

  • 1 month development
  • 1 part-time Python developer
  • 1 part-time SRE
  • 1 full-time technical writer
  • Deliverables
  • Fully-Functional operators
  • Security hardening pass
  • Bug-fixing
  • Documentation site

Please provide a detailed budget breakdown.

Hourly rates:

  • Python Developer: 65 usd / hs
  • Site Reliability Engineer: 70 usd / hs
  • Technical Writer: 36 usd / hs

Required Hours:

  • Python Developer: 560 hs
  • Site Reliability Engineer: 320 hs
  • Technical Writer: 160 hs

Total Budget:

  • Python Developer: 36,400 USD
  • Site Reliability Engineer: 22,400 USD
  • Technical Writer: 5,760 USD

Please provide details of the people who will work on the project.

Mauro Escudero will be the main developer. He is a senior Python developer with more than 15 years of experience.

Santiago Carmuega will contribute with the planning of the project. He is a senior developer with over 20 years of experience in software development and very active in Cardano Open Source ecosystem leading TxPipe.

Github: https://github.com/scarmuega

Twitter: https://twitter.com/santicarmuega

Alejandro Drabenche will be the SRE in charge of validating, deploying and testing the project at each milestone. He is a senior System Administrator with over 15 years of experience. He has been working on blockchain for over 5 years.

Florencia Luna will be in charge of the technical writing. She is a junior developer with experience in technical writing.

If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

If the Kubernetes deployment methodology via operators gains traction among Cardano developers, we'll return on a future fund to expand the list of components available in our collection of operators.

Please describe what you will measure to track your project's progress, and how will you measure these?

Progress of the project will be measured by released versions matching the scope of the predetermined milestones.

  • A detailed roadmap will be presented as part of the open source repository.
  • Each milestone will be presented as a partial but working "release" within the repository
  • Milestone and tasks will be tracked via Github using their project management tool.
  • Direct communication with the development team will be able through TxPipe's Discord server.
  • Weekly update summaries will be posted via TxPipe's Twitter account.

What does success for this project look like?

Existing and new Cardano projects using Kubernetes use the available operators as the default, canonical way of provisioning infrastructure.

Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

This is an entirely new proposal.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00