Enable kubectl logs po
This commit is contained in:
50
vkubelet/apiserver.go
Normal file
50
vkubelet/apiserver.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package vkubelet
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
//"k8s.io/api/core/v1"
|
||||
)
|
||||
|
||||
func ApiServerStart() error {
|
||||
http.HandleFunc("/", HelloServer)
|
||||
certValue64 := os.Getenv("APISERVER_CERT")
|
||||
keyValue64 := os.Getenv("APISERVER_KEY")
|
||||
certValue, err := base64.StdEncoding.DecodeString(certValue64)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
keyValue, err := base64.StdEncoding.DecodeString(keyValue64)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
cert := []byte(certValue)
|
||||
key := []byte(keyValue)
|
||||
certFilePath := "cert.pem"
|
||||
keyFilePath := "key.pem"
|
||||
err = ioutil.WriteFile(certFilePath, cert, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
err = ioutil.WriteFile(keyFilePath, key, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
err = http.ListenAndServeTLS(":10250", certFilePath, keyFilePath, nil)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func HelloServer(w http.ResponseWriter, req *http.Request) {
|
||||
log.Println("handler called")
|
||||
///containerLogs/{namespace}/{pd}/{container}
|
||||
log.Println(req)
|
||||
io.WriteString(w, "ack!\n")
|
||||
}
|
||||
@@ -24,7 +24,10 @@ type Provider interface {
|
||||
// GetPod retrieves a pod by name from the provider (can be cached).
|
||||
GetPod(namespace, name string) (*v1.Pod, error)
|
||||
|
||||
// GetPodStatus retrievesthe status of a pod by name from the provider.
|
||||
// GetPodLogs retrieves the logs of a pod by name from the provider.
|
||||
GetPodLogs(namespace, name string) (string, error)
|
||||
|
||||
// GetPodStatus retrieves the status of a pod by name from the provider.
|
||||
GetPodStatus(namespace, name string) (*v1.PodStatus, error)
|
||||
|
||||
// GetPods retrieves a list of all pods running on the provider (can be cached).
|
||||
@@ -37,6 +40,10 @@ type Provider interface {
|
||||
// within Kuberentes.
|
||||
NodeConditions() []v1.NodeCondition
|
||||
|
||||
// NodeAddresses returns a list of addresses for the node status
|
||||
// within Kuberentes.
|
||||
NodeAddresses() []v1.NodeAddress
|
||||
|
||||
// OperatingSystem returns the operating system the provider is for.
|
||||
OperatingSystem() string
|
||||
}
|
||||
|
||||
@@ -60,11 +60,14 @@ func New(nodeName, operatingSystem, namespace, kubeConfig, taint, provider, prov
|
||||
}
|
||||
|
||||
rm := manager.NewResourceManager(clientset)
|
||||
go ApiServerStart()
|
||||
log.Println("vkubelet apiserver started")
|
||||
|
||||
var p Provider
|
||||
switch provider {
|
||||
case "azure":
|
||||
p, err = azure.NewACIProvider(providerConfig, rm, nodeName, operatingSystem)
|
||||
internalIP := os.Getenv("VKUBELET_POD_IP")
|
||||
p, err = azure.NewACIProvider(providerConfig, rm, nodeName, operatingSystem, internalIP)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -136,6 +139,7 @@ func (s *Server) registerNode() error {
|
||||
Capacity: s.provider.Capacity(),
|
||||
Allocatable: s.provider.Capacity(),
|
||||
Conditions: s.provider.NodeConditions(),
|
||||
Addresses: s.provider.NodeAddresses(),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user