Skip to content

Commit

Permalink
refactor: 💡 don't lookup oldest unless neeeded (#614)
Browse files Browse the repository at this point in the history
* refactor: 💡 don't lookup oldest unless neeeded
  • Loading branch information
jaskaransarkaria authored Aug 29, 2024
1 parent 28268c7 commit c4d809a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 31 deletions.
31 changes: 11 additions & 20 deletions pkg/cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ type AwsCredentials struct {

// NewCluster creates a new Cluster object and populates its
// fields with the values from the Kubernetes cluster in the client passed to it.
func NewCluster(c *client.KubeClient) (*Cluster, error) {
func NewCluster(c *client.KubeClient, recycleOldest bool) (*Cluster, error) {
oldNode := v1.Node{}

pods, err := getPods(c)
if err != nil {
return nil, err
Expand All @@ -62,9 +64,13 @@ func NewCluster(c *client.KubeClient) (*Cluster, error) {
return nil, err
}

oldestNode, err := oldestNode(nodes)
if err != nil {
return nil, err
if recycleOldest {
n, err := oldestNode(nodes)
if err != nil {
return nil, err
}

oldNode = n
}

newestNode, err := GetNewestNode(c, nodes)
Expand All @@ -76,7 +82,7 @@ func NewCluster(c *client.KubeClient) (*Cluster, error) {
Name: nodes[0].Labels["Cluster"],
Pods: pods,
Nodes: nodes,
OldestNode: oldestNode,
OldestNode: oldNode,
NewestNode: newestNode,
}, nil
}
Expand All @@ -100,18 +106,3 @@ func NewAwsCreds(region string) (*AwsCredentials, error) {
Region: region,
}, nil
}

// RefreshStatus performs a value overwrite of the cluster status.
// This is useful for when the cluster is being updated.
func (c *Cluster) RefreshStatus(client *client.KubeClient) (err error) {
c.Nodes, err = GetAllNodes(client)
if err != nil {
return err
}

c.OldestNode, err = getOldestNode(client)
if err != nil {
return err
}
return nil
}
10 changes: 0 additions & 10 deletions pkg/cluster/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,6 @@ func GetAllNodes(c *client.KubeClient) ([]v1.Node, error) {
return n, nil
}

func getOldestNode(c *client.KubeClient) (v1.Node, error) {
nodes, err := GetAllNodes(c)
if err != nil {
return v1.Node{}, err
}

return oldestNode(nodes)
}

// oldestNode takes a slice of nodes and returns the oldest node
func oldestNode(nodes []v1.Node) (v1.Node, error) {
oldestNode := nodes[0]
for _, node := range nodes {
Expand Down
2 changes: 1 addition & 1 deletion pkg/commands/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -525,7 +525,7 @@ var clusterRecycleNodeCmd = &cobra.Command{
Options: &opt,
}

recycle.Cluster, err = cloudPlatform.NewCluster(recycle.Client)
recycle.Cluster, err = cloudPlatform.NewCluster(recycle.Client, opt.Oldest)
if err != nil {
contextLogger.Fatal(err)
}
Expand Down

0 comments on commit c4d809a

Please sign in to comment.