1
0
mirror of https://github.com/rancher/rke.git synced 2025-07-18 17:31:05 +00:00
rke/services/services.go

36 lines
827 B
Go
Raw Normal View History

2017-10-29 09:45:21 +00:00
package services
import (
"fmt"
"net"
2017-10-29 09:45:21 +00:00
)
const (
ETCDRole = "etcd"
ControlRole = "controlplane"
WorkerRole = "worker"
2017-10-29 09:45:21 +00:00
KubeAPIContainerName = "kube-api"
KubeletContainerName = "kubelet"
KubeproxyContainerName = "kube-proxy"
KubeControllerContainerName = "kube-controller"
SchedulerContainerName = "scheduler"
EtcdContainerName = "etcd"
NginxProxyContainerName = "nginx-proxy"
2017-10-29 09:45:21 +00:00
)
func GetKubernetesServiceIP(serviceClusterRange string) (net.IP, error) {
ip, ipnet, err := net.ParseCIDR(serviceClusterRange)
2017-10-29 09:45:21 +00:00
if err != nil {
return nil, fmt.Errorf("Failed to get kubernetes service IP from Kube API option [service_cluster_ip_range]: %v", err)
2017-10-29 09:45:21 +00:00
}
ip = ip.Mask(ipnet.Mask)
for j := len(ip) - 1; j >= 0; j-- {
ip[j]++
if ip[j] > 0 {
break
2017-10-29 09:45:21 +00:00
}
}
return ip, nil
2017-10-29 09:45:21 +00:00
}