Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5991b29f76 | ||
|
|
0dbc88826c | ||
|
|
966c76368f | ||
|
|
a6bab6e3bb |
@@ -75,6 +75,7 @@ type ACIProvider struct {
|
||||
networkProfile string
|
||||
kubeProxyExtension *aci.Extension
|
||||
kubeDNSIP string
|
||||
extraUserAgent string
|
||||
|
||||
metricsSync sync.Mutex
|
||||
metricsSyncTime time.Time
|
||||
@@ -196,7 +197,9 @@ func NewACIProvider(config string, rm *manager.ResourceManager, nodeName, operat
|
||||
azAuth.SubscriptionID = subscriptionID
|
||||
}
|
||||
|
||||
p.aciClient, err = aci.NewClient(azAuth)
|
||||
p.extraUserAgent = os.Getenv("ACI_EXTRA_USER_AGENT")
|
||||
|
||||
p.aciClient, err = aci.NewClient(azAuth, p.extraUserAgent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -315,7 +318,7 @@ func NewACIProvider(config string, rm *manager.ResourceManager, nodeName, operat
|
||||
}
|
||||
|
||||
func (p *ACIProvider) setupNetworkProfile(auth *client.Authentication) error {
|
||||
c, err := network.NewClient(auth)
|
||||
c, err := network.NewClient(auth, p.extraUserAgent)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error creating azure networking client: %v", err)
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@ import (
|
||||
|
||||
const (
|
||||
// BaseURI is the default URI used for compute services.
|
||||
baseURI = "https://management.azure.com"
|
||||
userAgent = "virtual-kubelet/azure-arm-aci/2018-09-01"
|
||||
apiVersion = "2018-09-01"
|
||||
baseURI = "https://management.azure.com"
|
||||
defaultUserAgent = "virtual-kubelet/azure-arm-aci/2018-09-01"
|
||||
apiVersion = "2018-09-01"
|
||||
|
||||
containerGroupURLPath = "subscriptions/{{.subscriptionId}}/resourceGroups/{{.resourceGroup}}/providers/Microsoft.ContainerInstance/containerGroups/{{.containerGroupName}}"
|
||||
containerGroupListURLPath = "subscriptions/{{.subscriptionId}}/providers/Microsoft.ContainerInstance/containerGroups"
|
||||
@@ -34,12 +34,17 @@ type Client struct {
|
||||
auth *azure.Authentication
|
||||
}
|
||||
|
||||
// NewClient creates a new Azure Container Instances client.
|
||||
func NewClient(auth *azure.Authentication) (*Client, error) {
|
||||
// NewClient creates a new Azure Container Instances client with extra user agent.
|
||||
func NewClient(auth *azure.Authentication, extraUserAgent string) (*Client, error) {
|
||||
if auth == nil {
|
||||
return nil, fmt.Errorf("Authentication is not supplied for the Azure client")
|
||||
}
|
||||
|
||||
userAgent := []string{defaultUserAgent}
|
||||
if extraUserAgent != "" {
|
||||
userAgent = append(userAgent, extraUserAgent)
|
||||
}
|
||||
|
||||
client, err := azure.NewClient(auth, baseURI, userAgent)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Creating Azure client failed: %v", err)
|
||||
|
||||
@@ -39,7 +39,7 @@ func TestMain(m *testing.M) {
|
||||
subscriptionID = auth.SubscriptionID
|
||||
|
||||
// Check if the resource group exists and create it if not.
|
||||
rgCli, err := resourcegroups.NewClient(auth)
|
||||
rgCli, err := resourcegroups.NewClient(auth, "unit-test")
|
||||
if err != nil {
|
||||
log.Fatalf("creating new resourcegroups client failed: %v", err)
|
||||
}
|
||||
@@ -82,7 +82,7 @@ func TestNewClient(t *testing.T) {
|
||||
log.Fatalf("Failed to load Azure authentication file: %v", err)
|
||||
}
|
||||
|
||||
c, err := NewClient(auth)
|
||||
c, err := NewClient(auth, "unit-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@ type BearerAuthorizer struct {
|
||||
}
|
||||
|
||||
type userAgentTransport struct {
|
||||
userAgent string
|
||||
userAgent []string
|
||||
base http.RoundTripper
|
||||
client *Client
|
||||
}
|
||||
|
||||
// NewClient creates a new Azure API client from an Authentication struct and BaseURI.
|
||||
func NewClient(auth *Authentication, baseURI string, userAgent string) (*Client, error) {
|
||||
func NewClient(auth *Authentication, baseURI string, userAgent []string) (*Client, error) {
|
||||
resource, err := getResourceForToken(auth, baseURI)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Getting resource for token failed: %v", err)
|
||||
@@ -52,9 +52,16 @@ func NewClient(auth *Authentication, baseURI string, userAgent string) (*Client,
|
||||
|
||||
client.BearerAuthorizer = &BearerAuthorizer{tokenProvider: tp}
|
||||
|
||||
nonEmptyUserAgent := userAgent[:0]
|
||||
for _, ua := range userAgent {
|
||||
if ua != "" {
|
||||
nonEmptyUserAgent = append(nonEmptyUserAgent, ua)
|
||||
}
|
||||
}
|
||||
|
||||
uat := userAgentTransport{
|
||||
base: http.DefaultTransport,
|
||||
userAgent: userAgent,
|
||||
userAgent: nonEmptyUserAgent,
|
||||
client: client,
|
||||
}
|
||||
|
||||
@@ -77,7 +84,7 @@ func (t userAgentTransport) RoundTrip(req *http.Request) (*http.Response, error)
|
||||
}
|
||||
|
||||
// Add the user agent header.
|
||||
newReq.Header["User-Agent"] = []string{t.userAgent}
|
||||
newReq.Header["User-Agent"] = []string{strings.Join(t.userAgent, " ")}
|
||||
|
||||
// Add the content-type header.
|
||||
newReq.Header["Content-Type"] = []string{"application/json"}
|
||||
|
||||
@@ -11,9 +11,9 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
baseURI = "https://management.azure.com"
|
||||
userAgent = "virtual-kubelet/azure-arm-networking/2018-07-01"
|
||||
apiVersion = "2018-07-01"
|
||||
baseURI = "https://management.azure.com"
|
||||
defaultUserAgent = "virtual-kubelet/azure-arm-network/2018-08-01"
|
||||
apiVersion = "2018-08-01"
|
||||
)
|
||||
|
||||
// Client is a client for interacting with Azure networking
|
||||
@@ -25,11 +25,16 @@ type Client struct {
|
||||
}
|
||||
|
||||
// NewClient creates a new client for interacting with azure networking
|
||||
func NewClient(azAuth *azure.Authentication) (*Client, error) {
|
||||
func NewClient(azAuth *azure.Authentication, extraUserAgent string) (*Client, error) {
|
||||
if azAuth == nil {
|
||||
return nil, fmt.Errorf("Authentication is not supplied for the Azure client")
|
||||
}
|
||||
|
||||
userAgent := []string{defaultUserAgent}
|
||||
if extraUserAgent != "" {
|
||||
userAgent = append(userAgent, extraUserAgent)
|
||||
}
|
||||
|
||||
client, err := azure.NewClient(azAuth, baseURI, userAgent)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Creating Azure client failed: %v", err)
|
||||
|
||||
@@ -27,7 +27,7 @@ func TestMain(m *testing.M) {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
c, err := resourcegroups.NewClient(testAuth)
|
||||
c, err := resourcegroups.NewClient(testAuth, "unit-test")
|
||||
if err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
@@ -68,7 +68,7 @@ func newTestClient(t *testing.T) *Client {
|
||||
if err := setupAuth(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
c, err := NewClient(testAuth)
|
||||
c, err := NewClient(testAuth, "unit-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
const (
|
||||
// BaseURI is the default URI used for compute services.
|
||||
BaseURI = "https://management.azure.com"
|
||||
userAgent = "virtual-kubelet/azure-arm-resourcegroups/2017-12-01"
|
||||
apiVersion = "2017-08-01"
|
||||
BaseURI = "https://management.azure.com"
|
||||
defaultUserAgent = "virtual-kubelet/azure-arm-resourcegroups/2017-12-01"
|
||||
apiVersion = "2017-08-01"
|
||||
|
||||
resourceGroupURLPath = "subscriptions/{{.subscriptionId}}/resourcegroups/{{.resourceGroupName}}"
|
||||
)
|
||||
@@ -26,11 +26,16 @@ type Client struct {
|
||||
}
|
||||
|
||||
// NewClient creates a new Azure resource groups client.
|
||||
func NewClient(auth *azure.Authentication) (*Client, error) {
|
||||
func NewClient(auth *azure.Authentication, extraUserAgent string) (*Client, error) {
|
||||
if auth == nil {
|
||||
return nil, fmt.Errorf("Authentication is not supplied for the Azure client")
|
||||
}
|
||||
|
||||
userAgent := []string{defaultUserAgent}
|
||||
if extraUserAgent != "" {
|
||||
userAgent = append(userAgent, extraUserAgent)
|
||||
}
|
||||
|
||||
client, err := azure.NewClient(auth, BaseURI, userAgent)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Creating Azure client failed: %v", err)
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestNewClient(t *testing.T) {
|
||||
t.Fatalf("Failed to load Azure authentication file: %v", err)
|
||||
}
|
||||
|
||||
c, err := NewClient(auth)
|
||||
c, err := NewClient(auth, "unit-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -30,11 +30,10 @@ func (s *Server) onAddPod(ctx context.Context, obj interface{}) {
|
||||
defer span.End()
|
||||
logger := log.G(ctx).WithField("method", "onAddPod")
|
||||
|
||||
pod := obj.(*corev1.Pod)
|
||||
|
||||
if pod == nil {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %v", obj)})
|
||||
logger.Errorf("obj is not a valid pod: %v", obj)
|
||||
pod, ok := obj.(*corev1.Pod)
|
||||
if !ok {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %T", obj)})
|
||||
logger.Errorf("obj is not of a valid type: %T", obj)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -53,11 +52,10 @@ func (s *Server) onUpdatePod(ctx context.Context, obj interface{}) {
|
||||
defer span.End()
|
||||
logger := log.G(ctx).WithField("method", "onUpdatePod")
|
||||
|
||||
pod := obj.(*corev1.Pod)
|
||||
|
||||
if pod == nil {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %v", obj)})
|
||||
logger.Errorf("obj is not a valid pod: %v", obj)
|
||||
pod, ok := obj.(*corev1.Pod)
|
||||
if !ok {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %T", obj)})
|
||||
logger.Errorf("obj is not of a valid type: %T", obj)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -76,12 +74,20 @@ func (s *Server) onDeletePod(ctx context.Context, obj interface{}) {
|
||||
defer span.End()
|
||||
logger := log.G(ctx).WithField("method", "onDeletePod")
|
||||
|
||||
pod := obj.(*corev1.Pod)
|
||||
pod, ok := obj.(*corev1.Pod)
|
||||
if !ok {
|
||||
delta, ok := obj.(cache.DeletedFinalStateUnknown)
|
||||
if !ok {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %T", obj)})
|
||||
logger.Errorf("obj is not of a valid type: %T", obj)
|
||||
return
|
||||
}
|
||||
|
||||
if pod == nil {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %v", obj)})
|
||||
logger.Errorf("obj is not a valid pod: %v", obj)
|
||||
return
|
||||
if pod, ok = delta.Obj.(*corev1.Pod); !ok {
|
||||
span.SetStatus(trace.Status{Code: trace.StatusCodeInvalidArgument, Message: fmt.Sprintf("Unexpected object from event: %T", obj)})
|
||||
logger.Errorf("obj is not of a valid type: %T", obj)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
addPodAttributes(span, pod)
|
||||
|
||||
Reference in New Issue
Block a user