Skip to content

Commit

Permalink
Refactored expiration/utilization controller into node controller (#594)
Browse files Browse the repository at this point in the history
* Refactored expiration controller into node controller

* PR comments

* PR Comments
  • Loading branch information
ellistarn committed Aug 4, 2021
1 parent 91bb752 commit a53687e
Show file tree
Hide file tree
Showing 24 changed files with 534 additions and 849 deletions.
4 changes: 0 additions & 4 deletions cmd/controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ import (
"github.com/awslabs/karpenter/pkg/cloudprovider/registry"
"github.com/awslabs/karpenter/pkg/controllers"
"github.com/awslabs/karpenter/pkg/controllers/allocation"
"github.com/awslabs/karpenter/pkg/controllers/expiration"
"github.com/awslabs/karpenter/pkg/controllers/node"
"github.com/awslabs/karpenter/pkg/controllers/reallocation"
"github.com/awslabs/karpenter/pkg/controllers/termination"
"github.com/go-logr/zapr"
"k8s.io/apimachinery/pkg/runtime"
Expand Down Expand Up @@ -82,9 +80,7 @@ func main() {
HealthProbeBindAddress: fmt.Sprintf(":%d", options.HealthProbePort),
})
if err := manager.RegisterControllers(ctx,
expiration.NewController(manager.GetClient()),
allocation.NewController(manager.GetClient(), clientSet.CoreV1(), cloudProvider),
reallocation.NewController(manager.GetClient(), cloudProvider),
termination.NewController(ctx, manager.GetClient(), clientSet.CoreV1(), cloudProvider),
node.NewController(manager.GetClient()),
).Start(ctx); err != nil {
Expand Down
22 changes: 7 additions & 15 deletions pkg/apis/provisioning/v1alpha3/provisioner.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,28 +113,20 @@ var (
)

var (
// Well known, supported labels
// Well known labels
ArchitectureLabelKey = "kubernetes.io/arch"
OperatingSystemLabelKey = "kubernetes.io/os"

ZoneLabelKey = "topology.kubernetes.io/zone"
InstanceTypeLabelKey = "node.kubernetes.io/instance-type"
// Reserved labels
ProvisionerNameLabelKey = SchemeGroupVersion.Group + "/provisioner-name"
// Reserved taints
NotReadyTaintKey = SchemeGroupVersion.Group + "/not-ready"

// Reserved labels
ProvisionerNameLabelKey = SchemeGroupVersion.Group + "/provisioner-name"
ProvisionerUnderutilizedLabelKey = SchemeGroupVersion.Group + "/underutilized"

// Reserved annotations
KarpenterDoNotEvictPodAnnotation = SchemeGroupVersion.Group + "/do-not-evict"
ProvisionerTTLAfterEmptyKey = SchemeGroupVersion.Group + "/ttl-after-empty"

// Use ProvisionerSpec instead
ZoneLabelKey = "topology.kubernetes.io/zone"
InstanceTypeLabelKey = "node.kubernetes.io/instance-type"

DoNotEvictPodAnnotationKey = SchemeGroupVersion.Group + "/do-not-evict"
EmptinessTimestampAnnotationKey = SchemeGroupVersion.Group + "/emptiness-timestamp"
// Finalizers
TerminationFinalizer = SchemeGroupVersion.Group + "/termination"

// Default provisioner
DefaultProvisioner = types.NamespacedName{Name: "default"}
)
Expand Down
3 changes: 1 addition & 2 deletions pkg/apis/provisioning/v1alpha3/provisioner_validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ var (
ArchitectureLabelKey,
OperatingSystemLabelKey,
ProvisionerNameLabelKey,
ProvisionerUnderutilizedLabelKey,
ProvisionerTTLAfterEmptyKey,
EmptinessTimestampAnnotationKey,
ZoneLabelKey,
InstanceTypeLabelKey,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ var _ = Describe("Validation", func() {
ArchitectureLabelKey,
OperatingSystemLabelKey,
ProvisionerNameLabelKey,
ProvisionerUnderutilizedLabelKey,
ZoneLabelKey,
InstanceTypeLabelKey,
} {
Expand Down
2 changes: 1 addition & 1 deletion pkg/cloudprovider/aws/instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ func (p *InstanceProvider) getInstance(ctx context.Context, id *string, instance
}
*instance = *describeInstancesOutput.Reservations[0].Instances[0]
if len(aws.StringValue(instance.PrivateDnsName)) == 0 {
return fmt.Errorf("expected PrivateDnsName to be set")
return fmt.Errorf("got instance %s but PrivateDnsName was not set", aws.StringValue(instance.InstanceId))
}
return nil
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/controllers/allocation/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func (c *Controller) Reconcile(ctx context.Context, req reconcile.Request) (reco
logging.FromContext(ctx).Errorf("Provisioner \"%s\" not found. Create the \"default\" provisioner or specify an alternative using the nodeSelector %s", req.Name, v1alpha3.ProvisionerNameLabelKey)
return reconcile.Result{}, nil
}
return reconcile.Result{}, err
return result.RetryIfError(ctx, err)
}

// 2. Wait on a pod batch
Expand Down
119 changes: 0 additions & 119 deletions pkg/controllers/expiration/controller.go

This file was deleted.

115 changes: 0 additions & 115 deletions pkg/controllers/expiration/suite_test.go

This file was deleted.

0 comments on commit a53687e

Please sign in to comment.