mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-05-07 08:45:19 -04:00
versions: add k8s 1.31, remove k8s 1.28 (#3396)
* constellation-node-operator: upgrade control plane nodes first (#3663) * versions: add k8s 1.31, remove k8s 1.28 * e2e: set default k8s version for daily to 1.30 * e2e: remove defaults for required arguments * versions: move 1.31 to the end of the list * kubernetes: set feature gate ControlPlaneKubeletLocalMode Co-Authored-By: Leonard Cohnen <lc@edgeless.systems> Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
This commit is contained in:
parent
fb609b23b0
commit
473b04abd5
18 changed files with 442 additions and 174 deletions
|
@ -330,6 +330,7 @@ func TestMatchDonorsAndHeirs(t *testing.T) {
|
|||
func TestCreateNewNodes(t *testing.T) {
|
||||
testCases := map[string]struct {
|
||||
outdatedNodes []corev1.Node
|
||||
donors []corev1.Node
|
||||
pendingNodes []updatev1alpha1.PendingNode
|
||||
scalingGroupByID map[string]updatev1alpha1.ScalingGroup
|
||||
budget int
|
||||
|
@ -573,6 +574,105 @@ func TestCreateNewNodes(t *testing.T) {
|
|||
},
|
||||
budget: 1,
|
||||
},
|
||||
"control plane node upgraded first": {
|
||||
outdatedNodes: []corev1.Node{
|
||||
// CP node
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "control-plane-node",
|
||||
Annotations: map[string]string{
|
||||
scalingGroupAnnotation: "control-plane-scaling-group",
|
||||
},
|
||||
Labels: map[string]string{
|
||||
// Mark this as a CP node as per
|
||||
// https://kubernetes.io/docs/reference/labels-annotations-taints/#node-role-kubernetes-io-control-plane
|
||||
"node-role.kubernetes.io/control-plane": "",
|
||||
},
|
||||
},
|
||||
},
|
||||
// Worker node
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "node",
|
||||
Annotations: map[string]string{
|
||||
scalingGroupAnnotation: "scaling-group",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
scalingGroupByID: map[string]updatev1alpha1.ScalingGroup{
|
||||
"scaling-group": {
|
||||
Spec: updatev1alpha1.ScalingGroupSpec{
|
||||
GroupID: "scaling-group",
|
||||
Role: updatev1alpha1.WorkerRole,
|
||||
},
|
||||
Status: updatev1alpha1.ScalingGroupStatus{
|
||||
ImageReference: "image",
|
||||
},
|
||||
},
|
||||
"control-plane-scaling-group": {
|
||||
Spec: updatev1alpha1.ScalingGroupSpec{
|
||||
GroupID: "control-plane-scaling-group",
|
||||
Role: updatev1alpha1.ControlPlaneRole,
|
||||
},
|
||||
Status: updatev1alpha1.ScalingGroupStatus{
|
||||
ImageReference: "image",
|
||||
},
|
||||
},
|
||||
},
|
||||
budget: 2,
|
||||
wantCreateCalls: []string{"control-plane-scaling-group"},
|
||||
},
|
||||
"worker not upgraded while cp is in donors": {
|
||||
donors: []corev1.Node{
|
||||
// CP node
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "control-plane-node",
|
||||
Annotations: map[string]string{
|
||||
scalingGroupAnnotation: "control-plane-scaling-group",
|
||||
},
|
||||
Labels: map[string]string{
|
||||
// Mark this as a CP node as per
|
||||
// https://kubernetes.io/docs/reference/labels-annotations-taints/#node-role-kubernetes-io-control-plane
|
||||
"node-role.kubernetes.io/control-plane": "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
outdatedNodes: []corev1.Node{
|
||||
// Worker node
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "node",
|
||||
Annotations: map[string]string{
|
||||
scalingGroupAnnotation: "scaling-group",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
scalingGroupByID: map[string]updatev1alpha1.ScalingGroup{
|
||||
"scaling-group": {
|
||||
Spec: updatev1alpha1.ScalingGroupSpec{
|
||||
GroupID: "scaling-group",
|
||||
Role: updatev1alpha1.WorkerRole,
|
||||
},
|
||||
Status: updatev1alpha1.ScalingGroupStatus{
|
||||
ImageReference: "image",
|
||||
},
|
||||
},
|
||||
"control-plane-scaling-group": {
|
||||
Spec: updatev1alpha1.ScalingGroupSpec{
|
||||
GroupID: "control-plane-scaling-group",
|
||||
Role: updatev1alpha1.ControlPlaneRole,
|
||||
},
|
||||
Status: updatev1alpha1.ScalingGroupStatus{
|
||||
ImageReference: "image",
|
||||
},
|
||||
},
|
||||
},
|
||||
budget: 1,
|
||||
},
|
||||
}
|
||||
|
||||
for name, tc := range testCases {
|
||||
|
@ -592,7 +692,7 @@ func TestCreateNewNodes(t *testing.T) {
|
|||
},
|
||||
Scheme: getScheme(t),
|
||||
}
|
||||
newNodeConfig := newNodeConfig{desiredNodeImage, tc.outdatedNodes, tc.pendingNodes, tc.scalingGroupByID, tc.budget}
|
||||
newNodeConfig := newNodeConfig{desiredNodeImage, tc.outdatedNodes, tc.donors, tc.pendingNodes, tc.scalingGroupByID, tc.budget}
|
||||
err := reconciler.createNewNodes(context.Background(), newNodeConfig)
|
||||
require.NoError(err)
|
||||
assert.Equal(tc.wantCreateCalls, reconciler.nodeReplacer.(*stubNodeReplacerWriter).createCalls)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue