This repository contains the Protocol Buffer (protobuf) definitions for the PredictKube project.
PredictKube Proto defines the data structures and service interfaces used for communication between different components of the PredictKube system. It uses Protocol Buffers for efficient serialization and gRPC for service definitions.
The project is organized as follows:
-
proto/
: Contains all the.proto
files defining messages and servicescommonproto/
: Common message definitionsenums/
: Enumeration definitionsevents/
: Event-related message definitionshealth/
: Health check protocol definitionsservices/
: Service interface definitions
-
external/
: Generated Go code from the protobuf definitions
- Auth Service: Handles client management, cluster operations, and authentication
- Provider Service: Manages metrics retrieval and raw query operations
- ML Engine Service: Provides machine learning predictions
- Gateway Saver Service: Handles metric storage and retrieval
We use .tool-versions
file to specify the versions of tools to use.
You can use either mise-en-place
or asdf to install the correct versions of tools.
To generate Go code from the protobuf definitions, use the following command:
make gen-proto
This will generate the Go files in the external/
directory.
To add custom tags to the generated Go files, run:
make add-tags
This uses protoc-go-inject-tag to add custom tags to the generated structs.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributions to PredictKube Proto are welcome. Please ensure that you update the protobuf definitions and regenerate the Go code before submitting a pull request.
For any questions or concerns, please open an issue in this repository.