aboutsummaryrefslogtreecommitdiffstats
path: root/kube2consul/src/kube2consul/types.go
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"`
}