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
2 changes: 1 addition & 1 deletion pkg/controller/render/render_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ func (ctrl *Controller) syncGeneratedMachineConfig(pool *mcfgv1.MachineConfigPoo
func generateRenderedMachineConfig(pool *mcfgv1.MachineConfigPool, configs []*mcfgv1.MachineConfig, cconfig *mcfgv1.ControllerConfig) (*mcfgv1.MachineConfig, error) {
// Before merging all MCs for a specific pool, let's make sure each contains a valid Ignition Config
for _, config := range configs {
rpt := validate.ValidateWithoutSource(reflect.ValueOf(config.Spec.Config.Ignition))
rpt := validate.ValidateWithoutSource(reflect.ValueOf(config.Spec.Config))
if rpt.IsFatal() {
return nil, fmt.Errorf("machine config: %v contains invalid ignition config: %v", config.ObjectMeta.Name, rpt)
}
Expand Down
20 changes: 13 additions & 7 deletions pkg/controller/render/render_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func newMachineConfigPool(name string, selector *metav1.LabelSelector, currentMa
ObjectMeta: metav1.ObjectMeta{Name: name, UID: types.UID(utilrand.String(5))},
Spec: mcfgv1.MachineConfigPoolSpec{
MachineConfigSelector: selector,
Configuration: mcfgv1.MachineConfigPoolStatusConfiguration{ObjectReference: corev1.ObjectReference{Name: currentMachineConfig}},
Configuration: mcfgv1.MachineConfigPoolStatusConfiguration{ObjectReference: corev1.ObjectReference{Name: currentMachineConfig}},
},
Status: mcfgv1.MachineConfigPoolStatus{
Configuration: mcfgv1.MachineConfigPoolStatusConfiguration{ObjectReference: corev1.ObjectReference{Name: currentMachineConfig}},
Expand Down Expand Up @@ -296,11 +296,13 @@ func TestIgnValidationGenerateRenderedMachineConfig(t *testing.T) {
mcp := newMachineConfigPool("test-cluster-master", metav1.AddLabelToSelector(&metav1.LabelSelector{}, "node-role", "master"), "")
files := []ignv2_2types.File{{
Node: ignv2_2types.Node{
Path: "/dummy/0",
Filesystem: "root",
Path: "/dummy/0",
},
}, {
Node: ignv2_2types.Node{
Path: "/dummy/1",
Filesystem: "root",
Path: "/dummy/1",
},
}}
mcs := []*mcfgv1.MachineConfig{
Expand All @@ -326,11 +328,13 @@ func TestUpdatesGeneratedMachineConfig(t *testing.T) {
mcp := newMachineConfigPool("test-cluster-master", metav1.AddLabelToSelector(&metav1.LabelSelector{}, "node-role", "master"), "")
files := []ignv2_2types.File{{
Node: ignv2_2types.Node{
Path: "/dummy/0",
Filesystem: "root",
Path: "/dummy/0",
},
}, {
Node: ignv2_2types.Node{
Path: "/dummy/1",
Filesystem: "root",
Path: "/dummy/1",
},
}}
mcs := []*mcfgv1.MachineConfig{
Expand Down Expand Up @@ -390,11 +394,13 @@ func TestDoNothing(t *testing.T) {
mcp := newMachineConfigPool("test-cluster-master", metav1.AddLabelToSelector(&metav1.LabelSelector{}, "node-role", "master"), "")
files := []ignv2_2types.File{{
Node: ignv2_2types.Node{
Path: "/dummy/0",
Filesystem: "root",
Path: "/dummy/0",
},
}, {
Node: ignv2_2types.Node{
Path: "/dummy/1",
Filesystem: "root",
Path: "/dummy/1",
},
}}
mcs := []*mcfgv1.MachineConfig{
Expand Down
16 changes: 12 additions & 4 deletions test/e2e/mcd_test.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package e2e_test

import (
"github.com/pkg/errors"
"encoding/json"
"fmt"
"github.com/pkg/errors"
"os/exec"
"strings"
"testing"
"time"

ignv2_2types "github.com/coreos/ignition/config/v2_2/types"
"github.com/stretchr/testify/assert"
mcv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1"
"github.com/openshift/machine-config-operator/pkg/daemon/constants"
"github.com/openshift/machine-config-operator/test/e2e/framework"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -334,8 +334,16 @@ func TestReconcileAfterBadMC(t *testing.T) {
cs := framework.NewClientSet("")
bumpPoolMaxUnavailableTo(t, cs, 3)

// create a bad MC w/o a filesystem field which is going to fail reconciling
mcadd := createMCToAddFile("add-a-file", "/etc/mytestconfs", "test", "")
// create a MC that contains a valid ignition config but is not reconcilable
mcadd := createMCToAddFile("add-a-file", "/etc/mytestconfs", "test", "root")
mcadd.Spec.Config.Networkd = ignv2_2types.Networkd{
Units: []ignv2_2types.Networkdunit{
ignv2_2types.Networkdunit{
Name: "test.network",
Contents: "test contents",
},
},
}

// grab the initial machineconfig used by the worker pool
// this MC is gonna be the one which is going to be reapplied once the bad MC is deleted
Expand Down