Skip to content

Commit

Permalink
Bump controller-runtime to 0.14.1 / k8s 1.26.1 (#11600)
Browse files Browse the repository at this point in the history
* bump controller-runtime to 0.14.1 / k8s 1.26.0

* adjust to sets.StringSet being deprecated, replace with sets.Set[string]

* codegen

* bump to 1.26.1

* post-rebase blues

* codegen

* undo accidental downgrade

* indexes are supported in the fakeclient now, so they must be configured for all controllers that rely on them
  • Loading branch information
xrstf committed Jan 25, 2023
1 parent 740b769 commit 7239870
Show file tree
Hide file tree
Showing 112 changed files with 1,322 additions and 508 deletions.
2 changes: 1 addition & 1 deletion cmd/alertmanager-authorization-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ func (a *authorizationServer) authorize(ctx context.Context, userEmail, clusterI
return false, fmt.Errorf("listing groupProjectBinding: %w", err)
}

groupSet := sets.NewString()
groupSet := sets.New[string]()
for _, gpb := range allGroupBindings.Items {
a.log.Debugf("found group project binding %q for project %q with group %q", gpb.Name, projectID, gpb.Spec.Group)
groupSet.Insert(gpb.Spec.Group)
Expand Down
15 changes: 8 additions & 7 deletions cmd/conformance-tester/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import (
"k8c.io/kubermatic/v2/pkg/test/e2e/utils"
"k8c.io/kubermatic/v2/pkg/util/cli"

"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/scheme"
metricsv1beta1 "k8s.io/metrics/pkg/apis/metrics/v1beta1"
Expand Down Expand Up @@ -81,11 +82,11 @@ func main() {
// say hello
cli.Hello(log, "Conformance Tests", true, nil)
log.Infow("Runner configuration",
"providers", opts.Providers.List(),
"operatingsystems", opts.Distributions.List(),
"providers", sets.List(opts.Providers),
"operatingsystems", sets.List(opts.Distributions),
"versions", opts.Versions,
"containerruntimes", opts.ContainerRuntimes.List(),
"tests", opts.Tests.List(),
"containerruntimes", sets.List(opts.ContainerRuntimes),
"tests", sets.List(opts.Tests),
"osm", opts.OperatingSystemManagerEnabled,
"dualstack", opts.DualStackEnabled,
"konnectivity", opts.KonnectivityEnabled,
Expand Down Expand Up @@ -113,9 +114,9 @@ func main() {

// determine what's to do
scenarios, err := scenarios.NewGenerator().
WithCloudProviders(opts.Providers.List()...).
WithOperatingSystems(opts.Distributions.List()...).
WithContainerRuntimes(opts.ContainerRuntimes.List()...).
WithCloudProviders(sets.List(opts.Providers)...).
WithOperatingSystems(sets.List(opts.Distributions)...).
WithContainerRuntimes(sets.List(opts.ContainerRuntimes)...).
WithOSM(opts.OperatingSystemManagerEnabled).
WithDualstack(opts.DualStackEnabled).
WithVersions(opts.Versions...).
Expand Down
5 changes: 3 additions & 2 deletions cmd/conformance-tester/pkg/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import (
"k8s.io/apimachinery/pkg/types"
kerrors "k8s.io/apimachinery/pkg/util/errors"
"k8s.io/apimachinery/pkg/util/rand"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/util/retry"
ctrlruntimeclient "sigs.k8s.io/controller-runtime/pkg/client"
)
Expand Down Expand Up @@ -140,8 +141,8 @@ func (r *TestRunner) Run(ctx context.Context, testScenarios []scenarios.Scenario
fmt.Printf(" OSM Enabled.........: %v\n", r.opts.OperatingSystemManagerEnabled)
fmt.Printf(" Dualstack Enabled...: %v\n", r.opts.DualStackEnabled)
fmt.Printf(" Konnectivity Enabled: %v\n", r.opts.KonnectivityEnabled)
fmt.Printf(" Enabled Tests.......: %v\n", r.opts.Tests.List())
fmt.Printf(" Scenario Options....: %v\n", r.opts.ScenarioOptions.List())
fmt.Printf(" Enabled Tests.......: %v\n", sets.List(r.opts.Tests))
fmt.Printf(" Scenario Options....: %v\n", sets.List(r.opts.ScenarioOptions))
fmt.Println("")
fmt.Println("Test results:")

Expand Down
16 changes: 8 additions & 8 deletions cmd/conformance-tester/pkg/runner/waiters.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func waitForControlPlane(ctx context.Context, log *zap.SugaredLogger, opts *ctyp
return nil, fmt.Errorf("failed to list controlplane pods: %w", err)
}

unready := sets.NewString()
unready := sets.New[string]()
for _, pod := range controlPlanePods.Items {
if !util.PodIsReady(&pod) {
unready.Insert(pod.Name)
Expand All @@ -78,7 +78,7 @@ func waitForControlPlane(ctx context.Context, log *zap.SugaredLogger, opts *ctyp
return nil, nil
}

return fmt.Errorf("not all Pods are ready: %v", unready.List()), nil
return fmt.Errorf("not all Pods are ready: %v", sets.List(unready)), nil
})
// Timeout or other error
if err != nil {
Expand Down Expand Up @@ -119,7 +119,7 @@ func waitUntilAllPodsAreReady(ctx context.Context, log *zap.SugaredLogger, opts
return fmt.Errorf("failed to list Pods in user cluster: %w", err), nil
}

unready := sets.NewString()
unready := sets.New[string]()
for _, pod := range podList.Items {
// Ignore pods failing kubelet admission (KKP #6185)
if !util.PodIsReady(&pod) && !podFailedKubeletAdmissionDueToNodeAffinityPredicate(&pod, log) {
Expand All @@ -131,7 +131,7 @@ func waitUntilAllPodsAreReady(ctx context.Context, log *zap.SugaredLogger, opts
return nil, nil
}

return fmt.Errorf("not all Pods are ready: %v", unready.List()), nil
return fmt.Errorf("not all Pods are ready: %v", sets.List(unready)), nil
})
if err != nil {
return err
Expand All @@ -156,7 +156,7 @@ func waitForMachinesToJoinCluster(ctx context.Context, log *zap.SugaredLogger, c
return fmt.Errorf("failed to list machines: %w", err), nil
}

missingMachines := sets.NewString()
missingMachines := sets.New[string]()
for _, machine := range machineList.Items {
if machine.Status.NodeRef == nil || machine.Status.NodeRef.Name == "" {
missingMachines.Insert(machine.Name)
Expand All @@ -167,7 +167,7 @@ func waitForMachinesToJoinCluster(ctx context.Context, log *zap.SugaredLogger, c
return nil, nil
}

return fmt.Errorf("not all machines have joined: %v", missingMachines.List()), nil
return fmt.Errorf("not all machines have joined: %v", sets.List(missingMachines)), nil
})

elapsed := time.Since(startTime)
Expand All @@ -192,7 +192,7 @@ func waitForNodesToBeReady(ctx context.Context, log *zap.SugaredLogger, client c
return fmt.Errorf("failed to list nodes: %w", err), nil
}

unready := sets.NewString()
unready := sets.New[string]()
for _, node := range nodeList.Items {
if !util.NodeIsReady(node) {
unready.Insert(node.Name)
Expand All @@ -203,7 +203,7 @@ func waitForNodesToBeReady(ctx context.Context, log *zap.SugaredLogger, client c
return nil, nil
}

return fmt.Errorf("not all nodes are ready: %v", unready.List()), nil
return fmt.Errorf("not all nodes are ready: %v", sets.List(unready)), nil
})

elapsed := time.Since(startTime)
Expand Down
2 changes: 1 addition & 1 deletion cmd/conformance-tester/pkg/scenarios/aws.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func (s *awsScenario) MachineDeployments(ctx context.Context, num int, secrets t
}

// Find three subnets that are in different AZs to preserve the multi az testcase
allAZs := sets.NewString()
allAZs := sets.New[string]()
var subnets []ec2types.Subnet
for _, subnet := range allSubnets {
if !allAZs.Has(pointer.StringDeref(subnet.AvailabilityZone, "")) {
Expand Down
24 changes: 12 additions & 12 deletions cmd/conformance-tester/pkg/scenarios/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,20 @@ import (
)

type Generator struct {
cloudProviders sets.String
operatingSystems sets.String
versions sets.String
containerRuntimes sets.String
cloudProviders sets.Set[string]
operatingSystems sets.Set[string]
versions sets.Set[string]
containerRuntimes sets.Set[string]
enableOSM bool
enableDualstack bool
}

func NewGenerator() *Generator {
return &Generator{
cloudProviders: sets.NewString(),
operatingSystems: sets.NewString(),
versions: sets.NewString(),
containerRuntimes: sets.NewString(),
cloudProviders: sets.New[string](),
operatingSystems: sets.New[string](),
versions: sets.New[string](),
containerRuntimes: sets.New[string](),
}
}

Expand Down Expand Up @@ -93,20 +93,20 @@ func (g *Generator) WithDualstack(enable bool) *Generator {
func (g *Generator) Scenarios(ctx context.Context, opts *types.Options, log *zap.SugaredLogger) ([]Scenario, error) {
scenarios := []Scenario{}

for _, version := range g.versions.List() {
for _, version := range sets.List(g.versions) {
s, err := semver.NewSemver(version)
if err != nil {
return nil, fmt.Errorf("invalid version %q: %w", version, err)
}

for _, providerName := range g.cloudProviders.List() {
for _, providerName := range sets.List(g.cloudProviders) {
datacenter, err := g.datacenter(ctx, opts.SeedClusterClient, opts.Secrets, kubermaticv1.ProviderType(providerName))
if err != nil {
return nil, fmt.Errorf("failed to determine target datacenter for provider %q: %w", providerName, err)
}

for _, operatingSystem := range g.operatingSystems.List() {
for _, cri := range g.containerRuntimes.List() {
for _, operatingSystem := range sets.List(g.operatingSystems) {
for _, cri := range sets.List(g.containerRuntimes) {
scenario, err := providerScenario(opts, kubermaticv1.ProviderType(providerName), providerconfig.OperatingSystem(operatingSystem), *s, cri, datacenter)
if err != nil {
return nil, err
Expand Down
22 changes: 11 additions & 11 deletions cmd/conformance-tester/pkg/tests/conformance.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,13 @@ func TestKubernetesConformance(
return nil
}

func getDefaultClusterContents(ctx context.Context, client ctrlruntimeclient.Client) (sets.String, sets.String, error) {
func getDefaultClusterContents(ctx context.Context, client ctrlruntimeclient.Client) (sets.Set[string], sets.Set[string], error) {
namespaceList := &corev1.NamespaceList{}
if err := client.List(ctx, namespaceList); err != nil {
return nil, nil, fmt.Errorf("failed to list namespaces: %w", err)
}

namespaces := sets.NewString()
namespaces := sets.New[string]()
for _, ns := range namespaceList.Items {
namespaces.Insert(ns.Name)
}
Expand All @@ -116,7 +116,7 @@ func getDefaultClusterContents(ctx context.Context, client ctrlruntimeclient.Cli
return nil, nil, fmt.Errorf("failed to list webhooks: %w", err)
}

webhooks := sets.NewString()
webhooks := sets.New[string]()
for _, webhook := range webhookList.Items {
webhooks.Insert(webhook.Name)
}
Expand All @@ -134,8 +134,8 @@ func runGinkgoRunWithRetries(
scenario scenarios.Scenario,
run *util.GinkgoRun,
client ctrlruntimeclient.Client,
namespacesToKeep sets.String,
webhooksToKeep sets.String,
namespacesToKeep sets.Set[string],
webhooksToKeep sets.Set[string],
) (ginkgoRes *util.GinkgoResult, err error) {
const maxAttempts = 3

Expand Down Expand Up @@ -188,8 +188,8 @@ func runGinkgo(
opts *types.Options,
run *util.GinkgoRun,
client ctrlruntimeclient.Client,
namespacesToKeep sets.String,
webhooksToKeep sets.String,
namespacesToKeep sets.Set[string],
webhooksToKeep sets.Set[string],
) (*util.GinkgoResult, error) {
log := parentLog.With("reports-dir", run.ReportsDir)

Expand Down Expand Up @@ -313,8 +313,8 @@ func cleanupBeforeGinkgo(
log *zap.SugaredLogger,
opts *types.Options,
client ctrlruntimeclient.Client,
namespacesToKeep sets.String,
webhooksToKeep sets.String,
namespacesToKeep sets.Set[string],
webhooksToKeep sets.Set[string],
) error {
log.Info("Removing non-default webhooks...")

Expand All @@ -324,7 +324,7 @@ func cleanupBeforeGinkgo(
return fmt.Errorf("failed to list webhooks: %w", err), nil
}

remaining := sets.NewString()
remaining := sets.New[string]()
for _, webhook := range webhookList.Items {
if webhooksToKeep.Has(webhook.Name) {
continue
Expand All @@ -347,7 +347,7 @@ func cleanupBeforeGinkgo(
return nil, nil
}

return fmt.Errorf("could not delete all webhooks: %v", remaining.List()), nil
return fmt.Errorf("could not delete all webhooks: %v", sets.List(remaining)), nil
}); err != nil {
return err
}
Expand Down
6 changes: 3 additions & 3 deletions cmd/conformance-tester/pkg/tests/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func TestUserClusterMetrics(ctx context.Context, log *zap.SugaredLogger, opts *c
return fmt.Errorf("failed to get prometheus metrics with data status: %s", data.Status)
}

expected := sets.NewString(
expected := sets.New(
"etcd_disk_backend_defrag_duration_seconds_sum",
"kube_daemonset_labels",
"kubelet_runtime_operations_duration_seconds_count",
Expand All @@ -107,11 +107,11 @@ func TestUserClusterMetrics(ctx context.Context, log *zap.SugaredLogger, opts *c
expected.Insert("scheduler_scheduling_attempt_duration_seconds_count")
}

fetched := sets.NewString(data.Data...)
fetched := sets.New(data.Data...)
missing := expected.Difference(fetched)

if missing.Len() > 0 {
return fmt.Errorf("failed to get all expected metrics: got: %v, %v are missing", fetched.List(), missing.List())
return fmt.Errorf("failed to get all expected metrics: got: %v, %v are missing", sets.List(fetched), sets.List(missing))
}

log.Info("Successfully validated user cluster metrics.")
Expand Down

0 comments on commit 7239870

Please sign in to comment.