Cyphernetes
Cyphernetes is Cypher repurposed for working with the Kubernetes API.
Cyphernetes is designed to translate quickly and with little friction from whiteboard to code.
A mixture of ascii-art, SQL-esque keywords and jsonPaths, Cyphernetes lets us express Kubernetes CRUD operations in an efficeint, creative and fun way.
Cyphernetes' superpower is that it understands the relationships between Kubernetes resource kinds.
This feature lets us express highly complex operations in a natural way, and without having to worry about the underlying Kubernetes API.
The more complicated an operation is, the shorter it's Cyphernetes representation would be compared to the equiavalent nested kubectl commands or API client code. Even highly complicated operations can usually be expressed in a single line of Cyphernetes.
Install
go install github.com/avitaltamir/cyphernetes/cmd/cyphernetes@latest
Usage
Please see the Usage Instructions to learn how to use Cyphernetes.
Development
Cyphernetes is written in Go and utilizes a parser generated by goyacc to interpret the custom query language.
Prerequisites
- Go (1.16 or later)
- goyacc (for generating the parser)
- Make (for running make commands)
Getting Started
To get started with development:
Clone the repository:
git clone https://github.com/avitaltamir/cyphernetes.git
Navigate to the project directory:
cd cyphernetes
Building the Project
Use the Makefile commands to build the project:
make
make build
make test
- To generate the grammar parser:
make gen-parser
make clean
Contributing
Contributions are welcome! Please feel free to submit pull requests, open issues, and provide feedback.
License
Cyphernetes is open-sourced under the MIT license. See the LICENSE file for details.
Acknowledgments
- Thanks to the Neo4j community for the inspiration behind the query language.
Authors