Hi all !
When supporting openshift-ansible, users share pastes like (ie. on IRC)::
TASK: [openshift_serviceaccounts | Grant the user access to the privileged scc] ***
changed: [li1491-86.members.linode.com] => (item=[‘router’, {‘cmd’: [‘oc’, ‘get’, ‘scc’, ‘privileged’, ‘-o’, ‘yaml’], ‘end’: ‘2016-05-05 13:31:50.216857’, ‘stderr’: u’‘, ‘stdout’: ‘allowHostDirVolumePlugin: true\nallowHostIPC: true\nallowHostNetwork: true\nallowHostPID: true\nallowHostPorts: true\nallowPrivilegedContainer: true\nallowedCapabilities: null\napiVersion: v1\ndefaultAddCapabilities: null\nfsGroup:\n type: RunAsAny\ngroups:\n- system:cluster-admins\n- system:nodes\nkind: SecurityContextConstraints\nmetadata:\n annotations:\n kubernetes.io/description: 'privileged allows access to all privileged and host\n features and the ability to run as any user, any group, any fsGroup, and with\n any SELinux context. WARNING: this is the most relaxed SCC and should be used\n only for cluster administration. Grant with caution.'\n creationTimestamp: 2016-05-05T13:30:06Z\n name: privileged\n resourceVersion: “371”\n selfLink: /api/v1/securitycontextconstraints/privileged\n uid: 7ae22005-12c5-11e6-9bc5-06174e73e52a\npriority: null\nreadOnlyRootFilesystem: false\nrequiredDropCapabilities: null\nrunAsUser:\n type: RunAsAny\nseLinuxContext:\n type: RunAsAny\nsupplementalGroups:\n type: RunAsAny\nusers:\n- system:serviceaccount:openshift-infra:build-controller\n- system:serviceaccount:management-infra:management-admin\n- system:serviceaccount:management-infra:inspector-admin\nvolumes:\n- ''‘, ‘item’: ‘privileged’, ‘changed’: False, ‘rc’: 0, ‘failed’: False, ‘warnings’: [], ‘delta’: ‘0:00:00.264340’, ‘invocation’: {‘module_name’: u’command’, ‘module_complex_args’: {}, ‘module_args’: u’oc get scc privileged -o yaml’}, ‘stdout_lines’: [‘allowHostDirVolumePlugin: true’, ‘allowHostIPC: true’, ‘allowHostNetwork: true’, ‘allowHostPID: true’, ‘allowHostPorts: true’, ‘allowPrivilegedContainer: true’, ‘allowedCapabilities: null’, ‘apiVersion: v1’, ‘defaultAddCapabilities: null’, ‘fsGroup:’, ’ type: RunAsAny’, ‘groups:’, ‘- system:cluster-admins’, ‘- system:nodes’, ‘kind: SecurityContextConstraints’, ‘metadata:’, ’ annotations:‘, " kubernetes.io/description: ‘privileged allows access to all privileged and host", ’ features and the ability to run as any user, any group, any fsGroup, and with’, ’ any SELinux context. WARNING: this is the most relaxed SCC and should be used’, " only for cluster administration. Grant with caution.‘", ’ creationTimestamp: 2016-05-05T13:30:06Z’, ’ name: privileged’, ’ resourceVersion: “371”‘, ’ selfLink: /api/v1/securitycontextconstraints/privileged’, ’ uid: 7ae22005-12c5-11e6-9bc5-06174e73e52a’, ‘priority: null’, ‘readOnlyRootFilesystem: false’, ‘requiredDropCapabilities: null’, ‘runAsUser:’, ’ type: RunAsAny’, ‘seLinuxContext:’, ’ type: RunAsAny’, ‘supplementalGroups:’, ’ type: RunAsAny’, ‘users:’, ‘- system:serviceaccount:openshift-infra:build-controller’, ‘- system:serviceaccount:management-infra:management-admin’, ‘- system:serviceaccount:management-infra:inspector-admin’, ‘volumes:’, "- '’"], ‘failed_when_result’: False, ‘start’: ‘2016-05-05 13:31:49.952517’}])
changed: [li1491-86.members.linode.com] => (item=[‘registry’, {‘cmd’: [‘oc’, ‘get’, ‘scc’, ‘privileged’, ‘-o’, ‘yaml’], ‘end’: ‘2016-05-05 13:31:50.216857’, ‘stderr’: u’', ‘stdout’: ‘allowHostDirVolumePlugin: true\nallowHostIPC: true\nallowHostNetwork: true\nallowHostPID: true\nallowHostPorts: true\nallowPrivilegedContainer: true\nallowedCapabilities: null\napiVersion: v1\ndefaultAddCapabilities: null\nfsGroup:\n type: RunAsAny\ngroups:\n- system:cluster-admins\n- system:nodes\nkind: SecurityContextConstraints\nmetadata:\n annotations:\n kubernetes.io/description: 'privileged allows access to all privileged and host\n features and the ability to run as any user, any group, any fsGroup, and with\n any SELinux context. WARNING: this is the most relaxed SCC and should be used\n only for cluster administration. Grant with caution.'\n creationTimestamp: 2016-05-05T13:30:06Z\n name: privileged\n resourceVersion: “371”\n selfLink: /api/v1/securitycontextconstraints/privileged\n uid: 7ae22005-12c5-11e6-9bc5-06174e73e52a\npriority: null\nreadOnlyRootFilesystem: false\nrequiredDropCapabilities: null\nrunAsUser:\n type: RunAsAny\nseLinuxContext:\n type: RunAsAny\nsupplementalGroups:\n type: RunAsAny\nusers:\n- system:serviceaccount:openshift-infra:build-controller\n- system:serviceaccount:management-infra:management-admin\n- system:serviceaccount:management-infra:inspector-admin\nvolumes:\n- ''‘, ‘item’: ‘privileged’, ‘changed’: False, ‘rc’: 0, ‘failed’: False, ‘warnings’: [], ‘delta’: ‘0:00:00.264340’, ‘invocation’: {‘module_name’: u’command’, ‘module_complex_args’: {}, ‘module_args’: u’oc get scc privileged -o yaml’}, ‘stdout_lines’: [‘allowHostDirVolumePlugin: true’, ‘allowHostIPC: true’, ‘allowHostNetwork: true’, ‘allowHostPID: true’, ‘allowHostPorts: true’, ‘allowPrivilegedContainer: true’, ‘allowedCapabilities: null’, ‘apiVersion: v1’, ‘defaultAddCapabilities: null’, ‘fsGroup:’, ’ type: RunAsAny’, ‘groups:’, ‘- system:cluster-admins’, ‘- system:nodes’, ‘kind: SecurityContextConstraints’, ‘metadata:’, ’ annotations:‘, " kubernetes.io/description: ‘privileged allows access to all privileged and host", ’ features and the ability to run as any user, any group, any fsGroup, and with’, ’ any SELinux context. WARNING: this is the most relaxed SCC and should be used’, " only for cluster administration. Grant with caution.‘", ’ creationTimestamp: 2016-05-05T13:30:06Z’, ’ name: privileged’, ’ resourceVersion: “371”‘, ’ selfLink: /api/v1/securitycontextconstraints/privileged’, ’ uid: 7ae22005-12c5-11e6-9bc5-06174e73e52a’, ‘priority: null’, ‘readOnlyRootFilesystem: false’, ‘requiredDropCapabilities: null’, ‘runAsUser:’, ’ type: RunAsAny’, ‘seLinuxContext:’, ’ type: RunAsAny’, ‘supplementalGroups:’, ’ type: RunAsAny’, ‘users:’, ‘- system:serviceaccount:openshift-infra:build-controller’, ‘- system:serviceaccount:management-infra:management-admin’, ‘- system:serviceaccount:management-infra:inspector-admin’, ‘volumes:’, "- '’"], ‘failed_when_result’: False, ‘start’: ‘2016-05-05 13:31:49.952517’}])
This is absolutely not readable.
I made a PR on openshift-ansible to override the output from the default callback plugin: https://github.com/openshift/openshift-ansible/pull/1861
But now I’d like to contribute this upstream, basically the idea is that with -v we get:
- indented json
- std{err,out} printed apart with proper newlines
What’s your opinion ?
Is there anything to consider before I get started ?
Thanks
Best