Merge "Set default python-path to "auto""
This commit is contained in:
commit
b72a9195e1
@ -311,9 +311,13 @@ Options
|
|||||||
|
|
||||||
.. attr:: python-path
|
.. attr:: python-path
|
||||||
:type: string
|
:type: string
|
||||||
:default: /usr/bin/python2
|
:default: auto
|
||||||
|
|
||||||
The path of the default python interpreter.
|
The path of the default python interpreter. Used by Zuul to set
|
||||||
|
``ansible_python_interpreter``. The special value ``auto`` will
|
||||||
|
direct Zuul to use inbuilt Ansible logic to select the
|
||||||
|
interpreter on Ansible >=2.8, and default to
|
||||||
|
``/usr/bin/python2`` for earlier versions.
|
||||||
|
|
||||||
.. attr:: dib-cmd
|
.. attr:: dib-cmd
|
||||||
:type: string
|
:type: string
|
||||||
@ -720,9 +724,13 @@ Selecting the OpenStack driver adds the following options to the
|
|||||||
|
|
||||||
.. attr:: python-path
|
.. attr:: python-path
|
||||||
:type: str
|
:type: str
|
||||||
:default: /usr/bin/python2
|
:default: auto
|
||||||
|
|
||||||
The path of the default python interpreter.
|
The path of the default python interpreter. Used by Zuul to set
|
||||||
|
``ansible_python_interpreter``. The special value ``auto`` will
|
||||||
|
direct Zuul to use inbuilt Ansible logic to select the
|
||||||
|
interpreter on Ansible >=2.8, and default to
|
||||||
|
``/usr/bin/python2`` for earlier versions.
|
||||||
|
|
||||||
.. attr:: connection-type
|
.. attr:: connection-type
|
||||||
:type: str
|
:type: str
|
||||||
@ -1144,7 +1152,11 @@ Selecting the static driver adds the following options to the
|
|||||||
:type: str
|
:type: str
|
||||||
:default: /usr/bin/python2
|
:default: /usr/bin/python2
|
||||||
|
|
||||||
The path of the default python interpreter.
|
The path of the default python interpreter. Used by Zuul to set
|
||||||
|
``ansible_python_interpreter``. The special value ``auto`` will
|
||||||
|
direct Zuul to use inbuilt Ansible logic to select the
|
||||||
|
interpreter on Ansible >=2.8, and default to
|
||||||
|
``/usr/bin/python2`` for earlier versions.
|
||||||
|
|
||||||
.. attr:: max-parallel-jobs
|
.. attr:: max-parallel-jobs
|
||||||
:type: int
|
:type: int
|
||||||
@ -1267,9 +1279,14 @@ Selecting the kubernetes driver adds the following options to the
|
|||||||
|
|
||||||
.. attr:: python-path
|
.. attr:: python-path
|
||||||
:type: str
|
:type: str
|
||||||
:default: /usr/bin/python2
|
:default: auto
|
||||||
|
|
||||||
|
The path of the default python interpreter. Used by Zuul to set
|
||||||
|
``ansible_python_interpreter``. The special value ``auto`` will
|
||||||
|
direct Zuul to use inbuilt Ansible logic to select the
|
||||||
|
interpreter on Ansible >=2.8, and default to
|
||||||
|
``/usr/bin/python2`` for earlier versions.
|
||||||
|
|
||||||
The path of the default python interpreter.
|
|
||||||
|
|
||||||
|
|
||||||
Openshift Driver
|
Openshift Driver
|
||||||
@ -1394,9 +1411,13 @@ Selecting the openshift driver adds the following options to the
|
|||||||
|
|
||||||
.. attr:: python-path
|
.. attr:: python-path
|
||||||
:type: str
|
:type: str
|
||||||
:default: /usr/bin/python2
|
:default: auto
|
||||||
|
|
||||||
The path of the default python interpreter.
|
The path of the default python interpreter. Used by Zuul to set
|
||||||
|
``ansible_python_interpreter``. The special value ``auto`` will
|
||||||
|
direct Zuul to use inbuilt Ansible logic to select the
|
||||||
|
interpreter on Ansible >=2.8, and default to
|
||||||
|
``/usr/bin/python2`` for earlier versions.
|
||||||
|
|
||||||
.. attr:: cpu
|
.. attr:: cpu
|
||||||
:type: int
|
:type: int
|
||||||
@ -1639,9 +1660,13 @@ section of the configuration.
|
|||||||
|
|
||||||
.. attr:: python-path
|
.. attr:: python-path
|
||||||
:type: str
|
:type: str
|
||||||
:default: /usr/bin/python2
|
:default: auto
|
||||||
|
|
||||||
The path of the default python interpreter.
|
The path of the default python interpreter. Used by Zuul to set
|
||||||
|
``ansible_python_interpreter``. The special value ``auto`` will
|
||||||
|
direct Zuul to use inbuilt Ansible logic to select the
|
||||||
|
interpreter on Ansible >=2.8, and default to
|
||||||
|
``/usr/bin/python2`` for earlier versions.
|
||||||
|
|
||||||
.. attr:: connection-type
|
.. attr:: connection-type
|
||||||
:type: str
|
:type: str
|
||||||
|
@ -119,7 +119,7 @@ class Config(ConfigValue):
|
|||||||
d.image_types = set(diskimage.get('formats', []))
|
d.image_types = set(diskimage.get('formats', []))
|
||||||
d.pause = bool(diskimage.get('pause', False))
|
d.pause = bool(diskimage.get('pause', False))
|
||||||
d.username = diskimage.get('username', 'zuul')
|
d.username = diskimage.get('username', 'zuul')
|
||||||
d.python_path = diskimage.get('python-path', '/usr/bin/python2')
|
d.python_path = diskimage.get('python-path', 'auto')
|
||||||
d.build_timeout = diskimage.get('build-timeout', (8 * 60 * 60))
|
d.build_timeout = diskimage.get('build-timeout', (8 * 60 * 60))
|
||||||
self.diskimages[d.name] = d
|
self.diskimages[d.name] = d
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ class AwsProviderConfig(ProviderConfig):
|
|||||||
i.name = image['name']
|
i.name = image['name']
|
||||||
i.image_id = image.get('image-id', None)
|
i.image_id = image.get('image-id', None)
|
||||||
i.username = image.get('username', None)
|
i.username = image.get('username', None)
|
||||||
i.python_path = image.get('python-path', '/usr/bin/python2')
|
i.python_path = image.get('python-path', 'auto')
|
||||||
i.connection_type = image.get('connection-type', 'ssh')
|
i.connection_type = image.get('connection-type', 'ssh')
|
||||||
i.connection_port = image.get(
|
i.connection_port = image.get(
|
||||||
'connection-port',
|
'connection-port',
|
||||||
|
@ -56,7 +56,7 @@ class KubernetesPool(ConfigPool):
|
|||||||
pl.type = label['type']
|
pl.type = label['type']
|
||||||
pl.image = label.get('image')
|
pl.image = label.get('image')
|
||||||
pl.image_pull = label.get('image-pull', 'IfNotPresent')
|
pl.image_pull = label.get('image-pull', 'IfNotPresent')
|
||||||
pl.python_path = label.get('python-path', '/usr/bin/python2')
|
pl.python_path = label.get('python-path', 'auto')
|
||||||
pl.pool = self
|
pl.pool = self
|
||||||
self.labels[pl.name] = pl
|
self.labels[pl.name] = pl
|
||||||
full_config.labels[label['name']].pools.append(self)
|
full_config.labels[label['name']].pools.append(self)
|
||||||
|
@ -61,7 +61,7 @@ class OpenshiftPool(ConfigPool):
|
|||||||
pl.image_pull = label.get('image-pull', 'IfNotPresent')
|
pl.image_pull = label.get('image-pull', 'IfNotPresent')
|
||||||
pl.cpu = label.get('cpu')
|
pl.cpu = label.get('cpu')
|
||||||
pl.memory = label.get('memory')
|
pl.memory = label.get('memory')
|
||||||
pl.python_path = label.get('python-path', '/usr/bin/python2')
|
pl.python_path = label.get('python-path', 'auto')
|
||||||
pl.pool = self
|
pl.pool = self
|
||||||
self.labels[pl.name] = pl
|
self.labels[pl.name] = pl
|
||||||
full_config.labels[label['name']].pools.append(self)
|
full_config.labels[label['name']].pools.append(self)
|
||||||
|
@ -332,7 +332,7 @@ class OpenStackProviderConfig(ProviderConfig):
|
|||||||
i.image_id = image.get('image-id', None)
|
i.image_id = image.get('image-id', None)
|
||||||
i.image_name = image.get('image-name', None)
|
i.image_name = image.get('image-name', None)
|
||||||
i.username = image.get('username', None)
|
i.username = image.get('username', None)
|
||||||
i.python_path = image.get('python-path', '/usr/bin/python2')
|
i.python_path = image.get('python-path', 'auto')
|
||||||
i.connection_type = image.get('connection-type', 'ssh')
|
i.connection_type = image.get('connection-type', 'ssh')
|
||||||
i.connection_port = image.get(
|
i.connection_port = image.get(
|
||||||
'connection-port',
|
'connection-port',
|
||||||
|
@ -59,7 +59,7 @@ class StaticPool(ConfigPool):
|
|||||||
'connection-type': node.get('connection-type', 'ssh'),
|
'connection-type': node.get('connection-type', 'ssh'),
|
||||||
'username': node.get('username', 'zuul'),
|
'username': node.get('username', 'zuul'),
|
||||||
'max-parallel-jobs': int(node.get('max-parallel-jobs', 1)),
|
'max-parallel-jobs': int(node.get('max-parallel-jobs', 1)),
|
||||||
'python-path': node.get('python-path', '/usr/bin/python2'),
|
'python-path': node.get('python-path', 'auto'),
|
||||||
})
|
})
|
||||||
if isinstance(node['labels'], str):
|
if isinstance(node['labels'], str):
|
||||||
for label in node['labels'].split():
|
for label in node['labels'].split():
|
||||||
|
@ -147,7 +147,7 @@ class TestLauncher(tests.DBTestCase):
|
|||||||
self.assertEqual(nodes[1].type, ['fake-label1'])
|
self.assertEqual(nodes[1].type, ['fake-label1'])
|
||||||
self.assertEqual(nodes[2].type, ['fake-label4'])
|
self.assertEqual(nodes[2].type, ['fake-label4'])
|
||||||
self.assertEqual(nodes[3].type, ['fake-label2'])
|
self.assertEqual(nodes[3].type, ['fake-label2'])
|
||||||
self.assertEqual(nodes[0].python_path, '/usr/bin/python2')
|
self.assertEqual(nodes[0].python_path, 'auto')
|
||||||
|
|
||||||
def _test_node_assignment_at_quota(self,
|
def _test_node_assignment_at_quota(self,
|
||||||
config,
|
config,
|
||||||
@ -1370,7 +1370,7 @@ class TestLauncher(tests.DBTestCase):
|
|||||||
self.assertEqual('winrm', nodes[0].connection_type)
|
self.assertEqual('winrm', nodes[0].connection_type)
|
||||||
self.assertEqual(5986, nodes[0].connection_port)
|
self.assertEqual(5986, nodes[0].connection_port)
|
||||||
self.assertEqual(nodes[0].host_keys, [])
|
self.assertEqual(nodes[0].host_keys, [])
|
||||||
self.assertEqual(nodes[0].python_path, '/usr/bin/python2')
|
self.assertEqual(nodes[0].python_path, 'auto')
|
||||||
|
|
||||||
nodes = self.waitForNodes('fake-label-arbitrary-port')
|
nodes = self.waitForNodes('fake-label-arbitrary-port')
|
||||||
self.assertEqual(len(nodes), 1)
|
self.assertEqual(len(nodes), 1)
|
||||||
|
23
releasenotes/notes/python-path-auto-83881e94d835ff83.yaml
Normal file
23
releasenotes/notes/python-path-auto-83881e94d835ff83.yaml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The default ``python-path`` is now ``auto`` (instead of
|
||||||
|
``/usr/bin/python2``). With this, Zuul 3.11.1 and greater will set the
|
||||||
|
``ansible_python_interpreter`` to ``auto`` when using Ansible
|
||||||
|
>=2.8 to use `automated interpreter discovery
|
||||||
|
<https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html>`__.
|
||||||
|
When using earlier Ansible, it will remain the old default of
|
||||||
|
``/usr/bin/python2``.
|
||||||
|
|
||||||
|
This will remove the need to override python-path explicitly for
|
||||||
|
Python 3-only distributions, which should be detected correctly
|
||||||
|
automatically.
|
||||||
|
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
This release should only be run against Zuul 3.11.1 or greater.
|
||||||
|
Earlier Zuul releases will not convert the new default
|
||||||
|
``python-path`` of ``auto`` to ``/usr/bin/python2`` for Ansible
|
||||||
|
<2.8, leading to a configuration error. It may be possible to use
|
||||||
|
earlier Zuul releases if you you are only using Ansible >= 2.8, or
|
||||||
|
explicitly set ``python-path`` for every image.
|
Loading…
x
Reference in New Issue
Block a user