Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 29 additions & 12 deletions pkg/controller/common/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,33 @@ func MergeMachineConfigs(configs []*mcfgv1.MachineConfig, osImageURL string) (*m

var fips bool
var kernelType string
var outIgn igntypes.Config

outIgn, report, err := ign.Parse(configs[0].Spec.Config.Raw)
if err != nil {
return nil, errors.Errorf("parsing Ignition config failed with error: %v\nReport: %v", err, report)
if configs[0].Spec.Config.Raw == nil {
outIgn = igntypes.Config{}
} else {
parsedIgn, report, err := ign.Parse(configs[0].Spec.Config.Raw)
if err != nil {
return nil, errors.Errorf("parsing Ignition config failed with error: %v\nReport: %v", err, report)
}
outIgn = parsedIgn
}

for idx := 1; idx < len(configs); idx++ {
// if any of the config has FIPS enabled, it'll be set
if configs[idx].Spec.FIPS {
fips = true
}
appendIgn, report, err := ign.Parse(configs[idx].Spec.Config.Raw)
if err != nil {
return nil, errors.Errorf("parsing appendix Ignition config failed with error: %v\nReport: %v", err, report)

var appendIgn igntypes.Config
if configs[idx].Spec.Config.Raw == nil {
appendIgn = igntypes.Config{}
} else {
parsedIgn, report, err := ign.Parse(configs[idx].Spec.Config.Raw)
if err != nil {
return nil, errors.Errorf("parsing appendix Ignition config failed with error: %v\nReport: %v", err, report)
}
appendIgn = parsedIgn
}
outIgn = ign.Append(outIgn, appendIgn)
}
Expand Down Expand Up @@ -121,12 +134,16 @@ func ValidateMachineConfig(cfg mcfgv1.MachineConfigSpec) error {
if !(cfg.KernelType == "" || cfg.KernelType == KernelTypeDefault || cfg.KernelType == KernelTypeRealtime) {
return errors.Errorf("kernelType=%s is invalid", cfg.KernelType)
}
ignCfg, report, err := ign.Parse(cfg.Config.Raw)
if err != nil {
return errors.Errorf("parsing Ignition config failed with error: %v\nReport: %v", err, report)
}
if err := ValidateIgnition(ignCfg); err != nil {
return err

if cfg.Config.Raw != nil {
ignCfg, report, err := ign.Parse(cfg.Config.Raw)
if err != nil {
return errors.Errorf("parsing Ignition config failed with error: %v\nReport: %v", err, report)
}
if err := ValidateIgnition(ignCfg); err != nil {
return err
}
}

return nil
}
2 changes: 1 addition & 1 deletion pkg/controller/container-runtime-config/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ func findRegistriesConfig(mc *mcfgv1.MachineConfig) (*igntypes.File, error) {
func findPolicyJSON(mc *mcfgv1.MachineConfig) (*igntypes.File, error) {
ignCfg, report, err := ign.Parse(mc.Spec.Config.Raw)
if err != nil {
return nil, fmt.Errorf("parsing Ignition config failed with error: %v\nReport: %v", err, report)
return nil, fmt.Errorf("parsing Policy JSON Ignition config failed with error: %v\nReport: %v", err, report)
}
for _, c := range ignCfg.Storage.Files {
if c.Path == policyConfigPath {
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/kubelet-config/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func createNewDefaultFeatureGate() *osev1.FeatureGate {
func findKubeletConfig(mc *mcfgv1.MachineConfig) (*igntypes.File, error) {
ignCfg, report, err := ign.Parse(mc.Spec.Config.Raw)
if err != nil {
return nil, fmt.Errorf("parsing Ignition config failed with error: %v\nReport: %v", err, report)
return nil, fmt.Errorf("parsing Kubelet Ignition config failed with error: %v\nReport: %v", err, report)
}
for _, c := range ignCfg.Storage.Files {
if c.Path == "/etc/kubernetes/kubelet.conf" {
Expand Down