package main import ( "fmt" "html/template" "net/http" "os" log "github.com/kubernetes/klog" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" ) type NamespaceDetails struct { //namespace details struct Namespace []string } var templates = template.Must(template.ParseGlob("./*.html")) var microservice = "/microservice/" var detailed_view = "/detailed/" var kube_config_path = os.Getenv("HOME")+"/.kube/config" var config, _ = clientcmd.BuildConfigFromFlags("", kube_config_path) var clientset,_ = kubernetes.NewForConfig(config) var NamespaceClient, _ = clientset.CoreV1().Namespaces().List(v1.ListOptions{}) func main() { http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css")))) http.Handle("/jpeg/", http.StripPrefix("/jpeg/", http.FileServer(http.Dir("css")))) http.HandleFunc("/", Homepage) // calling homepage function at '/' url http.HandleFunc(microservice, Deployments) //calling Deployments function at '/microserivce/' url http.HandleFunc(detailed_view, DetailedView) // http.HandleFunc("/onlyme", onlyme) http.ListenAndServe(":8801", nil) // server runs at this port } func Homepage(w http.ResponseWriter, r *http.Request) { NamespaceStruct := NamespaceDetails{} for _, Namespaces := range NamespaceClient.Items { log.V(5).Info("inside namespace items loop in homepage") NamespaceStruct.Namespace = append(NamespaceStruct.Namespace, Namespaces.Name) } templates.ExecuteTemplate(w, "homepage2.html", NamespaceStruct) }當我嘗試運行此代碼時,它給出了錯誤:語法錯誤:意外文字“k8s.io/api/apps/v1”,預期類型我想使用 deploymnets 函數返回部署列表。我不知道要使用什么返回類型,以便我成功返回部署列表。
2 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
在導入中添加這一行
v2 "k8s.io/api/apps/v1"
并更新函數參數如下
func deployments(namespace string)(*v2.DeploymentList, error){
如果你在尋找 podslist/namespacelist
import v3 "k8s.io/api/core/v1"
和更新功能為,
func func_name (input paramteters)(*v3.NamespaceList/PodList , error){

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
這是無效的語法:
func deployments(namespace string)(*"k8s.io/api/apps/v1".DeploymentList, error){
這是正確的語法:
func deployments(namespace string)(*v1.DeploymentList, error){
但是,您已經v1
導入了另一個包,因此您必須使用不同的別名導入該包,并使用該名稱,
- 2 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消