-
Notifications
You must be signed in to change notification settings - Fork 280
Description
/kind bug
What steps did you take and what happened:
Creating the below K0smotron cluster with Openstack CAPO infrastructure provider
# k0smotron-cluster-with-capo.yaml
apiVersion: v1
data:
clouds.yaml: <secret_base64_encoded>
kind: Secret
metadata:
labels:
clusterctl.cluster.x-k8s.io/move: "true"
name: cluster-openstack-cloud-config
namespace: k0smotron-test-ns
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
name: database-credentials
namespace: k0smotron-test-ns
type: Opaque
data:
K0SMOTRON_KINE_DATASOURCE_URL: <secret_base64_encoded>
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
name: cluster-openstack
namespace: k0smotron-test-ns
spec:
clusterNetwork:
serviceDomain: cluster.local
controlPlaneRef:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: K0smotronControlPlane # This tells that k0smotron should create the controlplane
name: cluster-openstack
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackCluster # This tells that CAPO should create the the worker
name: cluster-openstack
---
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: K0smotronControlPlane # This is the config for the controlplane
metadata:
name: cluster-openstack
namespace: k0smotron-test-ns
spec:
replicas: 1
version: v1.33.3-k0s.0
persistence:
type: empty
#persistentVolumeClaim:
#apiVersion: v1
#kind: PersistentVolumeClaim
#metadata:
# name: cluster-openstack-pvc
#spec:
# accessModes:
# - ReadWriteOnce
# volumeMode: Filesystem
# resources:
# requests:
# storage: 10Gi
service:
type: NodePort
kineDataSourceSecretName: database-credentials
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackCluster
metadata:
name: cluster-openstack
namespace: k0smotron-test-ns
annotations:
cluster.x-k8s.io/managed-by: k0smotron # This marks the base infra to be self managed. The value of the annotation is irrelevant, as long as there is a value.
spec:
apiServerLoadBalancer:
enabled: false
disableAPIServerFloatingIP: true
disableExternalNetwork: true
apiServerFixedIP: ""
network:
id: <network_id>
subnets:
- id: <subnet_id>
identityRef:
name: cluster-openstack-cloud-config
cloudName: openstack
managedSecurityGroups:
allowAllInClusterTraffic: false
allNodesSecurityGroupRules:
- remoteManagedGroups:
- worker
direction: ingress
etherType: IPv4
name: BGP
portRangeMin: 179
portRangeMax: 179
protocol: "tcp"
description: "Allow BGP among workers"
- remoteManagedGroups:
- worker
direction: ingress
etherType: IPv4
name: IP-in-IP
protocol: "4"
description: "Allow IP-in-IP among workers"
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment
metadata:
labels:
cluster.x-k8s.io/cluster-name: cluster-openstack
name: cluster-openstack-worker-vms
namespace: k0smotron-test-ns
spec:
clusterName: cluster-openstack
replicas: 2
selector:
matchLabels: {}
template:
metadata:
labels:
cluster.x-k8s.io/cluster-name: cluster-openstack
spec:
clusterName: cluster-openstack
failureDomain: zone-1
bootstrap:
configRef:
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: K0sWorkerConfigTemplate
name: cluster-openstack-machine-config
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackMachineTemplate
name: cluster-openstack-worker-vm-template
---
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: K0sWorkerConfigTemplate
metadata:
name: cluster-openstack-machine-config
namespace: k0smotron-test-ns
spec:
template:
spec:
version: v1.33.3-k0s.0
args:
- --enable-cloud-provider
- --kubelet-extra-args="--cloud-provider=external"
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackMachineTemplate
metadata:
name: cluster-openstack-worker-vm-template
namespace: k0smotron-test-ns
spec:
template:
spec:
flavor: R2-Generic-8-16
image:
id: <image_id>
rootVolume:
sizeGiB: 100
securityGroups:
- filter:
name: default
- filter:
name: <sec_group>
sshKeyName: <key_name>
identityRef:
name: cluster-openstack-cloud-config
cloudName: openstack
region: RegionOne
ports:
- network:
id: <network_id>
Stack trace from CAPO logs
E0901 12:18:47.098071 1 controller.go:316] "Reconciler error" err="panic: runtime error: invalid memory address or nil pointer dereference [recovered]" controller="openstackmachine" controllerGroup="infrastructure.cluster.x-k8s.io" controllerKind="OpenStackMachine" OpenStackMachine="k0smotron-test-ns/cluster-openstack-worker-vms-dbr9n-pk49z" namespace="k0smotron-test-ns" name="cluster-openstack-worker-vms-dbr9n-pk49z" reconcileID="5280ad2e-127d-48a9-b366-3de5a519c970"
I0901 12:18:49.629581 1 openstackmachine_controller.go:361] "Reconciling Machine" controller="openstackmachine" controllerGroup="infrastructure.cluster.x-k8s.io" controllerKind="OpenStackMachine" OpenStackMachine="k0smotron-test-ns/cluster-openstack-worker-vms-dbr9n-xv4qs" namespace="k0smotron-test-ns" name="cluster-openstack-worker-vms-dbr9n-xv4qs" reconcileID="f2b35f20-292a-498c-b503-870a6bdc3e0c" openStackMachine="cluster-openstack-worker-vms-dbr9n-xv4qs" machine="cluster-openstack-worker-vms-dbr9n-xv4qs" cluster="cluster-openstack" openStackCluster="cluster-openstack"
E0901 12:18:49.630027 1 signal_unix.go:917] "Observed a panic" controller="openstackmachine" controllerGroup="infrastructure.cluster.x-k8s.io" controllerKind="OpenStackMachine" OpenStackMachine="k0smotron-test-ns/cluster-openstack-worker-vms-dbr9n-xv4qs" namespace="k0smotron-test-ns" name="cluster-openstack-worker-vms-dbr9n-xv4qs" reconcileID="f2b35f20-292a-498c-b503-870a6bdc3e0c" panic="runtime error: invalid memory address or nil pointer dereference" panicGoValue=""invalid memory address or nil pointer dereference"" stacktrace=<
goroutine 391 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic({0x24cb1f0, 0xc000941e60}, {0x1e33ba0, 0x371dcb0})
/go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:107 +0xbc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile.func1()
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:105 +0x112
panic({0x1e33ba0?, 0x371dcb0?})
/usr/local/go/src/runtime/panic.go:791 +0x132
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackMachineReconciler).getOrCreateMachineServer(0xc000014420, {0x24cb1f0, 0xc000941e60}, 0xc000a81608, 0xc000831408, 0xc000831908)
/workspace/controllers/openstackmachine_controller.go:591 +0x35a
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackMachineReconciler).reconcileMachineServer(0x24d1de8?, {0x24cb1f0?, 0xc000941e60?}, 0xc001104c30, 0x13?, 0x0?, 0x0?)
/workspace/controllers/openstackmachine_controller.go:549 +0x3d
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackMachineReconciler).reconcileNormal(0xc000014420, {0x24cb1f0, 0xc000941e60}, 0xc001104c30, {0xc001047f20, 0x23}, 0xc000a81608, 0xc000831908, 0xc000831408)
/workspace/controllers/openstackmachine_controller.go:363 +0x178
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackMachineReconciler).Reconcile(0xc000014420, {0x24cb1f0, 0xc000941e60}, {{{0xc0009a9ad0?, 0xc000941e60?}, {0xc00114c210?, 0x0?}}})
/workspace/controllers/openstackmachine_controller.go:161 +0xbd8
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile(0xc000c94500?, {0x24cb1f0?, 0xc000941e60?}, {{{0xc0009a9ad0?, 0x0?}, {0xc00114c210?, 0x0?}}})
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:116 +0xbf
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler(0x24e4fa0, {0x24cb228, 0xc000671540}, {{{0xc0009a9ad0, 0x11}, {0xc00114c210, 0x28}}})
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:303 +0x3a5
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem(0x24e4fa0, {0x24cb228, 0xc000671540})
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:263 +0x20e
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:224 +0x85
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2 in goroutine 128
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:220 +0x510
What did you expect to happen:
Machines created
Environment:
- Cluster API Provider OpenStack version (Or
git rev-parse HEAD
if manually built): - Cluster-API version: 0.12.4
- OpenStack version:
- Minikube/KIND version: RKE2 1.32.5
- Kubernetes version (use
1.32
): - OS (e.g. from
**PRETTY_NAME="Ubuntu 22.04.2 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.2 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy**
):
Metadata
Metadata
Assignees
Labels
Type
Projects
Status