How we wrote Tarantool Kubernetes Operator

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • go-tarantool

    Tarantool 1.10+ client for Go language

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • tarantool-python

    Python client library for Tarantool

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • tarantool-java

    A Java client for Tarantool

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • vshard

    The new generation of sharding based on virtual buckets

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • queue

    Create task queues, add and take jobs, monitor failed tasks

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • cartridge

    Out-of-the-box cluster manager for Tarantool with a modern web UI (by tarantool)

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • luatest

    Tarantool test framework written in Lua

  • The Tarantool ecosystem is constantly growing. Today it already has a lot of connectors for popular programming languages (Golang, Python, Java, etc.), extension modules for building applications with blocks (vshard, queue, etc.), and frameworks that speed up the development process (Cartridge and Luatest).

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • tarantool-operator

    Tarantool Operator manages Tarantool Cartridge clusters atop Kubernetes

  • Development of the Enterprise version of the operator started with reevaluating its Community version where three CRDs were used to describe a cluster:

  • operator-sdk

    SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.

  • • You can download Tarantool on the official website • Get help in our Telegram chat • Read more about Operator SDK here • Creating fake Kubernetes topology • The testify library we used for unit tests • E2E framework

  • gomock

    Discontinued GoMock is a mocking framework for the Go programming language. (by golang)

  • As every software, the operator needs to be tested. In our case, we use two types of tests: Unit and E2E. For testing, usually mock code generation is used (for example, via golang/mock). We didn't like this option, so we decided to use Testify's mock module that allows to mock required function interfaces using the reflection API—the interfaces used to configure Tarantool.

  • Testify

    A toolkit with common assertions and mocks that plays nicely with the standard library

  • • You can download Tarantool on the official website • Get help in our Telegram chat • Read more about Operator SDK here • Creating fake Kubernetes topology • The testify library we used for unit tests • E2E framework

  • controller-runtime

    Repo for the controller-runtime subproject of kubebuilder (sig-apimachinery)

  • • You can download Tarantool on the official website • Get help in our Telegram chat • Read more about Operator SDK here • Creating fake Kubernetes topology • The testify library we used for unit tests • E2E framework

  • e2e-framework

    A Go framework for end-to-end testing of components running in Kubernetes clusters.

  • As for E2E tests, we used the E2E framework for their implementation. It allowed us to fully check the operator's Helm chart and test it in different Kubernetes versions with KinD. Due to the specifics of tests in Kubernetes, we have to wait until different pods are created. Therefore, the duration of all tests grows very fast. E2E framework helped us solve this problem since it supports parallel start of test cases. It let us shorten the time of tests from 30 to 8 minutes.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • We moved our Cloud operations to a Kubernetes Operator

    3 projects | dev.to | 15 Aug 2023
  • O que é BDD e quando você deve considerar

    2 projects | dev.to | 17 Jun 2024
  • How to Setup Jest on Typescript Monorepo Projects

    1 project | dev.to | 12 Jun 2024
  • Cypress vs. Playwright for Node: A Head-to-Head Comparison

    2 projects | dev.to | 5 Jun 2024
  • How to Scrape Dynamic Content with Selenium and Beautiful Soup

    1 project | dev.to | 4 Jun 2024