| 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]; |
| } |
| |