Skip to content

Commit

Permalink
Merge pull request spidernet-io#2622 from Icarus9913/fix/wk/crd
Browse files Browse the repository at this point in the history
supplement spidermultusconfig default value
  • Loading branch information
weizhoublue committed Nov 22, 2023
2 parents eab0cb1 + 8c4d334 commit d8e42e9
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
type CoordinatorSpec struct {
// +kubebuilder:validation:Enum=auto;underlay;overlay;disabled
// +kubebuilder:validation:Optional
Mode *string `json:"mode"`
Mode *string `json:"mode,omitempty"`

// CoordinatorSpec is used by SpiderCoordinator and SpiderMultusConfig
// in spidermultusconfig CRD , podCIDRType should not be required, which could be merged from SpiderCoordinator CR
Expand All @@ -21,16 +21,16 @@ type CoordinatorSpec struct {
PodCIDRType *string `json:"podCIDRType,omitempty"`

// +kubebuilder:validation:Optional
HijackCIDR []string `json:"hijackCIDR"`
HijackCIDR []string `json:"hijackCIDR,omitempty"`

// +kubebuilder:validation:Optional
PodMACPrefix *string `json:"podMACPrefix"`
PodMACPrefix *string `json:"podMACPrefix,omitempty"`

// +kubebuilder:validation:Optional
TunePodRoutes *bool `json:"tunePodRoutes"`
TunePodRoutes *bool `json:"tunePodRoutes,omitempty"`

// +kubebuilder:validation:Optional
PodDefaultRouteNIC *string `json:"podDefaultRouteNIC"`
PodDefaultRouteNIC *string `json:"podDefaultRouteNIC,omitempty"`

// +kubebuilder:validation:Optional
HostRuleTable *int `json:"hostRuleTable,omitempty"`
Expand All @@ -39,10 +39,10 @@ type CoordinatorSpec struct {
HostRPFilter *int `json:"hostRPFilter,omitempty"`

// +kubebuilder:validation:Optional
DetectIPConflict *bool `json:"detectIPConflict"`
DetectIPConflict *bool `json:"detectIPConflict,omitempty"`

// +kubebuilder:validation:Optional
DetectGateway *bool `json:"detectGateway"`
DetectGateway *bool `json:"detectGateway,omitempty"`
}

// CoordinationStatus defines the observed state of SpiderCoordinator.
Expand Down
32 changes: 16 additions & 16 deletions pkg/k8s/apis/spiderpool.spidernet.io/v2beta1/spidermultus_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ type MultusCNIConfigSpec struct {

// +kubebuilder:default=true
// +kubebuilder:validation:Optional
EnableCoordinator *bool `json:"enableCoordinator"`
EnableCoordinator *bool `json:"enableCoordinator,omitempty"`

// +kubebuilder:default=false
// +kubebuilder:validation:Optional
DisableIPAM *bool `json:"disableIPAM"`
DisableIPAM *bool `json:"disableIPAM,omitempty"`

// +kubebuilder:validation:Optional
CoordinatorConfig *CoordinatorSpec `json:"coordinator"`
CoordinatorConfig *CoordinatorSpec `json:"coordinator,omitempty"`

// OtherCniTypeConfig only used for CniType custom, valid json format, can be empty
// +kubebuilder:validation:Optional
Expand All @@ -66,13 +66,13 @@ type SpiderMacvlanCniConfig struct {
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=4094
VlanID *int32 `json:"vlanID"`
VlanID *int32 `json:"vlanID,omitempty"`

// +kubebuilder:validation:Optional
Bond *BondConfig `json:"bond"`
Bond *BondConfig `json:"bond,omitempty"`

// +kubebuilder:validation:Optional
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools"`
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools,omitempty"`
}

type SpiderIPvlanCniConfig struct {
Expand All @@ -82,13 +82,13 @@ type SpiderIPvlanCniConfig struct {
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=4094
VlanID *int32 `json:"vlanID"`
VlanID *int32 `json:"vlanID,omitempty"`

// +kubebuilder:validation:Optional
Bond *BondConfig `json:"bond"`
Bond *BondConfig `json:"bond,omitempty"`

// +kubebuilder:validation:Optional
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools"`
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools,omitempty"`
}

type SpiderSRIOVCniConfig struct {
Expand All @@ -98,28 +98,28 @@ type SpiderSRIOVCniConfig struct {
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=4094
VlanID *int32 `json:"vlanID"`
VlanID *int32 `json:"vlanID,omitempty"`

// +kubebuilder:default=false
// +kubebuilder:validation:Optional
EnableRdma bool `json:"enableRdma"`

// +kubebuilder:validation:Optional
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools"`
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools,omitempty"`
}

type SpiderOvsCniConfig struct {
// +kubebuilder:validation:Required
BrName string `json:"bridge"`
// +kubebuilder:validation:Optional
VlanTag *int32 `json:"vlan"`
VlanTag *int32 `json:"vlan,omitempty"`
// +kubebuilder:validation:Optional
Trunk []*Trunk `json:"trunk,omitempty"`
// +kubebuilder:validation:Optional
// PCI address of a VF in valid sysfs format
DeviceID string `json:"deviceID"`
// +kubebuilder:validation:Optional
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools"`
SpiderpoolConfigPools *SpiderpoolPools `json:"ippools,omitempty"`
}

type Trunk struct {
Expand Down Expand Up @@ -147,16 +147,16 @@ type BondConfig struct {
Mode int32 `json:"mode"`

// +kubebuilder:validation:Optional
Options *string `json:"options"`
Options *string `json:"options,omitempty"`
}

// SpiderpoolPools could specify the IPAM spiderpool CNI configuration default IPv4&IPv6 pools.
type SpiderpoolPools struct {
// +kubebuilder:validation:Optional
IPv4IPPool []string `json:"ipv4"`
IPv4IPPool []string `json:"ipv4,omitempty"`

// +kubebuilder:validation:Optional
IPv6IPPool []string `json:"ipv6"`
IPv6IPPool []string `json:"ipv6,omitempty"`
}

func init() {
Expand Down
6 changes: 4 additions & 2 deletions pkg/multuscniconfig/multusconfig_informer.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,8 @@ func generateNetAttachDef(netAttachName string, multusConf *spiderpoolv2beta1.Sp
macvlanCNIConf := generateMacvlanCNIConf(disableIPAM, *multusConfSpec)
// head insertion
plugins = append([]interface{}{macvlanCNIConf}, plugins...)
if len(multusConfSpec.MacvlanConfig.Master) > 0 || (multusConfSpec.MacvlanConfig.VlanID != nil && *multusConfSpec.MacvlanConfig.VlanID != 0) {
if (multusConfSpec.MacvlanConfig.VlanID != nil && *multusConfSpec.MacvlanConfig.VlanID != 0) ||
len(multusConfSpec.MacvlanConfig.Master) >= 2 {
// we need to set Subvlan as first at the CNI plugin chain
subVlanCNIConf := generateIfacer(multusConfSpec.MacvlanConfig.Master,
*multusConfSpec.MacvlanConfig.VlanID,
Expand All @@ -402,7 +403,8 @@ func generateNetAttachDef(netAttachName string, multusConf *spiderpoolv2beta1.Sp
ipvlanCNIConf := generateIPvlanCNIConf(disableIPAM, *multusConfSpec)
// head insertion
plugins = append([]interface{}{ipvlanCNIConf}, plugins...)
if len(multusConfSpec.IPVlanConfig.Master) > 0 || (multusConfSpec.IPVlanConfig.VlanID != nil && *multusConfSpec.IPVlanConfig.VlanID != 0) {
if (multusConfSpec.IPVlanConfig.VlanID != nil && *multusConfSpec.IPVlanConfig.VlanID != 0) ||
len(multusConfSpec.IPVlanConfig.Master) >= 2 {
// we need to set Subvlan as first at the CNI plugin chain
subVlanCNIConf := generateIfacer(multusConfSpec.IPVlanConfig.Master,
*multusConfSpec.IPVlanConfig.VlanID,
Expand Down
20 changes: 8 additions & 12 deletions pkg/multuscniconfig/multusconfig_mutate.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (

func mutateSpiderMultusConfig(ctx context.Context, smc *spiderpoolv2beta1.SpiderMultusConfig) error {
logger := logutils.FromContext(ctx)
logger.Info("Start to mutate Spidermulutconfig")
logger.Info("Start to mutate SpiderMultusConfig")

switch smc.Spec.CniType {
case constant.MacvlanCNI:
Expand Down Expand Up @@ -45,7 +45,9 @@ func setMacvlanDefaultConfig(macvlanConfig *spiderpoolv2beta1.SpiderMacvlanCniCo
macvlanConfig.VlanID = pointer.Int32(0)
}

macvlanConfig.Bond = setBondDefaultConfig(macvlanConfig.Bond)
if macvlanConfig.Bond != nil {
macvlanConfig.Bond = setBondDefaultConfig(macvlanConfig.Bond)
}

if macvlanConfig.SpiderpoolConfigPools == nil {
macvlanConfig.SpiderpoolConfigPools = &spiderpoolv2beta1.SpiderpoolPools{
Expand All @@ -56,14 +58,6 @@ func setMacvlanDefaultConfig(macvlanConfig *spiderpoolv2beta1.SpiderMacvlanCniCo
}

func setBondDefaultConfig(bond *spiderpoolv2beta1.BondConfig) *spiderpoolv2beta1.BondConfig {
if bond == nil {
return &spiderpoolv2beta1.BondConfig{
Name: "",
Mode: 0,
Options: pointer.String(""),
}
}

if bond.Options == nil {
bond.Options = pointer.String("")
}
Expand All @@ -79,7 +73,9 @@ func setIPVlanDefaultConfig(ipvlanConfig *spiderpoolv2beta1.SpiderIPvlanCniConfi
ipvlanConfig.VlanID = pointer.Int32(0)
}

ipvlanConfig.Bond = setBondDefaultConfig(ipvlanConfig.Bond)
if ipvlanConfig.Bond != nil {
ipvlanConfig.Bond = setBondDefaultConfig(ipvlanConfig.Bond)
}

if ipvlanConfig.SpiderpoolConfigPools == nil {
ipvlanConfig.SpiderpoolConfigPools = &spiderpoolv2beta1.SpiderpoolPools{
Expand Down Expand Up @@ -140,7 +136,7 @@ func setCoordinatorDefaultConfig(coordinator *spiderpoolv2beta1.CoordinatorSpec)
coordinator.Mode = pointer.String(string(coordinator_cmd.ModeAuto))
}

if len(coordinator.HijackCIDR) == 0 {
if coordinator.HijackCIDR == nil {
coordinator.HijackCIDR = []string{}
}

Expand Down

0 comments on commit d8e42e9

Please sign in to comment.