Skip to content

Commit

Permalink
refactor: adjust changes to main-v5 branch
Browse files Browse the repository at this point in the history
  • Loading branch information
ejose19 committed May 15, 2021
1 parent c1c1524 commit 13af0df
Show file tree
Hide file tree
Showing 10 changed files with 99 additions and 87 deletions.
4 changes: 2 additions & 2 deletions cmd/cluster/clusterCreate.go
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,7 @@ func applyCLIOverrides(cfg conf.SimpleConfig) (conf.SimpleConfig, error) {
}

for label, nodeFilters := range k3sNodeLabelFilterMap {
cfg.K3sNodeLabels = append(cfg.K3sNodeLabels, conf.LabelWithNodeFilters{
cfg.Options.K3sOptions.NodeLabels = append(cfg.Options.K3sOptions.NodeLabels, conf.LabelWithNodeFilters{
Label: label,
NodeFilters: nodeFilters,
})
Expand Down Expand Up @@ -532,7 +532,7 @@ func applyCLIOverrides(cfg conf.SimpleConfig) (conf.SimpleConfig, error) {
}

for label, nodeFilters := range runtimeLabelFilterMap {
cfg.RuntimeLabels = append(cfg.RuntimeLabels, conf.LabelWithNodeFilters{
cfg.Options.Runtime.Labels = append(cfg.Options.Runtime.Labels, conf.LabelWithNodeFilters{
Label: label,
NodeFilters: nodeFilters,
})
Expand Down
26 changes: 14 additions & 12 deletions pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,6 @@ func TestReadSimpleConfig(t *testing.T) {
NodeFilters: []string{"loadbalancer"},
},
},
K3sNodeLabels: []conf.LabelWithNodeFilters{
{
Label: "foo=bar",
NodeFilters: []string{"server[0]", "loadbalancer"},
},
},
RuntimeLabels: []conf.LabelWithNodeFilters{
{
Label: "foo=bar",
NodeFilters: []string{"server[0]", "loadbalancer"},
},
},
Env: []conf.EnvVarWithNodeFilters{
{
EnvVar: "bar=baz",
Expand All @@ -96,11 +84,25 @@ func TestReadSimpleConfig(t *testing.T) {
NodeFilters: []string{"server[*]"},
},
},
NodeLabels: []conf.LabelWithNodeFilters{
{
Label: "foo=bar",
NodeFilters: []string{"server[0]", "loadbalancer"},
},
},
},
KubeconfigOptions: conf.SimpleConfigOptionsKubeconfig{
UpdateDefaultKubeconfig: true,
SwitchCurrentContext: true,
},
Runtime: conf.SimpleConfigOptionsRuntime{
Labels: []conf.LabelWithNodeFilters{
{
Label: "foo=bar",
NodeFilters: []string{"server[0]", "loadbalancer"},
},
},
},
},
}

Expand Down
21 changes: 11 additions & 10 deletions pkg/config/test_assets/config_test_simple.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,6 @@ env:
- envVar: bar=baz
nodeFilters:
- all
k3sNodeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
runtimeLabels:
- label: foo=bar
nodeFilters:
- "server[0]"
- loadbalancer

options:
k3d:
Expand All @@ -44,6 +34,17 @@ options:
- arg: --tls-san=127.0.0.1
nodeFilters:
- "server[*]"
nodeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
kubeconfig:
updateDefaultKubeconfig: true
switchCurrentContext: true
runtime:
labels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
21 changes: 11 additions & 10 deletions pkg/config/test_assets/config_test_simple_invalid_servers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,6 @@ env:
- envVar: bar=baz
nodeFilters:
- all
k3sNodeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
runtimeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer

options:
k3d:
Expand All @@ -44,6 +34,17 @@ options:
- arg: --tls-san=127.0.0.1
nodeFilters:
- "server[*]"
nodeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
kubeconfig:
updateDefaultKubeconfig: true
switchCurrentContext: true
runtime:
labels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
4 changes: 2 additions & 2 deletions pkg/config/transform.go
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ func TransformSimpleToClusterConfig(ctx context.Context, runtime runtimes.Runtim
}

// -> K3S NODE LABELS
for _, k3sNodeLabelWithNodeFilters := range simpleConfig.K3sNodeLabels {
for _, k3sNodeLabelWithNodeFilters := range simpleConfig.Options.K3sOptions.NodeLabels {
if len(k3sNodeLabelWithNodeFilters.NodeFilters) == 0 && nodeCount > 1 {
return nil, fmt.Errorf("K3sNodeLabelmapping '%s' lacks a node filter, but there's more than one node", k3sNodeLabelWithNodeFilters.Label)
}
Expand All @@ -212,7 +212,7 @@ func TransformSimpleToClusterConfig(ctx context.Context, runtime runtimes.Runtim
}

// -> RUNTIME LABELS
for _, runtimeLabelWithNodeFilters := range simpleConfig.RuntimeLabels {
for _, runtimeLabelWithNodeFilters := range simpleConfig.Options.Runtime.Labels {
if len(runtimeLabelWithNodeFilters.NodeFilters) == 0 && nodeCount > 1 {
return nil, fmt.Errorf("RuntimeLabelmapping '%s' lacks a node filter, but there's more than one node", runtimeLabelWithNodeFilters.Label)
}
Expand Down
17 changes: 1 addition & 16 deletions pkg/config/v1alpha2/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,22 +108,7 @@
"additionalProperties": false
}
},
"k3sNodeLabels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"nodeFilters": {
"$ref": "#/definitions/nodeFilters"
}
},
"additionalProperties": false
}
},
"runtimeLabels": {
"labels": {
"type": "array",
"items": {
"type": "object",
Expand Down
9 changes: 9 additions & 0 deletions pkg/config/v1alpha3/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,15 @@ func MigrateV1Alpha2(input configtypes.Config) (configtypes.Config, error) {
return nil, err
}

cfg.Options.Runtime.Labels = []LabelWithNodeFilters{}

for _, label := range input.(v1alpha2.SimpleConfig).Labels {
cfg.Options.Runtime.Labels = append(cfg.Options.Runtime.Labels, LabelWithNodeFilters{
Label: label.Label,
NodeFilters: label.NodeFilters,
})
}

cfg.Options.K3sOptions.ExtraArgs = []K3sArgWithNodeFilters{}

for _, arg := range input.(v1alpha2.SimpleConfig).Options.K3sOptions.ExtraServerArgs {
Expand Down
52 changes: 32 additions & 20 deletions pkg/config/v1alpha3/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,21 +108,6 @@
"additionalProperties": false
}
},
"labels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"nodeFilters": {
"$ref": "#/definitions/nodeFilters"
}
},
"additionalProperties": false
}
},
"options": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -170,12 +155,24 @@
"properties": {
"arg": {
"type": "string",
"examples": [
"--tls-san=127.0.0.1",
"--disable=traefik"
]
"examples": ["--tls-san=127.0.0.1", "--disable=traefik"]
},
"nodeFilters": {
"nodeFilters": {
"$ref": "#/definitions/nodeFilters"
}
},
"additionalProperties": false
}
},
"nodeLabels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"nodeFilters": {
"$ref": "#/definitions/nodeFilters"
}
},
Expand Down Expand Up @@ -210,6 +207,21 @@
},
"agentsMemory": {
"type": "string"
},
"labels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"nodeFilters": {
"$ref": "#/definitions/nodeFilters"
}
},
"additionalProperties": false
}
}
}
}
Expand Down
11 changes: 6 additions & 5 deletions pkg/config/v1alpha3/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,10 @@ type SimpleConfigOptions struct {
}

type SimpleConfigOptionsRuntime struct {
GPURequest string `mapstructure:"gpuRequest" yaml:"gpuRequest"`
ServersMemory string `mapstructure:"serversMemory" yaml:"serversMemory"`
AgentsMemory string `mapstructure:"agentsMemory" yaml:"agentsMemory"`
GPURequest string `mapstructure:"gpuRequest" yaml:"gpuRequest"`
ServersMemory string `mapstructure:"serversMemory" yaml:"serversMemory"`
AgentsMemory string `mapstructure:"agentsMemory" yaml:"agentsMemory"`
Labels []LabelWithNodeFilters `mapstructure:"labels" yaml:"labels"`
}

type SimpleConfigOptionsK3d struct {
Expand All @@ -111,7 +112,8 @@ type SimpleConfigOptionsK3d struct {
}

type SimpleConfigOptionsK3s struct {
ExtraArgs []K3sArgWithNodeFilters `mapstructure:"extraArgs" yaml:"extraArgs"`
ExtraArgs []K3sArgWithNodeFilters `mapstructure:"extraArgs" yaml:"extraArgs"`
NodeLabels []LabelWithNodeFilters `mapstructure:"nodeLabels" yaml:"nodeLabels"`
}

// SimpleConfig describes the toplevel k3d configuration file.
Expand All @@ -127,7 +129,6 @@ type SimpleConfig struct {
ClusterToken string `mapstructure:"token" yaml:"clusterToken" json:"clusterToken,omitempty"` // default: auto-generated
Volumes []VolumeWithNodeFilters `mapstructure:"volumes" yaml:"volumes" json:"volumes,omitempty"`
Ports []PortWithNodeFilters `mapstructure:"ports" yaml:"ports" json:"ports,omitempty"`
Labels []LabelWithNodeFilters `mapstructure:"labels" yaml:"labels" json:"labels,omitempty"`
Options SimpleConfigOptions `mapstructure:"options" yaml:"options" json:"options,omitempty"`
Env []EnvVarWithNodeFilters `mapstructure:"env" yaml:"env" json:"env,omitempty"`
Registries struct {
Expand Down
21 changes: 11 additions & 10 deletions tests/assets/config_test_simple.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,6 @@ env:
- envVar: bar=baz,bob
nodeFilters:
- all
k3sNodeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
runtimeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
registries:
create: true
use: []
Expand All @@ -52,6 +42,17 @@ options:
- arg: --tls-san=127.0.0.1
nodeFilters:
- server[*]
nodeLabels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer
kubeconfig:
updateDefaultKubeconfig: true
switchCurrentContext: true
runtime:
labels:
- label: foo=bar
nodeFilters:
- server[0]
- loadbalancer

0 comments on commit 13af0df

Please sign in to comment.