mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-26 07:18:34 +08:00
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package ingress
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"pandax/base/global"
|
|
|
|
//v1 "k8s.io/api/extensions/v1beta1"
|
|
v1 "k8s.io/api/networking/v1beta1"
|
|
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
client "k8s.io/client-go/kubernetes"
|
|
)
|
|
|
|
// IngressDetail API resource provides mechanisms to inject containers with configuration data while keeping
|
|
// containers agnostic of Kubernetes
|
|
type IngressDetail struct {
|
|
// Extends list item structure.
|
|
Ingress `json:",inline"`
|
|
|
|
// Spec is the desired state of the Ingress.
|
|
Spec v1.IngressSpec `json:"spec"`
|
|
|
|
// Status is the current state of the Ingress.
|
|
Status v1.IngressStatus `json:"status"`
|
|
}
|
|
|
|
// GetIngressDetail returns detailed information about an ingress
|
|
func GetIngressDetail(client *client.Clientset, namespace, name string) (*IngressDetail, error) {
|
|
global.Log.Info(fmt.Sprintf("Getting details of %s ingress in %s namespace", name, namespace))
|
|
|
|
//rawIngress, err := client.ExtensionsV1beta1().Ingresses(namespace).Get(context.TODO(), name, metaV1.GetOptions{})
|
|
rawIngress, err := client.NetworkingV1beta1().Ingresses(namespace).Get(context.TODO(), name, metaV1.GetOptions{})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return getIngressDetail(rawIngress), nil
|
|
}
|
|
|
|
func getIngressDetail(i *v1.Ingress) *IngressDetail {
|
|
return &IngressDetail{
|
|
Ingress: toIngress(i),
|
|
Spec: i.Spec,
|
|
Status: i.Status,
|
|
}
|
|
}
|