Skip to content

Commit

Permalink
Merge pull request #568 from mvle/sysched-scoring
Browse files Browse the repository at this point in the history
Sysched: add the implementation of SySched
  • Loading branch information
k8s-ci-robot committed Mar 6, 2024
2 parents a49a32e + 4b6ea59 commit cd3e4fb
Show file tree
Hide file tree
Showing 102 changed files with 14,674 additions and 44 deletions.
1 change: 1 addition & 0 deletions apis/config/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&PreemptionTolerationArgs{},
&TopologicalSortArgs{},
&NetworkOverheadArgs{},
&SySchedArgs{},
)
return nil
}
Expand Down
12 changes: 12 additions & 0 deletions apis/config/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -253,3 +253,15 @@ type NetworkOverheadArgs struct {
// The NetworkTopology CRD name
NetworkTopologyName string
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type SySchedArgs struct {
metav1.TypeMeta

// CR namespace of the default profile for all system calls
DefaultProfileNamespace string

// CR name of the default profile for all system calls
DefaultProfileName string
}
17 changes: 17 additions & 0 deletions apis/config/v1/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ var (
DefaultWeightsName = "UserDefined"
// DefaultNetworkTopologyName contains the networkTopology CR name to be used by networkAware plugins
DefaultNetworkTopologyName = "nt-default"

// Defaults for SySched
// DefaultSySchedProfileNamespace is the namesapce of the default syscall profile CR for SySched plugin
DefaultSySchedProfileNamespace = "default"
// DefaultSySchedProfileName is the name of the default syscall profile CR for SySched plugin
DefaultSySchedProfileName = "all-syscalls"
)

// SetDefaults_CoschedulingArgs sets the default parameters for Coscheduling plugin.
Expand Down Expand Up @@ -233,3 +239,14 @@ func SetDefaults_NetworkOverheadArgs(obj *NetworkOverheadArgs) {
obj.NetworkTopologyName = &DefaultNetworkTopologyName
}
}

// SetDefaults_SySchedArgs sets the default parameters for SySchedArgs plugin.
func SetDefaults_SySchedArgs(obj *SySchedArgs) {
if obj.DefaultProfileNamespace == nil {
obj.DefaultProfileNamespace = &DefaultSySchedProfileNamespace
}

if obj.DefaultProfileName == nil {
obj.DefaultProfileName = &DefaultSySchedProfileName
}
}
19 changes: 19 additions & 0 deletions apis/config/v1/defaults_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,25 @@ func TestSchedulingDefaults(t *testing.T) {
NetworkTopologyName: pointer.StringPtr("nt-latency-costs"),
},
},
{
name: "empty config SySchedArgs",
config: &SySchedArgs{},
expect: &SySchedArgs{
DefaultProfileNamespace: pointer.StringPtr("default"),
DefaultProfileName: pointer.StringPtr("all-syscalls"),
},
},
{
name: "set non default SySchedArgs",
config: &SySchedArgs{
DefaultProfileNamespace: pointer.StringPtr("default"),
DefaultProfileName: pointer.StringPtr("all-syscalls"),
},
expect: &SySchedArgs{
DefaultProfileNamespace: pointer.StringPtr("default"),
DefaultProfileName: pointer.StringPtr("all-syscalls"),
},
},
}

for _, tc := range tests {
Expand Down
1 change: 1 addition & 0 deletions apis/config/v1/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&PreemptionTolerationArgs{},
&TopologicalSortArgs{},
&NetworkOverheadArgs{},
&SySchedArgs{},
)
return nil
}
Expand Down
12 changes: 12 additions & 0 deletions apis/config/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,3 +251,15 @@ type NetworkOverheadArgs struct {
// The NetworkTopology CRD name
NetworkTopologyName *string `json:"networkTopologyName,omitempty"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type SySchedArgs struct {
metav1.TypeMeta `json:",inline"`

// CR namespace of the default profile for all system calls
DefaultProfileNamespace *string `json:"defaultProfileNamespace,omitempty"`

// CR name of the default profile for all system calls
DefaultProfileName *string `json:"defaultProfileName,omitempty"`
}
40 changes: 40 additions & 0 deletions apis/config/v1/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions apis/config/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions apis/config/v1/zz_generated.defaults.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions apis/config/v1beta3/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ var (
DefaultWeightsName = "UserDefined"
// DefaultNetworkTopologyName contains the networkTopology CR name to be used by networkAware plugins
DefaultNetworkTopologyName = "nt-default"

// Defaults for SySched
// DefaultSySchedProfileNamespace is the namesapce of the default syscall profile CR for SySched plugin
DefaultSySchedProfileNamespace = "default"
// DefaultSySchedProfileName is the name of the default syscall profile CR for SySched plugin
DefaultSySchedProfileName = "all-syscalls"
)

// SetDefaults_CoschedulingArgs sets the default parameters for Coscheduling plugin.
Expand Down Expand Up @@ -233,3 +239,14 @@ func SetDefaults_NetworkOverheadArgs(obj *NetworkOverheadArgs) {
obj.NetworkTopologyName = &DefaultNetworkTopologyName
}
}

// SetDefaults_SySchedArgs sets the default parameters for SySchedArgs plugin.
func SetDefaults_SySchedArgs(obj *SySchedArgs) {
if obj.DefaultProfileNamespace == nil {
obj.DefaultProfileNamespace = &DefaultSySchedProfileNamespace
}

if obj.DefaultProfileName == nil {
obj.DefaultProfileName = &DefaultSySchedProfileName
}
}
19 changes: 19 additions & 0 deletions apis/config/v1beta3/defaults_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,25 @@ func TestSchedulingDefaults(t *testing.T) {
NetworkTopologyName: pointer.StringPtr("nt-latency-costs"),
},
},
{
name: "empty config SySchedArgs",
config: &SySchedArgs{},
expect: &SySchedArgs{
DefaultProfileNamespace: pointer.StringPtr("default"),
DefaultProfileName: pointer.StringPtr("all-syscalls"),
},
},
{
name: "set non default SySchedArgs",
config: &SySchedArgs{
DefaultProfileNamespace: pointer.StringPtr("default"),
DefaultProfileName: pointer.StringPtr("all-syscalls"),
},
expect: &SySchedArgs{
DefaultProfileNamespace: pointer.StringPtr("default"),
DefaultProfileName: pointer.StringPtr("all-syscalls"),
},
},
}

for _, tc := range tests {
Expand Down
1 change: 1 addition & 0 deletions apis/config/v1beta3/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&PreemptionTolerationArgs{},
&TopologicalSortArgs{},
&NetworkOverheadArgs{},
&SySchedArgs{},
)
return nil
}
Expand Down
12 changes: 12 additions & 0 deletions apis/config/v1beta3/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -254,3 +254,15 @@ type NetworkOverheadArgs struct {
// The NetworkTopology CRD name
NetworkTopologyName *string `json:"networkTopologyName,omitempty"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type SySchedArgs struct {
metav1.TypeMeta `json:",inline"`

// CR namespace of the default profile for all system calls
DefaultProfileNamespace *string `json:"defaultProfileNamespace,omitempty"`

// CR name of the default profile for all system calls
DefaultProfileName *string `json:"defaultProfileName,omitempty"`
}
40 changes: 40 additions & 0 deletions apis/config/v1beta3/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions apis/config/v1beta3/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit cd3e4fb

Please sign in to comment.