Skip to content

Commit

Permalink
[OKD only] pkg/asset: disable mitigations for FCOS installs
Browse files Browse the repository at this point in the history
  • Loading branch information
vrutkovs committed Jun 5, 2020
1 parent ee51985 commit 5814b13
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
6 changes: 6 additions & 0 deletions pkg/asset/ignition/ignition_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,12 @@ func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig {
}
}

// ForMitigationsDisabled creates the MachineConfig to disable mitigatations.
// RHCOS doesn't need mitigations disabled, so this function is noop
func ForMitigationsDisabled(role string) *mcfgv1.MachineConfig {
return &mcfgv1.MachineConfig{}
}

// InjectInstallInfo adds information about the installer and its invoker as a
// ConfigMap to the provided bootstrap Ignition config.
func InjectInstallInfo(bootstrap []byte) (string, error) {
Expand Down
31 changes: 31 additions & 0 deletions pkg/asset/ignition/ignition_v3.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,37 @@ func ForHyperthreadingDisabled(role string) *mcfgv1.MachineConfig {
}
}

// ForMitigationsDisabled creates the MachineConfig to disable mitigatations.
// FCOS uses `/etc/pivot/kernel-args` to override the kernel arguments for hosts during pivot.
func ForMitigationsDisabled(role string) *mcfgv1.MachineConfig {
return &mcfgv1.MachineConfig{
TypeMeta: metav1.TypeMeta{
APIVersion: "machineconfiguration.openshift.io/v1",
Kind: "MachineConfig",
},
ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("99-%s-disable-mitigations", role),
Labels: map[string]string{
"machineconfiguration.openshift.io/role": role,
},
},
Spec: mcfgv1.MachineConfigSpec{
Config: runtime.RawExtension{
Raw: MarshalOrDie(&igntypes3.Config{
Ignition: igntypes3.Ignition{
Version: igntypes3.MaxVersion.String(),
},
Storage: igntypes3.Storage{
Files: []igntypes3.File{
FileFromString("/etc/pivot/kernel-args", "root", 0600, "DELETE mitigations=auto,nosmt"),
},
},
}),
},
},
}
}

// InjectInstallInfo adds information about the installer and its invoker as a
// ConfigMap to the provided bootstrap Ignition config.
func InjectInstallInfo(bootstrap []byte) (string, error) {
Expand Down
4 changes: 4 additions & 0 deletions pkg/asset/machines/master.go
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,10 @@ func (m *Master) Generate(dependencies asset.Parents) error {
machineConfigs = append(machineConfigs, ignition.ForFIPSEnabled("master"))
}

if ic.IsOKD() {
machineConfigs = append(machineConfigs, ignition.ForMitigationsDisabled("master"))
}

m.MachineConfigFiles, err = machineconfig.Manifests(machineConfigs, "master", directory)
if err != nil {
return errors.Wrap(err, "failed to create MachineConfig manifests for master machines")
Expand Down
3 changes: 3 additions & 0 deletions pkg/asset/machines/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,9 @@ func (w *Worker) Generate(dependencies asset.Parents) error {
if ic.FIPS {
machineConfigs = append(machineConfigs, ignition.ForFIPSEnabled("worker"))
}
if ic.IsOKD() {
machineConfigs = append(machineConfigs, ignition.ForMitigationsDisabled("worker"))
}
switch ic.Platform.Name() {
case awstypes.Name:
subnets := map[string]string{}
Expand Down

0 comments on commit 5814b13

Please sign in to comment.