ingpoint

Форк
0
/
main.go 
66 строк · 1.4 Кб
1
package main
2

3
import (
4
	"context"
5
	"flag"
6
	"fmt"
7
	"log"
8
	"path/filepath"
9
	"sort"
10

11
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12
	"k8s.io/client-go/kubernetes"
13
	"k8s.io/client-go/tools/clientcmd"
14
	"k8s.io/client-go/util/homedir"
15
)
16

17
func main() {
18
	var kubeconfig *string
19
	if home := homedir.HomeDir(); home != "" {
20
		kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
21
	} else {
22
		kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file")
23
	}
24
	flag.Parse()
25

26
	// use the current context in kubeconfig
27
	config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
28
	if err != nil {
29
		panic(err.Error())
30
	}
31

32
	// create the clientset
33
	clientset, err := kubernetes.NewForConfig(config)
34
	if err != nil {
35
		panic(err.Error())
36
	}
37

38
	// get ingresses hosts
39
	ingresses, err := clientset.NetworkingV1().Ingresses("").List(context.Background(), metav1.ListOptions{})
40
	if err != nil {
41
		log.Fatal(err)
42
	}
43

44
	uniqueHosts := make(map[string]bool)
45

46
	for _, ingress := range ingresses.Items {
47
		for _, rule := range ingress.Spec.Rules {
48
			uniqueHosts[rule.Host] = true
49
		}
50
	}
51

52
	hosts := make([]string, 0, len(uniqueHosts))
53

54
	for host := range uniqueHosts {
55
		hosts = append(hosts, host)
56
	}
57
	sort.Strings(hosts)
58

59
	for _, host := range hosts {
60
		fmt.Println(host)
61
	}
62

63
	if len(uniqueHosts) == 0 {
64
		fmt.Println("No ingress resources found")
65
	}
66
}
67

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.