/crdtools

Custom Resource Definition Tools

Primary LanguageJavaApache License 2.0Apache-2.0

crdtools

NOTE: This project is currently in early stages of development. Things will change without warning and might not work.

crdtools is a java library that provides functionality related to Kubernetes Custom Resource Definitions. The first planned piece of functionality is to generate source code to java classes that corresponds to the types defined in a CustomResourceDefinition objects. Instances of the generated classes can then be used to create objects which can then be serialised to their yaml representation and applied to a kubernetes cluster.

How to build and develop

This software is built using bazel. The recommended way is to download and install bazelisk which will download and install the correct version behind as needed. Once this is installed, the current entrypoint can be built and executed by issuing bazel run //src/main/java/com/gs/crdtools:SourceGenerator on the command line.

The development tooling we use is Intellij Idea Community Edition with the bazel plugin. Please note that to be able to run the latest intellij, the beta version of the bazel plugin will need to be installed. This is done by navigating to Preferences -> Plugins then click the cogwheel and choose "Manage Plugin Repositories". Add https://plugins.jetbrains.com/plugins/beta/list to the list of repositories. After this is done, the bazel plugin compatible with recent IntelliJ versions should be available by clicking "Marketplace" in the Plugins and searching for Bazel. This has been tested with IntelliJ Idea Community 2022.1.2.

Credits and Authors

  • For a list of contributors to crdtools, please see the AUTHORS.md file.
  • Special acknowledgments and external contributions are listed in the CREDITS.md file.

License

Apache License 2.0, see LICENSE file.