Skip to content

Commit

Permalink
Add operator status condition metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathan-innis committed Jul 9, 2024
1 parent 6a01acc commit 86a050d
Show file tree
Hide file tree
Showing 31 changed files with 79 additions and 37 deletions.
2 changes: 2 additions & 0 deletions cmd/controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ func main() {

op.
WithControllers(ctx, corecontrollers.NewControllers(
op.Manager,
op.Clock,
op.GetClient(),
op.EventRecorder,
Expand All @@ -52,6 +53,7 @@ func main() {
WithWebhooks(ctx, corewebhooks.NewWebhooks()...).
WithControllers(ctx, controllers.NewControllers(
ctx,
op.Manager,
op.Session,
op.Clock,
op.GetClient(),
Expand Down
2 changes: 1 addition & 1 deletion hack/docgen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ AWS_SDK_GO_PROMETHEUS_DIR=$(go list -m -f '{{ .Dir }}' github.com/jonathan-innis
OPERATORPKG_DIR=$(go list -m -f '{{ .Dir }}' github.com/awslabs/operatorpkg)

compatibilitymatrix
go run hack/docs/metrics_gen_docs.go pkg/ "${KARPENTER_CORE_DIR}/pkg" "${CONTROLLER_RUNTIME_DIR}/pkg" "${AWS_SDK_GO_PROMETHEUS_DIR}" "${OPERATORPKG_DIR}/metrics" website/content/en/preview/reference/metrics.md
go run hack/docs/metrics_gen_docs.go pkg/ "${KARPENTER_CORE_DIR}/pkg" "${CONTROLLER_RUNTIME_DIR}/pkg" "${AWS_SDK_GO_PROMETHEUS_DIR}" "${OPERATORPKG_DIR}" website/content/en/preview/reference/metrics.md
go run hack/docs/instancetypes_gen_docs.go website/content/en/preview/reference/instance-types.md
go run hack/docs/configuration_gen_docs.go website/content/en/preview/reference/settings.md
cd charts/karpenter && helm-docs
21 changes: 12 additions & 9 deletions hack/docs/metrics_gen_docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,15 +176,16 @@ func bySubsystem(metrics []metricInfo) func(i int, j int) bool {
// Higher ordering comes first. If a value isn't designated here then the subsystem will be given a default of 0.
// Metrics without a subsystem come first since there is no designation for the bucket they fall under
subSystemSortOrder := map[string]int{
"": 100,
"nodepool": 10,
"nodeclaims": 9,
"nodes": 8,
"pods": 7,
"workqueue": -1,
"client_go": -1,
"aws_sdk_go": -1,
"leader_election": -2,
"": 100,
"nodepool": 10,
"nodeclaims": 9,
"nodes": 8,
"pods": 7,
"status_condition": -1,
"workqueue": -1,
"client_go": -1,
"aws_sdk_go": -1,
"leader_election": -2,
}

return func(i, j int) bool {
Expand Down Expand Up @@ -314,6 +315,8 @@ func getIdentMapping(identName string) (string, error) {
"metrics.Namespace": metrics.Namespace,
"Namespace": metrics.Namespace,

"MetricNamespace": "operator",
"MetricSubsystem": "status_condition",
"WorkQueueSubsystem": "workqueue",
"DepthKey": "depth",
"AddsKey": "adds_total",
Expand Down
3 changes: 2 additions & 1 deletion pkg/apis/v1/ec2nodeclass_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ package v1
import (
"context"

"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
"github.com/samber/lo"
"knative.dev/pkg/apis"

"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
)

func (in *EC2NodeClass) ConvertTo(ctx context.Context, to apis.Convertible) error {
Expand Down
3 changes: 2 additions & 1 deletion pkg/apis/v1/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ package v1_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
. "knative.dev/pkg/logging/testing"
Expand Down
3 changes: 2 additions & 1 deletion pkg/apis/v1beta1/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ package v1beta1_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

Expand Down
3 changes: 2 additions & 1 deletion pkg/cloudprovider/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@ import (
"context"
"fmt"
"net"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"strings"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/awslabs/operatorpkg/object"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
Expand Down
6 changes: 5 additions & 1 deletion pkg/controllers/controllers.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ import (
"context"

"github.com/awslabs/operatorpkg/controller"
"github.com/awslabs/operatorpkg/status"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/karpenter/pkg/cloudprovider"

"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
nodeclasshash "github.com/aws/karpenter-provider-aws/pkg/controllers/nodeclass/hash"
nodeclassstatus "github.com/aws/karpenter-provider-aws/pkg/controllers/nodeclass/status"
nodeclasstermination "github.com/aws/karpenter-provider-aws/pkg/controllers/nodeclass/termination"
Expand Down Expand Up @@ -50,7 +53,7 @@ import (
"github.com/aws/karpenter-provider-aws/pkg/providers/subnet"
)

func NewControllers(ctx context.Context, sess *session.Session, clk clock.Clock, kubeClient client.Client, recorder events.Recorder,
func NewControllers(ctx context.Context, mgr manager.Manager, sess *session.Session, clk clock.Clock, kubeClient client.Client, recorder events.Recorder,
unavailableOfferings *cache.UnavailableOfferings, cloudProvider cloudprovider.CloudProvider, subnetProvider subnet.Provider,
securityGroupProvider securitygroup.Provider, instanceProfileProvider instanceprofile.Provider, instanceProvider instance.Provider,
pricingProvider pricing.Provider, amiProvider amifamily.Provider, launchTemplateProvider launchtemplate.Provider, instanceTypeProvider instancetype.Provider) []controller.Controller {
Expand All @@ -63,6 +66,7 @@ func NewControllers(ctx context.Context, sess *session.Session, clk clock.Clock,
nodeclaimtagging.NewController(kubeClient, instanceProvider),
controllerspricing.NewController(pricingProvider),
controllersinstancetype.NewController(instanceTypeProvider),
status.NewController[*v1beta1.EC2NodeClass](kubeClient, mgr.GetEventRecorderFor("karpenter")),
}
if options.FromContext(ctx).InterruptionQueue != "" {
sqsapi := servicesqs.New(sess)
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/interruption/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ import (
"context"
"encoding/json"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
servicesqs "github.com/aws/aws-sdk-go/service/sqs"
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/nodeclaim/garbagecollection/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ package garbagecollection_test
import (
"context"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"sync"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/awslabs/operatorpkg/object"
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/nodeclaim/tagging/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ package tagging_test
import (
"context"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/samber/lo"
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/nodeclass/hash/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ package hash_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/awslabs/operatorpkg/object"
"github.com/imdario/mergo"
Expand Down
2 changes: 1 addition & 1 deletion pkg/controllers/nodeclass/status/ami_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ var _ = Describe("NodeClass AMI Status Controller", func() {
It("should get error when resolving AMIs and have status condition set to false", func() {
awsEnv.EC2API.NextError.Set(fmt.Errorf("unable to resolve AMI"))
ExpectApplied(ctx, env.Client, nodeClass)
ExpectObjectReconcileFailed(ctx, env.Client, statusController, nodeClass)
_ = ExpectObjectReconcileFailed(ctx, env.Client, statusController, nodeClass)
nodeClass = ExpectExists(ctx, env.Client, nodeClass)
Expect(nodeClass.StatusConditions().IsTrue(v1beta1.ConditionTypeAMIsReady)).To(BeFalse())
})
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/nodeclass/status/instanceprofile_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ package status_test
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/iam"
"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
"github.com/samber/lo"

"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"

"github.com/aws/karpenter-provider-aws/pkg/fake"
"github.com/aws/karpenter-provider-aws/pkg/operator/options"

Expand Down
1 change: 1 addition & 0 deletions pkg/controllers/nodeclass/status/subnet_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package status_test
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"

"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
"github.com/aws/karpenter-provider-aws/pkg/test"

Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/nodeclass/status/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ package status_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

coreoptions "sigs.k8s.io/karpenter/pkg/operator/options"
coretest "sigs.k8s.io/karpenter/pkg/test"

Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/nodeclass/termination/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ package termination_test
import (
"context"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/iam"
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/providers/instancetype/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ package instancetype_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

v1 "k8s.io/api/core/v1"
corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1"
coreoptions "sigs.k8s.io/karpenter/pkg/operator/options"
Expand Down
3 changes: 2 additions & 1 deletion pkg/controllers/providers/pricing/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ package pricing_test
import (
"context"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
awspricing "github.com/aws/aws-sdk-go/service/pricing"
Expand Down
4 changes: 3 additions & 1 deletion pkg/fake/cloudprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,16 @@ package fake

import (
"context"

"github.com/awslabs/operatorpkg/status"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

providerv1beta1 "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
"sigs.k8s.io/karpenter/pkg/apis/v1beta1"
corecloudprovider "sigs.k8s.io/karpenter/pkg/cloudprovider"
"sigs.k8s.io/karpenter/pkg/test"

providerv1beta1 "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
)

const (
Expand Down
3 changes: 2 additions & 1 deletion pkg/operator/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ package operator_test
import (
"context"
"errors"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/service/eks"
"github.com/samber/lo"

Expand Down
3 changes: 2 additions & 1 deletion pkg/providers/amifamily/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@ package amifamily_test
import (
"context"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"sort"
"sync"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"

Expand Down
3 changes: 2 additions & 1 deletion pkg/providers/instance/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ package instance_test
import (
"context"
"fmt"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/awslabs/operatorpkg/object"
Expand Down
3 changes: 2 additions & 1 deletion pkg/providers/instancetype/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@ import (
"math"
"net"
"reflect"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"sort"
"strings"
"sync"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/awslabs/operatorpkg/status"
Expand Down
3 changes: 2 additions & 1 deletion pkg/providers/launchtemplate/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ import (
"fmt"
"net"
"os"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"strconv"
"strings"
"testing"
"time"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/service/ec2"
Expand Down
3 changes: 2 additions & 1 deletion pkg/providers/securitygroup/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@ package securitygroup_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"sort"
"sync"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/samber/lo"
Expand Down
3 changes: 2 additions & 1 deletion pkg/providers/subnet/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@ package subnet_test

import (
"context"
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
"sort"
"sync"
"testing"

"sigs.k8s.io/karpenter/pkg/test/v1alpha1"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/samber/lo"
Expand Down
3 changes: 2 additions & 1 deletion pkg/webhooks/webhooks.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ import (
"knative.dev/pkg/webhook/resourcesemantics/defaulting"
"knative.dev/pkg/webhook/resourcesemantics/validation"

"github.com/awslabs/operatorpkg/object"

v1 "github.com/aws/karpenter-provider-aws/pkg/apis/v1"
"github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1"
"github.com/awslabs/operatorpkg/object"
)

var (
Expand Down
Loading

0 comments on commit 86a050d

Please sign in to comment.