Python 3 migration with the Splunk platform
On January 1, 2020, Python version 2.x was officially deprecated by the Python Software Foundation. Python packages and tools have ended or are ending support for Python 2, and new Python packages don't support Python 2. This does not impair Splunk's ability to provide support for Splunk Cloud Platform and Splunk Enterprise, including Python 2.7. However, to continue to leverage community support and maintain compatibility with the many third-party projects that use Python, Splunk has migrated Splunk Cloud Platform and Splunk Enterprise, supported Premium Solutions, and supported Splunkbase apps and add-ons to be compatible with Python 3.7. Splunk is prepared and able to provide support for Python 3.7, including patches for new CVEs identified against Python 3.7.
This manual helps identify prerequisites, required changes and steps for migrating impacted Splunk products and apps to Python 3. As Splunk makes new tools and advice available, this content will be updated. When this content is revised, updates will be tracked in Splunk Answers.
Splunk has released Splunk Cloud Platform and Splunk Enterprise versions 8.x to support the migration from Python 2 to Python 3. Splunk has migrated impacted features to Python 3.7, and versions 8.x include both the Python 2.7 and Python 3.7 runtimes, to help customers and developers transition Python in apps from Python 2 to Python 3.
Splunk Enterprise 9.x is Python 3 only. Previous versions, starting in 8.1, were Python 3 default - this meant that admins and developers could select Python 2 runtime if they wished, but the lack of an explicit setting would invoke Python 3. In 9.x, Python 2 is no longer an option for Splunk Enterprise.
This does NOT apply to Splunk Cloud Platform. Splunk Cloud Platform continues to default to Python 2; there is no change in Python behavior between the 8.2.x series and the 9.0.x series in Cloud. The previously announced Python 3 timeline for Splunk Cloud Platform has been retracted.
Administrators of Splunk Cloud Platform and Splunk Enterprise deployments might need to take steps to prepare for Python 3.7 in version 8.x and later, as there are prerequisites to this upgrade. See details in Changes to Splunk Enterprise.
Splunk provides the Splunk Platform Upgrade Readiness app for admins to scan deployed apps for any components impacted by migration to Python 3. For more information, see the Splunk Platform Upgrade Readiness App.
Splunk app developers
Splunk app and add-on developers must revise apps and add-ons that use Python scripts. Revised Splunkbase apps will need to be resubmitted after validation with version 8.x or 9.x. For details about specific script changes required to support version 8.x or 9.x, see Python Development in Splunk Enterprise. Custom apps for Splunk Cloud Platform will follow the same guidelines as custom apps for Splunk Enterprise, with the added requirement of passing Cloud vetting.
Splunk provides the Splunk Platform Upgrade Readiness app for developers to scan deployed apps for any components impacted by migration to Python 3. For more information, see the Splunk Platform Upgrade Readiness App. Developers should also review all issues covered in this manual and test app and add-on revisions with the Splunk Enterprise version 8.x or 9.x before resubmitting to Splunkbase.
Splunk Cloud Platform customers
Beginning with version 8.0, Splunk Cloud Platform added Python 3 support and updated the out-of-the-box Splunk Cloud Platform capabilities while continuing to provide Python 2 support for existing apps that have not yet been upgraded to Python 3. Splunk Cloud Platform currently defaults to Python 2, and a future version of Splunk Cloud Platform will remove support for Python 2. Whether you are currently on Splunk Cloud Platform 7.x or 8.x, any apps or add-ons in your Splunk Cloud Platform instances that are not Python 3 compatible must be upgraded or removed. Splunk Cloud Platform customers should take the following steps:
- Update your private apps to be compatible with Splunk Cloud Platform 8.x and Python 3. You should follow the same process as Splunk app developers to update private apps. However, for Splunk Cloud Platform, you'll update and upload the app as necessary for your Splunk Cloud Platform Experience designation, instead of uploading the app to Splunkbase. See Install private apps on Splunk Cloud Platform.
- Update apps you have installed on your Splunk Cloud Platform deployment from Splunkbase to versions that are compatible with both your current version of Splunk Cloud Platform and Splunk Cloud Platform 8.x. Decide whether to update remaining incompatible apps or to find another solution. Use the Splunk Cloud Monitoring Console, to identify which apps on your Splunk Cloud Platform deployment must be updated.
This Python 3 compatibility requirement applies to all public and private apps in your Splunk Cloud Platform environment. Splunk will continue to work closely with third-party Splunkbase developers to provide updated Python 3-compatible versions of their published apps. You must install the new versions of those Splunkbase apps and upgrade all private apps to ensure Python 3 compatibility.
For more information, see Splunk Cloud Platform.
Splunk solutions customers
This information is subject to change at any time, at the sole discretion of Splunk Inc. and without notice. This roadmap information shall not be incorporated into any contract or other commitment. Splunk undertakes no obligation to either develop or deliver any product, features, or functionality described here.
Changes to Splunk Enterprise
This documentation applies to the following versions of Splunk® Enterprise: 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.1.0, 9.1.1