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

operator-sdk up local for Ansible triggers "failed to add controller" when using multiple kinds in watches.yaml #962

Closed
xt99 opened this issue Jan 21, 2019 · 2 comments · Fixed by #963
Assignees
Labels
language/ansible Issue is related to an Ansible operator project

Comments

@xt99
Copy link

xt99 commented Jan 21, 2019

Bug Report

What did you do?

Run Operator SDK with next command:

OPERATOR_NAME=ambrosia-operator operator-sdk up local --kubeconfig $HOME/.kube/config --namespace myproject

with next content in watches.yaml:

---
- version: v1alpha1
  group: analytics.acmecorp.com
  kind: Ambrosia
  role: /opt/ansible/roles/ambrosia
  reconcilePeriod: 30s

- version: v1alpha1
  group: analytics.acmecorp.com
  kind: AcmeAgent
  role: /opt/ansible/roles/acmeagent
  reconcilePeriod: 30s

What did you expect to see?
Successful run of local Ansible Operator for both Ambrosia and AcmeAgent resources.

What did you see instead? Under which circumstances?

INFO[0000] Running the operator locally.
INFO[0000] Go Version: go1.10.3
INFO[0000] Go OS/Arch: linux/amd64
INFO[0000] Version of operator-sdk: v0.4.0
INFO[0000] Watching myproject namespace.
{"level":"info","ts":1548067633.9967425,"logger":"leader","msg":"Trying to become the leader."}
{"level":"info","ts":1548067633.997802,"logger":"leader","msg":"Skipping leader election; not running in a cluster."}
{"level":"info","ts":1548067634.005074,"logger":"proxy","msg":"Starting to serve","Address":"127.0.0.1:8888"}
{"level":"info","ts":1548067634.050625,"logger":"ansible-controller","msg":"Watching resource","Options.Group":"analytics.acmecorp.com","Options.Version":"v1alpha1","Options.Kind":"Ambrosia"}
{"level":"info","ts":1548067634.054066,"logger":"kubebuilder.controller","msg":"Starting EventSource","controller":"ambrosia-controller","source":"kind source: analytics.acmecorp.com/v1alpha1, Kind=Ambrosia"}
{"level":"info","ts":1548067634.0556498,"logger":"ansible-controller","msg":"Watching resource","Options.Group":"analytics.acmecorp.com","Options.Version":"v1alpha1","Options.Kind":"AcmeAgent"}
{"level":"info","ts":1548067634.056412,"logger":"ansible-controller","msg":"Version already registered... skipping"}
FATA[0000] failed to add controller

Environment

  • operator-sdk version:

    0.4.0

  • Kubernetes cluster kind:

    Ambrosia and AcmeAgent

  • Are you writing your operator in ansible, helm, or go?

    Ansible

Additional context

In Operator SDK 0.3.0 this was working as expected:

INFO[0000] Running the operator locally.
INFO[0000] Go Version: go1.11.2
INFO[0000] Go OS/Arch: linux/amd64
INFO[0000] operator-sdk Version: v0.3.0
INFO[0000] watching namespace: myproject
{"level":"info","ts":1548067210.2279043,"logger":"proxy","msg":"Starting to serve","Address":"127.0.0.1:8888"}
{"level":"info","ts":1548067210.2355886,"logger":"ansible-controller","msg":"Watching resource","Options.Group":"analytics.acmecorp.com","Options.Version":"v1alpha1","Options.Kind":"Ambrosia"}
{"level":"info","ts":1548067210.2368877,"logger":"kubebuilder.controller","msg":"Starting EventSource","controller":"ambrosia-controller","source":"kind source: analytics.acmecorp.com/v1alpha1, Kind=Ambrosia"}
{"level":"info","ts":1548067210.237864,"logger":"ansible-controller","msg":"Watching resource","Options.Group":"analytics.acmecorp.com","Options.Version":"v1alpha1","Options.Kind":"AcmeAgent"}
{"level":"info","ts":1548067210.238731,"logger":"kubebuilder.controller","msg":"Starting EventSource","controller":"acmeagent-controller","source":"kind source: analytics.acmecorp.com/v1alpha1, Kind=AcmeAgent"}
{"level":"info","ts":1548067210.5406246,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"acmeagent-controller"}
{"level":"info","ts":1548067210.5419552,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"ambrosia-controller"}
{"level":"info","ts":1548067210.6451242,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"ambrosia-controller","worker count":1}
{"level":"info","ts":1548067210.6456113,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"acmeagent-controller","worker count":1}

Also when I remove one of the watched resources in watches.yaml everything works as expected again.

Seems like Operator SDK 0.4.0 doesn't like multiple watched resources for Ansible.

@shawn-hurley shawn-hurley added the language/ansible Issue is related to an Ansible operator project label Jan 21, 2019
@shawn-hurley
Copy link
Member

@xt99 I think I know what the problem is, will be pushing up a fix ASAP

@xt99
Copy link
Author

xt99 commented Jan 21, 2019

That would be great! Thanks a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
language/ansible Issue is related to an Ansible operator project
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants