provider-argocd
provider-argocd copied to clipboard
provider fails due to nil pointer derefence
What happened?
As soon as I create a repository resource the provider fails with segfault.
This is the created resource (resource hashes might not match between example and error message. the resource is created as part of a composition.)
apiVersion: repositories.argocd.crossplane.io/v1alpha1
kind: Repository
metadata:
name: test-app-m4d4m
spec:
forProvider:
passwordRef:
key: token
name: test-app-m4d4m-deploy-token
namespace: crossplane-system
repo: https://gitlab.com/b4221/demo-application.git
type: git
username: argocd
providerConfigRef:
name: argocd-provider
My providerConfig is created for a locally hosted argocd in the same cluster (as described by the readme):
// kg providerconfig.argocd argocd-provider -o yaml
apiVersion: argocd.crossplane.io/v1alpha1
kind: ProviderConfig
metadata:
name: argocd-provider
spec:
credentials:
secretRef:
key: authToken
name: argocd-credentials
namespace: crossplane-system
source: Secret
insecure: true
serverAddr: argocd-server.argocd.svc:443
status:
users: 1
// make run
22:30:52 [ .. ] go build linux_amd64
go build: -i flag is deprecated
22:30:58 [ OK ] go build linux_amd64
22:30:58 [ .. ] Running Crossplane locally out-of-cluster . . .
/home/blut/provider-argocd/_output/bin/linux_amd64/provider --debug
2022-02-16T22:30:59.473+0100 DEBUG provider-argocd Starting {"sync-period": "1h0m0s"}
I0216 22:31:00.526958 12499 request.go:655] Throttling request took 1.0375678s, request: GET:https://127.0.0.1:62477/apis/node.k8s.io/v1beta1?timeout=32s
2022-02-16T22:31:00.877+0100 INFO controller-runtime.metrics metrics server is starting to listen {"addr": ":8080"}
2022-02-16T22:31:00.878+0100 INFO controller-runtime.manager starting metrics server {"path": "/metrics"}
2022-02-16T22:31:00.878+0100 INFO controller-runtime.manager.controller.managed/cluster Starting EventSource {"reconciler group": "cluster.argocd.crossplane.io", "reconciler kind": "Cluster", "source": "kind source: /, Kind="}
2022-02-16T22:31:00.878+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting EventSource {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig", "source": "kind source: /, Kind="}
2022-02-16T22:31:00.879+0100 INFO controller-runtime.manager.controller.managed/project Starting EventSource {"reconciler group": "projects.argocd.crossplane.io", "reconciler kind": "Project", "source": "kind source: /, Kind="}
2022-02-16T22:31:00.879+0100 INFO controller-runtime.manager.controller.managed/repository Starting EventSource {"reconciler group": "repositories.argocd.crossplane.io", "reconciler kind": "Repository", "source": "kind source: /, Kind="}
2022-02-16T22:31:00.986+0100 INFO controller-runtime.manager.controller.managed/cluster Starting Controller {"reconciler group": "cluster.argocd.crossplane.io", "reconciler kind": "Cluster"}
2022-02-16T22:31:00.986+0100 INFO controller-runtime.manager.controller.managed/cluster Starting workers {"reconciler group": "cluster.argocd.crossplane.io", "reconciler kind": "Cluster", "worker count": 1}
2022-02-16T22:31:00.987+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting EventSource {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig", "source": "kind source: /, Kind="}
2022-02-16T22:31:00.987+0100 INFO controller-runtime.manager.controller.managed/project Starting Controller {"reconciler group": "projects.argocd.crossplane.io", "reconciler kind": "Project"}
2022-02-16T22:31:00.996+0100 INFO controller-runtime.manager.controller.managed/repository Starting Controller {"reconciler group": "repositories.argocd.crossplane.io", "reconciler kind": "Repository"}
2022-02-16T22:31:00.997+0100 INFO controller-runtime.manager.controller.managed/repository Starting workers {"reconciler group": "repositories.argocd.crossplane.io", "reconciler kind": "Repository", "worker count": 1}
2022-02-16T22:31:00.997+0100 DEBUG provider-argocd Reconciling {"controller": "managed/repository", "request": "/test-app-68qcn"}
2022-02-16T22:31:01.089+0100 INFO controller-runtime.manager.controller.managed/project Starting workers {"reconciler group": "projects.argocd.crossplane.io", "reconciler kind": "Project", "worker count": 1}
2022-02-16T22:31:01.089+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting Controller {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig"}
2022-02-16T22:31:01.091+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting workers {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig", "worker count": 1}
2022-02-16T22:31:01.093+0100 DEBUG provider-argocd Reconciling {"controller": "providerconfig/providerconfig.argocd.crossplane.io", "request": "/argocd-provider"}
E0216 22:31:01.101309 12499 runtime.go:78] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
goroutine 351 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic({0x1b3fb00, 0x32adb40})
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:74 +0x85
k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc000b34000})
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:48 +0x75
panic({0x1b3fb00, 0x32adb40})
/home/blut/.go/src/runtime/panic.go:1038 +0x215
github.com/crossplane-contrib/provider-argocd/pkg/clients.UseProviderConfig({0x2090340, 0xc0002c2d20}, {0x20c8080, 0xc000400c80}, {0x20eb6e0, 0xc0008d9200})
/home/blut/provider-argocd/pkg/clients/argocd.go:83 +0x2a3
github.com/crossplane-contrib/provider-argocd/pkg/clients.GetConfig({0x2090340, 0xc0002c2d20}, {0x20c8080, 0xc000400c80}, {0x20eb6e0, 0xc0008d9200})
/home/blut/provider-argocd/pkg/clients/argocd.go:52 +0xd7
github.com/crossplane-contrib/provider-argocd/pkg/controller/repositories.(*connector).Connect(0xc0008bc9c0, {0x2090340, 0xc0002c2d20}, {0x20eb6e0, 0xc0008d9200})
/home/blut/provider-argocd/pkg/controller/repositories/controller.go:81 +0x5f
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile(0xc00029a5a0, {0xc0002c4f00, 0x1b3c980}, {{{0x0, 0x1bfe3c0}, {0xc0008b44b0, 0xc000aa44c0}}})
/home/blut/provider-argocd/.work/pkg/pkg/mod/github.com/crossplane/[email protected]/pkg/reconciler/managed/reconciler.go:564 +0xb0a
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc00029a640, {0x20902d0, 0xc0002c4f00}, {0x1bc2ec0, 0xc000b34000})
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:298 +0x303
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc00029a640, {0x20902d0, 0xc0002c4f00})
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:253 +0x205
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.2({0x20902d0, 0xc0002c4f00})
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:216 +0x46
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1()
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:185 +0x25
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0x7f3d0ccb5c30)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:155 +0x67
k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0x0, {0x20533a0, 0xc000ba9290}, 0x1, 0xc00055af00)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:156 +0xb6
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0x20533a0, 0x3b9aca00, 0x0, 0xe0, 0x101000000020001)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:133 +0x89
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext({0x20902d0, 0xc0002c4f00}, 0xc000bac3b0, 0xc0007cc7a0, 0x1161aa6, 0x80)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:185 +0x99
k8s.io/apimachinery/pkg/util/wait.UntilWithContext({0x20902d0, 0xc0002c4f00}, 0xc0006ea4c0, 0xc0007cc7b8)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:99 +0x2b
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:213 +0x356
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=0x0 pc=0x197bee3]
goroutine 351 [running]:
k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc000b34000})
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:55 +0xd8
panic({0x1b3fb00, 0x32adb40})
/home/blut/.go/src/runtime/panic.go:1038 +0x215
github.com/crossplane-contrib/provider-argocd/pkg/clients.UseProviderConfig({0x2090340, 0xc0002c2d20}, {0x20c8080, 0xc000400c80}, {0x20eb6e0, 0xc0008d9200})
/home/blut/provider-argocd/pkg/clients/argocd.go:83 +0x2a3
github.com/crossplane-contrib/provider-argocd/pkg/clients.GetConfig({0x2090340, 0xc0002c2d20}, {0x20c8080, 0xc000400c80}, {0x20eb6e0, 0xc0008d9200})
/home/blut/provider-argocd/pkg/clients/argocd.go:52 +0xd7
github.com/crossplane-contrib/provider-argocd/pkg/controller/repositories.(*connector).Connect(0xc0008bc9c0, {0x2090340, 0xc0002c2d20}, {0x20eb6e0, 0xc0008d9200})
/home/blut/provider-argocd/pkg/controller/repositories/controller.go:81 +0x5f
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile(0xc00029a5a0, {0xc0002c4f00, 0x1b3c980}, {{{0x0, 0x1bfe3c0}, {0xc0008b44b0, 0xc000aa44c0}}})
/home/blut/provider-argocd/.work/pkg/pkg/mod/github.com/crossplane/[email protected]/pkg/reconciler/managed/reconciler.go:564 +0xb0a
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc00029a640, {0x20902d0, 0xc0002c4f00}, {0x1bc2ec0, 0xc000b34000})
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:298 +0x303
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc00029a640, {0x20902d0, 0xc0002c4f00})
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:253 +0x205
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.2({0x20902d0, 0xc0002c4f00})
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:216 +0x46
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1()
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:185 +0x25
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0x7f3d0ccb5c30)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:155 +0x67
k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0x0, {0x20533a0, 0xc000ba9290}, 0x1, 0xc00055af00)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:156 +0xb6
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0x20533a0, 0x3b9aca00, 0x0, 0xe0, 0x101000000020001)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:133 +0x89
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext({0x20902d0, 0xc0002c4f00}, 0xc000bac3b0, 0xc0007cc7a0, 0x1161aa6, 0x80)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:185 +0x99
k8s.io/apimachinery/pkg/util/wait.UntilWithContext({0x20902d0, 0xc0002c4f00}, 0xc0006ea4c0, 0xc0007cc7b8)
/home/blut/provider-argocd/.work/pkg/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:99 +0x2b
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1
/home/blut/provider-argocd/.work/pkg/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:213 +0x356
make: *** [Makefile:98: run] Error 2
How can we reproduce it?
Example resources have been included in the description.
What environment did it happen in?
crossplane v1.6.3 kubernetes kind v1.21.1 provider-argocd v0.1.0 argocd v2.2.5
as a workaround, please try to set plainText
in your providerconfig
This resolves the nil pointer dereference, however the repository resource is still not created in argocd. It appears the controller does not reconcile the repository resource.
// make run
09:53:44 [ .. ] go build linux_amd64
go build: -i flag is deprecated
09:54:51 [ OK ] go build linux_amd64
09:54:51 [ .. ] Running Crossplane locally out-of-cluster . . .
/home/blut/provider-argocd/_output/bin/linux_amd64/provider --debug
2022-02-17T09:54:52.734+0100 DEBUG provider-argocd Starting {"sync-period": "1h0m0s"}
I0217 09:54:53.793651 3128 request.go:655] Throttling request took 1.01386s, request: GET:https://127.0.0.1:62477/apis/authorization.k8s.io/v1?timeout=32s
2022-02-17T09:54:54.153+0100 INFO controller-runtime.metrics metrics server is starting to listen {"addr": ":8080"}
2022-02-17T09:54:54.158+0100 INFO controller-runtime.manager starting metrics server {"path": "/metrics"}
2022-02-17T09:54:54.158+0100 INFO controller-runtime.manager.controller.managed/project Starting EventSource {"reconciler group": "projects.argocd.crossplane.io", "reconciler kind": "Project", "source": "kind source: /, Kind="}
2022-02-17T09:54:54.159+0100 INFO controller-runtime.manager.controller.managed/repository Starting EventSource {"reconciler group": "repositories.argocd.crossplane.io", "reconciler kind": "Repository", "source": "kind source: /, Kind="}
2022-02-17T09:54:54.158+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting EventSource {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig", "source": "kind source: /, Kind="}
2022-02-17T09:54:54.159+0100 INFO controller-runtime.manager.controller.managed/cluster Starting EventSource {"reconciler group": "cluster.argocd.crossplane.io", "reconciler kind": "Cluster", "source": "kind source: /, Kind="}
2022-02-17T09:54:54.259+0100 INFO controller-runtime.manager.controller.managed/project Starting Controller {"reconciler group": "projects.argocd.crossplane.io", "reconciler kind": "Project"}
2022-02-17T09:54:54.260+0100 INFO controller-runtime.manager.controller.managed/project Starting workers {"reconciler group": "projects.argocd.crossplane.io", "reconciler kind": "Project", "worker count": 1}
2022-02-17T09:54:54.260+0100 INFO controller-runtime.manager.controller.managed/repository Starting Controller {"reconciler group": "repositories.argocd.crossplane.io", "reconciler kind": "Repository"}
2022-02-17T09:54:54.260+0100 INFO controller-runtime.manager.controller.managed/repository Starting workers {"reconciler group": "repositories.argocd.crossplane.io", "reconciler kind": "Repository", "worker count": 1}
2022-02-17T09:54:54.261+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting EventSource {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig", "source": "kind source: /, Kind="}
2022-02-17T09:54:54.261+0100 INFO controller-runtime.manager.controller.managed/cluster Starting Controller {"reconciler group": "cluster.argocd.crossplane.io", "reconciler kind": "Cluster"}
2022-02-17T09:54:54.363+0100 INFO controller-runtime.manager.controller.managed/cluster Starting workers {"reconciler group": "cluster.argocd.crossplane.io", "reconciler kind": "Cluster", "worker count": 1}
2022-02-17T09:54:54.364+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting Controller {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig"}
2022-02-17T09:54:54.370+0100 INFO controller-runtime.manager.controller.providerconfig/providerconfig.argocd.crossplane.io Starting workers {"reconciler group": "argocd.crossplane.io", "reconciler kind": "ProviderConfig", "worker count": 1}
2022-02-17T09:54:54.375+0100 DEBUG provider-argocd Reconciling {"controller": "providerconfig/providerconfig.argocd.crossplane.io", "request": "/argocd-provider"}
Hmm, does it also happen when you install the provider via kubectl crossplane install provider crossplane/provider-argocd:v0.1.0
?
same behaviour, but without debug output (I can check if the same output is printed later)
Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale
because it has had no activity in the last 90 days. It will be closed in 7 days if no further activity occurs. Leaving a comment starting with /fresh
will mark this issue as not stale.
/fresh
Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale
because it has had no activity in the last 90 days. It will be closed in 7 days if no further activity occurs. Leaving a comment starting with /fresh
will mark this issue as not stale.
/fresh
This appears to have been fixed in #31.