mirror of https://github.com/portainer/portainer
78 lines
3.0 KiB
Go
78 lines
3.0 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"time"
|
|
|
|
corev1 "k8s.io/api/core/v1"
|
|
)
|
|
|
|
type K8sApplication struct {
|
|
ID string `json:"Id"`
|
|
Name string `json:"Name"`
|
|
Image string `json:"Image"`
|
|
Containers []interface{} `json:"Containers,omitempty"`
|
|
Services []corev1.Service `json:"Services"`
|
|
CreationDate time.Time `json:"CreationDate"`
|
|
ApplicationOwner string `json:"ApplicationOwner,omitempty"`
|
|
StackName string `json:"StackName,omitempty"`
|
|
ResourcePool string `json:"ResourcePool"`
|
|
ApplicationType string `json:"ApplicationType"`
|
|
Metadata *Metadata `json:"Metadata,omitempty"`
|
|
Status string `json:"Status"`
|
|
TotalPodsCount int `json:"TotalPodsCount"`
|
|
RunningPodsCount int `json:"RunningPodsCount"`
|
|
DeploymentType string `json:"DeploymentType"`
|
|
Pods []Pod `json:"Pods,omitempty"`
|
|
Configurations []Configuration `json:"Configurations,omitempty"`
|
|
LoadBalancerIPAddress string `json:"LoadBalancerIPAddress,omitempty"`
|
|
PublishedPorts []PublishedPort `json:"PublishedPorts,omitempty"`
|
|
Namespace string `json:"Namespace,omitempty"`
|
|
UID string `json:"Uid,omitempty"`
|
|
StackID string `json:"StackId,omitempty"`
|
|
ServiceID string `json:"ServiceId,omitempty"`
|
|
ServiceName string `json:"ServiceName,omitempty"`
|
|
ServiceType string `json:"ServiceType,omitempty"`
|
|
Kind string `json:"Kind,omitempty"`
|
|
MatchLabels map[string]string `json:"MatchLabels,omitempty"`
|
|
Labels map[string]string `json:"Labels,omitempty"`
|
|
Resource K8sApplicationResource `json:"Resource,omitempty"`
|
|
}
|
|
|
|
type Metadata struct {
|
|
Labels map[string]string `json:"labels"`
|
|
}
|
|
|
|
type Pod struct {
|
|
Status string `json:"Status"`
|
|
}
|
|
|
|
type Configuration struct {
|
|
Data map[string]interface{} `json:"Data,omitempty"`
|
|
Kind string `json:"Kind"`
|
|
ConfigurationOwner string `json:"ConfigurationOwner"`
|
|
}
|
|
|
|
type PublishedPort struct {
|
|
IngressRules []IngressRule `json:"IngressRules"`
|
|
Port int `json:"Port"`
|
|
}
|
|
|
|
type IngressRule struct {
|
|
Host string `json:"Host"`
|
|
IP string `json:"IP"`
|
|
Path string `json:"Path"`
|
|
TLS []TLSInfo `json:"TLS"`
|
|
}
|
|
|
|
type TLSInfo struct {
|
|
Hosts []string `json:"hosts"`
|
|
}
|
|
|
|
// Existing types
|
|
type K8sApplicationResource struct {
|
|
CPURequest float64 `json:"CpuRequest"`
|
|
CPULimit float64 `json:"CpuLimit"`
|
|
MemoryRequest int64 `json:"MemoryRequest"`
|
|
MemoryLimit int64 `json:"MemoryLimit"`
|
|
}
|