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

feat:Improve log format of Ansible-based Operators #2321

Merged
merged 2 commits into from
Dec 13, 2019
Merged

feat:Improve log format of Ansible-based Operators #2321

merged 2 commits into from
Dec 13, 2019

Conversation

camilamacedo86
Copy link
Contributor

@camilamacedo86 camilamacedo86 commented Dec 11, 2019

Description of the change:

  • Print the Ansible Tasks Outputs formatted in the container logs

Motivation for the change:

  • Allow users test/debug ansible operators locally by running operator-sdk up local and check the logs
  • Make easier to check the logs since it provides the Ansible output as well.

Closes #2244

Local test with the scenario of #2244

$ kubectl logs deployment.apps/memcached-operator -c operator -n memcached
{"level":"info","ts":1576167898.9148664,"logger":"cmd","msg":"Go Version: go1.13.3"}
{"level":"info","ts":1576167898.9149115,"logger":"cmd","msg":"Go OS/Arch: linux/amd64"}
{"level":"info","ts":1576167898.9149296,"logger":"cmd","msg":"Version of operator-sdk: v0.13.0+git"}
{"level":"info","ts":1576167898.9149444,"logger":"cmd","msg":"Watching namespace.","Namespace":"memcached"}
{"level":"info","ts":1576167899.2269607,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":"0.0.0.0:8383"}
{"level":"info","ts":1576167899.2279701,"logger":"watches","msg":"Environment variable not set; using default value","envVar":"WORKER_MEMCACHED_CACHE_EXAMPLE_COM","default":1}
{"level":"info","ts":1576167899.228028,"logger":"watches","msg":"Environment variable not set; using default value","envVar":"ANSIBLE_VERBOSITY_MEMCACHED_CACHE_EXAMPLE_COM","default":2}
{"level":"info","ts":1576167899.228067,"logger":"ansible-controller","msg":"Watching resource","Options.Group":"cache.example.com","Options.Version":"v1alpha1","Options.Kind":"Memcached"}
{"level":"info","ts":1576167899.2283535,"logger":"leader","msg":"Trying to become the leader."}
{"level":"info","ts":1576167899.5672975,"logger":"leader","msg":"No pre-existing lock was found."}
{"level":"info","ts":1576167899.570518,"logger":"leader","msg":"Became the leader."}
{"level":"info","ts":1576167900.1903841,"logger":"metrics","msg":"Metrics Service object created","Service.Name":"memcached-operator-metrics","Service.Namespace":"memcached"}
{"level":"info","ts":1576167900.1940093,"logger":"proxy","msg":"Starting to serve","Address":"127.0.0.1:8888"}
{"level":"info","ts":1576167900.1948476,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"memcached-controller","source":"kind source: cache.example.com/v1alpha1, Kind=Memcached"}
{"level":"info","ts":1576167900.1945882,"logger":"controller-runtime.manager","msg":"starting metrics server","path":"/metrics"}
{"level":"info","ts":1576167900.1953237,"logger":"controller-runtime.controller","msg":"Starting Controller","controller":"memcached-controller"}
{"level":"info","ts":1576167900.2963946,"logger":"controller-runtime.controller","msg":"Starting workers","controller":"memcached-controller","worker count":1}
{"level":"info","ts":1576167903.265739,"logger":"logging_event_handler","msg":"[playbook task]","name":"example-memcached","namespace":"memcached","gvk":"cache.example.com/v1alpha1, Kind=Memcached","event_type":"playbook_on_task_start","job":"6129484611666145821","EventData.Name":"Gathering Facts"}

--------------------------- Ansible Task StdOut -------------------------------

TASK [Gathering Facts] *********************************************************

-------------------------------------------------------------------------------
{"level":"info","ts":1576167904.6526327,"logger":"logging_event_handler","msg":"[playbook task]","name":"example-memcached","namespace":"memcached","gvk":"cache.example.com/v1alpha1, Kind=Memcached","event_type":"playbook_on_task_start","job":"6129484611666145821","EventData.Name":"Memcached : start memcached"}

--------------------------- Ansible Task StdOut -------------------------------

TASK [Memcached : start memcached] *********************************************
task path: /opt/ansible/roles/Memcached/tasks/main.yml:3

-------------------------------------------------------------------------------
{"level":"info","ts":1576167906.8293905,"logger":"proxy","msg":"Cache miss: apps/v1, Kind=Deployment, memcached/example-memcached-memcached"}
{"level":"info","ts":1576167906.8375957,"logger":"proxy","msg":"Injecting owner reference"}
{"level":"info","ts":1576167906.8379967,"logger":"proxy","msg":"Watching child resource","kind":"apps/v1, Kind=Deployment","enqueue_kind":"cache.example.com/v1alpha1, Kind=Memcached"}
{"level":"info","ts":1576167906.8381782,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"memcached-controller","source":"kind source: apps/v1, Kind=Deployment"}
{"level":"info","ts":1576167907.0845776,"logger":"logging_event_handler","msg":"[playbook debug]","name":"example-memcached","namespace":"memcached","gvk":"cache.example.com/v1alpha1, Kind=Memcached","event_type":"runner_on_ok","job":"6129484611666145821","EventData.TaskArgs":""}

--------------------------- Ansible Task StdOut -------------------------------

 TASK [test ansible operator debug] ******************************** 
ok: [localhost] => {
    "msg": "test!"
}

-------------------------------------------------------------------------------
{"level":"info","ts":1576167907.2947147,"logger":"runner","msg":"Ansible-runner exited successfully","job":"6129484611666145821","name":"example-memcached","namespace":"memcached"}

@openshift-ci-robot openshift-ci-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Dec 11, 2019
Copy link
Member

@jmrodri jmrodri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Dec 13, 2019
@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Dec 13, 2019
@openshift-ci-robot
Copy link

New changes are detected. LGTM label has been removed.

@camilamacedo86 camilamacedo86 added lgtm Indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Dec 13, 2019
@camilamacedo86 camilamacedo86 merged commit 1fa8c0f into operator-framework:master Dec 13, 2019
@camilamacedo86 camilamacedo86 deleted the log-format branch December 13, 2019 18:38
@fabianvf
Copy link
Member

awesome!

camilamacedo86 added a commit that referenced this pull request Feb 25, 2020
…le logs on it (#2589)

**Description of the change:**

- Add full Ansible result output to the operator logs for Ansible based-operators configurable by EnvVar.

**Motivation for the change:**

Allow users to have the same full information that can be obtained until the version 0.15.x with the Ansible sidecar container in the operator logs. 

Note that we deprecated the inotify-tools and we will no longer scaffold the sidecar container. See #2586. Also, we have been improving the operator logs in order to attend all needs. See: #2580 and #2321.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ansible logs when running operator-sdk local
5 participants