blob: dfcc07294374540fe8073e3ce6e5100bbf6626f9 [file] [log] [blame]
option app_label = "kubernetes";
option name = "kubernetes";
message KubernetesService (Service){
option verbose_name = "Kubernetes Service";
}
message KubernetesResourceInstance (ServiceInstance){
option verbose_name = "Kubernetes Resource Instance";
option description = "An opaque-to-xos blob of yaml that is passed directly to kubectl";
optional string resource_definition = 3 [
help_text = "yaml containing kubernetes resources",
max_length = 65535];
optional string kubectl_state = 4 [
help_text = "Most recent kubectl action completed by synchronizer",
choices = "(('created', 'CREATED'), ('updated', 'UPDATED'), ('deleted', 'DELETED'))",
feedback_state = True,
max_length = 32];
}
message KubernetesServiceInstance (ComputeServiceInstance){
option verbose_name = "Kubernetes Service Instance";
option description = "A ComputeServiceInstance in kubernetes, usually in the form of a pod";
optional string pod_ip = 1 [
help_text = "IP address of pod",
max_length=32];
required bool need_event = 2 [
help_text = "True if a kafka event needs to be sent by the pull step",
default = False];
optional string last_event_sent = 3 [
help_text = "Type of last event sent",
choices = "(('created', 'CREATED'), ('updated', 'UPDATED'), ('deleted', 'DELETED'))",
max_length=32];
}
message KubernetesData (XOSBase) {
option description = "Base class for Kubernetes ConfigMaps, Secrets, and similar models";
required string name = 1 [
help_text = "Name of this data store",
max_length=256];
optional string data = 2 [
help_text = "Set of key,value pairs encoded as a json dictionary"];
required manytoone trust_domain->TrustDomain:kubernetes_configmaps = 3:1003 [
help_text = "Trust domain this data resides in",
db_index = True];
}
message KubernetesConfigMap (KubernetesData) {
option description = "A Kubernetes ConfigMap, holding (name, value) data in insecure manner";
}
message KubernetesSecret (KubernetesData) {
option description = "A kubernetes Secret, hodling (name, value) data in a secure manner";
}
message KubernetesSecretVolumeMount (XOSBase) {
option description = "Mounts a KubernetesSecret to a KubernetesServiceInstance";
required manytoone secret->KubernetesSecret:kubernetes_secret_volume_mounts = 1:1001 [
help_text = "Secret to mount",
db_index = True];
required manytoone service_instance->KubernetesServiceInstance:kubernetes_secret_volume_mounts = 2 [
help_text = "Service instance in which to mount secret",
db_index = True];
required string mount_path = 3 [
help_text = "Path to mount secret",
max_length=1024];
optional string sub_path = 4 [
help_text = "Subpath within secret to mount",
max_length=1024];
}
message KubernetesConfigVolumeMount (XOSBase) {
option description = "Mounts a KubernetesConfigMap to a KubernetesServiceInstance";
required manytoone config->KubernetesConfigMap:kubernetes_config_voume_mounts = 1:1001 [
help_text = "Config to mount",
db_index = True];
required manytoone service_instance->KubernetesServiceInstance:kubernetes_config_volume_mounts = 2:1001 [
help_text = "Service instance in which to mount config",
db_index = True];
required string mount_path = 3 [
help_text = "Path to mount secret",
max_length=1024];
optional string sub_path = 4 [
help_text = "Subpath within secret to mount",
max_length=1024];
}