package client // Kubernetes client type Kubernetes interface { // UpdateDeployment patches deployment annotations with new metadata UpdateDeployment(string, interface{}) error // ListDeployments lists all micro deployments ListDeployments(labels map[string]string) (*DeploymentList, error) } // Template is micro deployment template type Template struct { Metadata *Metadata `json:"metadata,omitempty"` } // Spec defines micro deployment spec type Spec struct { Template *Template `json:"template,omitempty"` } // Metadata defines api request metadata type Metadata struct { Name string `json:"name,omitempty"` Labels map[string]string `json:"labels,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` } // DeploymentList type DeploymentList struct { Items []Deployment `json:"items"` } // Deployment is Kubernetes deployment type Deployment struct { Metadata *Metadata `json:"metadata"` Status *Status `json:"status"` } // Status is Kubernetes deployment status type Status struct { Replicas int `json:"replicas"` AvailableReplicas int `json:"availablereplicas"` }