summaryrefslogtreecommitdiff
path: root/cloudinit/features.py
blob: c44fa29e89bb7966512d579af46ab0ebb6ca5af5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# This file is part of cloud-init. See LICENSE file for license information.
"""
Feature flags are used as a way to easily toggle configuration
**at build time**. They are provided to accommodate feature deprecation and
downstream configuration changes.

Currently used upstream values for feature flags are set in
``cloudinit/features.py``. Overrides to these values (typically via quilt
patch) can be placed
in a file called ``feature_overrides.py`` in the same directory. Any value
set in ``feature_overrides.py`` will override the original value set
in ``features.py``.

Each flag should include a short comment regarding the reason for
the flag and intended lifetime.

Tests are required for new feature flags, and tests must verify
all valid states of a flag, not just the default state.
"""

ERROR_ON_USER_DATA_FAILURE = True
"""
If there is a failure in obtaining user data (i.e., #include or
decompress fails), old behavior is to log a warning and proceed.
After the 20.2 release, we instead raise an exception.
This flag can be removed after Focal is no longer supported
"""


ALLOW_EC2_MIRRORS_ON_NON_AWS_INSTANCE_TYPES = False
"""
When configuring apt mirrors, old behavior is to allow
the use of ec2 mirrors if the datasource availability_zone format
matches one of the possible aws ec2 regions. After the 20.2 release, we
no longer publish ec2 region mirror urls on non-AWS cloud platforms.
Besides feature_overrides.py, users can override this by providing
#cloud-config apt directives.
"""

try:
    # pylint: disable=wildcard-import
    from cloudinit.feature_overrides import *  # noqa
except ImportError:
    pass