Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

panic when setting disableExternalNetwork: true #2260

Open
faelis opened this issue Nov 19, 2024 · 0 comments · May be fixed by #2261
Open

panic when setting disableExternalNetwork: true #2260

faelis opened this issue Nov 19, 2024 · 0 comments · May be fixed by #2261
Assignees
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@faelis
Copy link

faelis commented Nov 19, 2024

/kind bug

What steps did you take and what happened:
I create a openstackcluster like this :

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackCluster
metadata:
  name: foo
  namespace: foo-cluster
spec:
  identityRef:
    cloudName: idf1
    name: clouds.idf1.opp
  managedSubnets:
  - cidr: 192.168.100.0/24
  disableExternalNetwork: true

And this happen in the 'capo-controller-manager' :

I1119 10:29:16.598608       1 controller.go:110] "Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference" controller="openstackcluster" controllerGroup="infrastructure.cluster.x-k8s.io" controllerKind="OpenStackCluster" OpenStackCluster="foo-cluster/foo" namespace="foo-cluster" name="foo" reconcileID="29b6c15b-d500-4fc8-8a1f-d56223a4e226"
panic: runtime error: invalid memory address or nil pointer dereference [recovered]                                                                                                                panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x1b774f9]

goroutine 357 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()                                                                                                             /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:111 +0x1e5
panic({0x1dccbe0?, 0x362a670?})
        /usr/local/go/src/runtime/panic.go:770 +0x132
sigs.k8s.io/cluster-api-provider-openstack/pkg/cloud/services/networking.(*Service).GetOrCreateFloatingIP(0xc000392bd0, {0x242a030, 0xc0004a4588}, 0x1cce7a0?, {0xc000a72680?, 0x1cce7a0?}, 0xc000afcae0?)
        /workspace/pkg/cloud/services/networking/floatingip.go:53 +0xf9
sigs.k8s.io/cluster-api-provider-openstack/controllers.reconcileControlPlaneEndpoint(0xc000392bd0?, 0xc0004a4588?, 0xc0004a4588, {0xc000a72680?, 0x1e?})
        /workspace/controllers/openstackcluster_controller.go:804 +0x290
sigs.k8s.io/cluster-api-provider-openstack/controllers.reconcileNetworkComponents(0xc000b00db0, 0xc0005fc000, 0xc0004a4588)
        /workspace/controllers/openstackcluster_controller.go:685 +0x428
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackClusterReconciler).reconcileNormal(0xc0003e5ec0, {0x2440510, 0xc00076e660}, 0xc000b00db0, 0xc0005fc000, 0xc0004a4588)
        /workspace/controllers/openstackcluster_controller.go:312 +0xf2
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackClusterReconciler).Reconcile(0xc0003e5ec0, {0x2440510, 0xc00076e660}, {{{0xc0008049f0?, 0x0?}, {0xc0008049ec?, 0xc0002a5d10?}}})
        /workspace/controllers/openstackcluster_controller.go:135 +0x6d0
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x2446788?, {0x2440510?, 0xc00076e660?}, {{{0xc0008049f0?, 0xb?}, {0xc0008049ec?, 0x0?}}})
        /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:114 +0xb7
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0001668f0, {0x2440548, 0xc0005f8b90}, {0x1e96420, 0xc000386680})
        /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:311 +0x3bc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0001668f0, {0x2440548, 0xc0005f8b90})
        /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:261 +0x1be
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()                                                                                                               /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:222 +0x79
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 184
        /go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:218 +0x486

What did you expect to happen:
No panic in the controller.

Anything else you would like to add:
i think it's due to this

fpCreateOpts.FloatingNetworkID = openStackCluster.Status.ExternalNetwork.ID

Go try to get the id of the externalnetwork, but externalnetwork is disabled

Environment:

  • Cluster API Provider OpenStack version (Or git rev-parse HEAD if manually built): 0.11.2
  • Cluster-API version: 1.8.4
  • OpenStack version: yoga
  • Minikube/KIND version: NA
  • Kubernetes version (use kubectl version): 1.31
  • OS (e.g. from /etc/os-release): talos
@k8s-ci-robot k8s-ci-robot added the kind/bug Categorizes issue or PR as related to a bug. label Nov 19, 2024
@EmilienM EmilienM self-assigned this Nov 19, 2024
@EmilienM EmilienM linked a pull request Nov 19, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
Status: Inbox
Development

Successfully merging a pull request may close this issue.

3 participants