blob: ea218e99f58bb8edde4b0ca543eaaa779ced9c71 [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'))",
db_index = False,
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",
blank = True,
db_index = False,
max_length=32,
null = True];
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",
blank = True,
choices = "(('created', 'CREATED'), ('updated', 'UPDATED'), ('deleted', 'DELETED'))",
db_index = False,
max_length=32,
null = True];
}
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",
db_index = False,
max_length=256];
optional string data = 2 [
help_text = "Set of key,value pairs encoded as a json dictionary",
db_index = False];
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",
blank = False,
db_index = True,
null = False];
required manytoone service_instance->KubernetesServiceInstance:kubernetes_secret_volume_mounts = 2 [
help_text = "Service instance in which to mount secret",
blank = False,
db_index = True,
null = False];
required string mount_path = 3 [
help_text = "Path to mount secret",
db_index = False,
max_length=1024];
optional string sub_path = 4 [
help_text = "Subpath within secret to mount",
db_index = False,
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",
blank = False,
db_index = True,
null = False];
required manytoone service_instance->KubernetesServiceInstance:kubernetes_config_volume_mounts = 2:1001 [
help_text = "Service instance in which to mount config",
blank = False,
db_index = True,
null = False];
required string mount_path = 3 [
help_text = "Path to mount secret",
db_index = False,
max_length=1024];
optional string sub_path = 4 [
help_text = "Subpath within secret to mount",
db_index = False,
max_length=1024];
}