blob: 0105d9813037fbe202865a0bc5ad922e6299b481 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/*
Copyright 2017 ZTE, Inc. and others.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// types.go
package main
import (
kapi "k8s.io/kubernetes/pkg/api"
)
type KubeWorkAction string
const (
KubeWorkAddNode KubeWorkAction = "AddNode"
KubeWorkRemoveNode KubeWorkAction = "RemoveNode"
KubeWorkUpdateNode KubeWorkAction = "UpdateNode"
KubeWorkAddService KubeWorkAction = "AddService"
KubeWorkRemoveService KubeWorkAction = "RemoveService"
KubeWorkUpdateService KubeWorkAction = "UpdateService"
KubeWorkAddPod KubeWorkAction = "AddPod"
KubeWorkRemovePod KubeWorkAction = "RemovePod"
KubeWorkUpdatePod KubeWorkAction = "UpdatePod"
KubeWorkSync KubeWorkAction = "Sync"
)
type KubeWork struct {
Action KubeWorkAction
Node *kapi.Node
Service *kapi.Service
Pod *kapi.Pod
}
type ConsulWorkAction string
const (
ConsulWorkAddService ConsulWorkAction = "AddService"
ConsulWorkRemoveService ConsulWorkAction = "RemoveService"
ConsulWorkAddPod ConsulWorkAction = "AddPod"
ConsulWorkRemovePod ConsulWorkAction = "RemovePod"
ConsulWorkSyncDNS ConsulWorkAction = "SyncDNS"
)
type ConsulWork struct {
Action ConsulWorkAction
Service *kapi.Service
Pod *kapi.Pod
Config DnsInfo
}
type DnsInfo struct {
BaseID string
IPAddress string
ServiceType kapi.ServiceType
}
type ServiceInfo struct {
Name string
Tags string
Labels string
MData string
NS string
TTL string
HTTP string
TCP string
CMD string
Script string
Timeout string
Interval string
IPs []PodIP
}
type PdmPodIPInfo struct {
Pod PodIPInfo `json:"pod"`
}
type PodIPInfo struct {
Name string `json:"name"`
IPs []PodIP `json:"ips"`
}
type PodIP struct {
NetworkPlane string `json:"network_plane_name"`
IPAddress string `json:"ip_address"`
}
|