Skip to content
This repository has been archived by the owner on Jan 8, 2024. It is now read-only.

Commit

Permalink
Merge pull request #3475 from hashicorp/bug/k8s/odr-runner-profile-name
Browse files Browse the repository at this point in the history
internal/server: Ensure task plugin is properly parsed when invoked
  • Loading branch information
briancain authored Jun 20, 2022
2 parents de3ffd1 + 8cad554 commit f9b5e91
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 20 deletions.
8 changes: 8 additions & 0 deletions .changelog/3475.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
```release-note:bug
plugin/k8s: Properly parse kubernetes task launcher config on plugin invoke.
```

```release-note:improvement
serverinstall/k8s: By default, do not set a mem or cpu limit or request for
the default runner profile installed.
```
16 changes: 8 additions & 8 deletions builtin/k8s/platform.go
Original file line number Diff line number Diff line change
Expand Up @@ -421,11 +421,11 @@ func configureContainer(
resourceRequests := make(map[corev1.ResourceName]k8sresource.Quantity)

if c.CPU != nil {
if c.CPU.Requested != "" {
q, err := k8sresource.ParseQuantity(c.CPU.Requested)
if c.CPU.Request != "" {
q, err := k8sresource.ParseQuantity(c.CPU.Request)
if err != nil {
return nil,
status.Errorf(codes.InvalidArgument, "failed to parse cpu request %s to k8s quantity: %s", c.CPU.Requested, err)
status.Errorf(codes.InvalidArgument, "failed to parse cpu request %s to k8s quantity: %s", c.CPU.Request, err)
}
resourceRequests[corev1.ResourceCPU] = q
}
Expand All @@ -441,11 +441,11 @@ func configureContainer(
}

if c.Memory != nil {
if c.Memory.Requested != "" {
q, err := k8sresource.ParseQuantity(c.Memory.Requested)
if c.Memory.Request != "" {
q, err := k8sresource.ParseQuantity(c.Memory.Request)
if err != nil {
return nil,
status.Errorf(codes.InvalidArgument, "failed to parse memory requested %s to k8s quantity: %s", c.Memory.Requested, err)
status.Errorf(codes.InvalidArgument, "failed to parse memory requested %s to k8s quantity: %s", c.Memory.Request, err)
}
resourceRequests[corev1.ResourceMemory] = q
}
Expand Down Expand Up @@ -1475,8 +1475,8 @@ type Config struct {
// ResourceConfig describes the request and limit of a resource. Used for
// cpu and memory resource configuration.
type ResourceConfig struct {
Requested string `hcl:"request,optional"`
Limit string `hcl:"limit,optional"`
Request string `hcl:"request,optional" json:"request"`
Limit string `hcl:"limit,optional" json:"limit"`
}

// AutoscaleConfig describes the possible configuration for creating a
Expand Down
12 changes: 6 additions & 6 deletions builtin/k8s/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -312,11 +312,11 @@ func (p *TaskLauncher) StartTask(
resourceRequests := make(map[corev1.ResourceName]k8sresource.Quantity)

if p.config.CPU != nil {
if p.config.CPU.Requested != "" {
q, err := k8sresource.ParseQuantity(p.config.CPU.Requested)
if p.config.CPU.Request != "" {
q, err := k8sresource.ParseQuantity(p.config.CPU.Request)
if err != nil {
return nil,
status.Errorf(codes.InvalidArgument, "failed to parse cpu request %q to k8s quantity: %s", p.config.CPU.Requested, err)
status.Errorf(codes.InvalidArgument, "failed to parse cpu request %q to k8s quantity: %s", p.config.CPU.Request, err)
}
resourceRequests[corev1.ResourceCPU] = q
}
Expand All @@ -332,11 +332,11 @@ func (p *TaskLauncher) StartTask(
}

if p.config.Memory != nil {
if p.config.Memory.Requested != "" {
q, err := k8sresource.ParseQuantity(p.config.Memory.Requested)
if p.config.Memory.Request != "" {
q, err := k8sresource.ParseQuantity(p.config.Memory.Request)
if err != nil {
return nil,
status.Errorf(codes.InvalidArgument, "failed to parse memory requested %q to k8s quantity: %s", p.config.Memory.Requested, err)
status.Errorf(codes.InvalidArgument, "failed to parse memory requested %q to k8s quantity: %s", p.config.Memory.Request, err)
}
resourceRequests[corev1.ResourceMemory] = q
}
Expand Down
1 change: 1 addition & 0 deletions internal/plugin/invoke.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ func Open(
return nil, nil, diags
}

// Only configure plugin config if it exists
if file.Body != nil {
diag := component.Configure(pi.Component, file.Body, hclCtx.NewChild())
if diag.HasErrors() {
Expand Down
17 changes: 11 additions & 6 deletions internal/serverinstall/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -1140,10 +1140,10 @@ func (i *K8sInstaller) OnDemandRunnerConfig() *pb.OnDemandRunnerConfig {
var cpuConfig k8s.ResourceConfig
var memConfig k8s.ResourceConfig
if v := i.config.cpuRequest; v != "" {
cpuConfig.Requested = v
cpuConfig.Request = v
}
if v := i.config.memRequest; v != "" {
memConfig.Requested = v
memConfig.Request = v
}
if v := i.config.cpuLimit; v != "" {
cpuConfig.Limit = v
Expand Down Expand Up @@ -1578,32 +1578,37 @@ func (i *K8sInstaller) InstallFlags(set *flag.Set) {
Default: "",
})

// NOTE(briancain): We set the default for these values to 0. In the k8s API,
// setting the limits and requests values to 0 is the same as not setting it all.
// This is the expected behavior we'll want. If someone _does_ set a value using
// these flags, they will be parsed and used instead.

set.StringVar(&flag.StringVar{
Name: "k8s-cpu-request",
Target: &i.config.cpuRequest,
Usage: "Configures the requested CPU amount for the Waypoint server in Kubernetes.",
Default: "100m",
Default: "0",
})

set.StringVar(&flag.StringVar{
Name: "k8s-mem-request",
Target: &i.config.memRequest,
Usage: "Configures the requested memory amount for the Waypoint server in Kubernetes.",
Default: "256Mi",
Default: "0",
})

set.StringVar(&flag.StringVar{
Name: "k8s-cpu-limit",
Target: &i.config.cpuLimit,
Usage: "Configures the CPU limit for the Waypoint server in Kubernetes.",
Default: "100m",
Default: "0",
})

set.StringVar(&flag.StringVar{
Name: "k8s-mem-limit",
Target: &i.config.memLimit,
Usage: "Configures the memory limit for the Waypoint server in Kubernetes.",
Default: "256Mi",
Default: "0",
})

set.StringVar(&flag.StringVar{
Expand Down

0 comments on commit f9b5e91

Please sign in to comment.