44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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"`
 | |
| }
 |