Commit Graph

56 Commits

Author SHA1 Message Date
Telles Nobrega 92686f5a10 Prepare Sahara core for plugin split
On the effort to make Sahara more user and operators friendly
we are splitting the plugins from Sahara core.

The main goal of this change is to facilitate installation,
maintainance and upgrade of plugins. With the plugins outside
the main Sahara code, operators will be able to install a subset
of plugins, as well as upgrade to newer versions of the plugins
without having to wait for a new version of OpenStack to be
released. As well, it aims to facilitate new contributors to
develop and maintain their own plugins.

Sahara Spec: https://specs.openstack.org/openstack/sahara-specs/specs/rocky/plugins-outside-sahara-core.html

Change-Id: I7ed0945fd82e37daaf6b29f947d3dba06db9d158
2019-01-10 22:18:24 -03:00
Telles Nobrega e1a36ee28c Updating Spark versions
We are adding new spark version 2.3.0

Change-Id: I3a1c8decdc17c2c9b63af29ee9199cf24f11e0e2
2018-06-26 09:16:56 -03:00
Telles Nobrega 17509c3626 Updating plugins status for Rocky
For Rocky we are removing some plugins versions:

- CDH: removing 5.5.0
- MapR: removing 5.1.0
- Spark: removing 1.3.1
- Storm: removing 0.9.2

Also, we are marking some versions as deprecated:

- CDH: deprecating 5.7.0
- Spark: deprecating 1.6.0 and 2.1
- Storm: deprecating 1.0.1

Change-Id: I2dcec1344db4225263be179366eb408d62b9e108
2018-06-13 17:14:46 -03:00
Telles Nobrega 7140495c70 Upgrading Spark to version 2.2
Adding newest version of Spark to sahara

Change-Id: Ia85e6f28d90789279fd319074ce0e230ffa98be4
2017-12-07 19:28:24 +00:00
Jeremy Freudberg 6ad8ad58a7 Deprecate Spark 1.3.1
Spark 1.3.1 came out in Liberty, and was quickly succeeded in Mitaka
with Spark 1.6.0, so it is safe to deprecate.

Change-Id: Ic1a1cf579c5e73a71e44992ea49434db7c4bcf96
2017-08-03 18:58:29 +00:00
Jenkins 977d06c614 Merge "Upgrading Spark version to 2.1.0" 2017-06-21 15:50:09 +00:00
Jenkins aa2b390541 Merge "Raise better exception for Spark master validation" 2017-06-08 12:00:00 +00:00
Jeremy Freudberg c4c776d708 Raise better exception for Spark master validation
Previously RequiredServiceMissingException was raised for
all cases of invalid count for Spark master, even if the
service was present but count was otherwise incorrect. Now
the correct exception will be raised depending on whether
master is missing or master has wrong count.

Also, add missing unit tests for validation.

Change-Id: Ide7cc8414086e377c86306630920a3c753811458
2017-05-24 14:56:03 -04:00
lcsong 8b4af0daf3 Remove log translations
Log messages are no longer being translated. This removes all use of
the _LE, _LI, _LW and _LC translation markers to simplify logging and to
avoid confusion with new contributions.

See:
http://lists.openstack.org/pipermail/openstack-i18n/2016-November/002574.html
http://lists.openstack.org/pipermail/openstack-dev/2017-March/113365.html

It will be a giant patch if all these _LE, _LI, _LW and _LC being deleted
within one patch, so this patch only delete _LI; _LW, _LC and _LE has been
handled in previous patchies. This is the last patch for sahara to delete
log translations.

Change-Id: I73e99ca7fd5bc0cd8df7cce30b5f12e00e70149c
2017-04-18 10:56:48 +08:00
Telles Nobrega bff74cd493 Upgrading Spark version to 2.1.0
Change-Id: I6d4a70bdf3f033018fa9cd90b35374e842704e53
2017-04-04 12:15:11 -03:00
Michael Ionkin d9a2f00d2d Designate integration
This patch implements designate integration. Added:
* 'use_designate' and 'nameservers' configs
* 'domain_name' column to Cluster and Cluster Templates and
  'dns_hostname' to Instance in DB
* get_management_ip() method for Instance for properly setup
  hostnames in cluster info and use it in ambari, cdh, mapr, spark,
  storm and vanilla plugins
* method for change /etc/resolv.conf on all cluster instances
  according to 'nameservers' config
* method for generate heat template for designate A and PTR records
* validation check for cluster template creation because now it
  contains new field - 'domain_name'
* fix unit tests appropriatly and new tests added
* updated heat_template_version to '2016-04-08' (because we use
  'str_split' method)

NOTE: in spec we proposed to use two domains: one for internal
resolution and another for external. But we decided to use only one
domain for both sides so an instance will have one hostname in the
domain and two appropriate A records because it's more convenient.

bp: designate-integration
Change-Id: I66525c0305450d8ba08840be1c95bfe79f21fff7
2016-08-02 18:53:25 +03:00
Vitaly Gridnev 4cebb9c58a improvements on api for plugins
this change contains following changes:

1. get_labels implementation for stable plugins;
2. improvements in exposing list of plugins: now
it returns detailed info about labels also;
3. fixed minor validation issue with name parameter
of validator.
4. validations on labels on cluster creation,
cluster scaling and launching jobs.

blueprint: plugin-management-api
Change-Id: I8baf6b60f3be1c5ed81758712258b65c4d30e443
2016-07-11 11:32:28 +00:00
Jenkins 13b6696852 Merge "Await start datanodes in Spark plugin" 2016-02-26 22:09:04 +00:00
Trevor McKay e00a2bbdf7 Remove support for spark 1.0.0
It was deprecated in Liberty and is marked
for removal in Mitaka.

Change-Id: I3ba6941b1e1aa6900b5f59ea52a0370577729d9e
Implements: blueprint remove-spark-100
2016-02-23 10:17:41 -05:00
Sergey Reshetnyak 0bb28fdd2e Await start datanodes in Spark plugin
Change-Id: I5f5265aee14663182349be43ef8f5c78f7617fdf
Closes-bug: #1544509
2016-02-11 17:46:55 +03:00
Michael Ionkin 47d9e68d6e Added support of Spark 1.6.0
Spark 1.6.0 is available now for deployment.
Also added the current working directory to the driver class path for
proper reading of the spark.xml file

Change-Id: I9a46a503c7e52d756c7de8c8694dbfc51f80f2be
Co-Authored-By: Vitaly Gridnev <vgridnev@mirantis.com>
bp: support-spark-160
2016-02-08 19:51:25 +03:00
Javeme 3cb08bc52b Ensure default arguments are not mutable
* add hacking check: no_mutable_default_args()
* remove the mutable default arguments "[]" or "{}" when the function
  is defined.

ref: http://docs.python-guide.org/en/latest/writing/gotchas/

Closes-Bug: #1530282
Change-Id: Ice6f7654211b73d7f8bc3ca0e4dfae3dca354397
2015-12-31 15:56:11 +08:00
Jenkins a3a31426ce Merge "Register SSL cert in Java keystore to access to swift via SSL" 2015-09-24 18:50:25 +00:00
Andrey Pavlov 53eaa64263 Formatting and mounting methods changed for ironic
Currently only cinder volumes can be formatted and mounted.
This patch provides an ability of formatting and mounting
any attached storage devices. Also storage_paths method was
moved from node group objects to instance and corresponding
fixes in plugins was made.

Closes-bug: #1478899
Closes-bug: #1478904

Change-Id: If92d6fdea25e374d6d5c404be5ac3677cb60c057
2015-09-18 10:44:45 +03:00
Sergey Reshetnyak 254fcc4f61 Register SSL cert in Java keystore to access to swift via SSL
Closes-bug: #1488101

Change-Id: I25723e151ffc82e147c986e96e46b05eedb26cb0
2015-09-08 17:36:09 +03:00
Jenkins e22142d94a Merge "Disable autotune configs for scaling old clusters" 2015-08-29 16:16:48 +00:00
Vitaly Gridnev 3873a512f7 Disable autotune configs for scaling old clusters
Implemented option for disabling scaling for old clusters.
After autoconfiguration we will put 'auto-configured' flag into
cluster.extra field. That will allow us to disable autotune configs
for old created clusters.

Partial-Implements blueprint: recommend-configuration

Change-Id: I7d09ef20da51a170e9c021032c8bf13c34ae8d85
2015-08-27 15:56:14 +03:00
Sergey Gotliv e7d6799155 Adding support for the Spark Shell job
Implements: blueprint edp-add-spark-shell-action
Change-Id: I6d2ec02f854ab2eeeab2413bb56f1a359a3837c1
2015-08-27 13:29:36 +03:00
Jenkins bb43dc7040 Merge "Add recommendation support for Spark plugin" 2015-07-24 17:22:28 +00:00
Vitaly Gridnev c731c79a98 Add recommendation support for Spark plugin
We can autoconfigure dfs.replication in Spark plugin, so let's do it.

Partial-Implements blueprint: recommend-configuration

Change-Id: I0f4ce35fdf71c424c9ff6ca96e04ba5d63aeb1b0
2015-07-22 15:27:13 +00:00
Daniele Venzano e35f28a97e Deprecate Spark 1.0.0
As discussed in the Sahara weekly meeting, this change request
removes 0.9.1 from the list of supported Spark versions and adds
the deprecation message to the validation phase for clusters
created for Spark 1.0.0, the same way as is done in the vanilla
plugin for version 2.4.1

Change-Id: I13965c09c083823511e66c7ae42317ceae1059cb
Implements: blueprint deprecate-spark-100
2015-07-16 12:22:44 +00:00
Jenkins 4f61269415 Merge "Support Spark 1.3.1" 2015-07-15 16:02:32 +00:00
Daniele Venzano 40b8b781ff Support Spark 1.3.1
Add version "1.3.1" to the list of supported versions, in tandem with
https://review.openstack.org/#/c/195054/ that adds support in the DIB.
This one-liner is sufficient, from Sahara's point of view Spark 1.0
and 1.3 are the same.
This patch set Updates also the Spark plugin documentation and the
tests.

Change-Id: I8fa482b6d1d6abaa6633aec309a3ba826a8b7ebb
Implements: blueprint support-spark-1-3
2015-07-01 07:21:49 +00:00
Nikita Konovalov f7d1ec55a8 Removed dependency on Spark plugin in edp code
The EDP Spark engine was importing a config helper from the Spark
plugin.
The helper was moved to common plugin utils and now is imported from
there by both the plugin and the engine.

This is the part of sahara and plugins split.

Partially-implements bp: move-plugins-to-separate-repo
Change-Id: Ie84cc163a09bf1e7b58fcdb08e0647a85492593b
2015-06-17 09:18:22 +00:00
Andrey Pavlov d28ecbad4a Fixing log messages to avoid information duplication
Currently some ids in Sahara log messages are noticed twice.
All this messages should be checked and fixed to avoid information
duplication.

partially implements bp: logs-improvement

Change-Id: I1fd3f8b76ed6f56d9e8116ea453d05246a68f7dc
2015-04-22 18:44:08 +03:00
Trevor McKay a7adef4708 Implement job-types endpoint support methods for Spark plugin
This change implements the optional methods in the Plugins SPI
to support the job-types endpoint for the Spark plugin.

Config hints at this point are unchanged. Additional work may be
needed to provide config-hints specific to Spark plugin versions.

Partial-Implements: blueprint edp-job-types-endpoint
Change-Id: I1cd318da11c997119b192e7396969f89d8f0f216
2015-03-17 17:58:31 -04:00
Nikolay Starodubtsev ce62f364cd Rewrite log levels and messages
This is an initial commit to make sahara logs relevant to new
logging spec.
We need to change some log levels to become closer to the spec, also
we need to change some log messages (e.g. for INFO level).

partially-implement bp new-style-logging

Change-Id: I8e7b7c4c3f375648d2999b1d0e19b68390cc22a8
2015-03-12 17:16:06 +03:00
Vitaly Gridnev cbb6c46529 Add provision steps to Spark Plugin
Partially implements blueprint event-log

Change-Id: If38439e5bb59736da23cf472289a9a8c0fb1d054
2015-02-18 17:48:26 +04:00
Jenkins 39276bd606 Merge "Adding validation check for Spark plugin" 2015-02-13 10:55:46 +00:00
Andrey Pavlov 1bd576e243 Adding validation check for Spark plugin
Change-Id: Ifa7cc90150f91381de32ca44cda363ac723f2ea5
Closes-bug: #1419731
2015-02-11 16:49:07 +03:00
Andrey Pavlov b94a057019 Fixed bug with spark scaling
* scaling down now works correctly
* renaming _start_slave_datanode_processes to
  _start_datanode_processes to avoid confusion

Change-Id: I1bf3dea47793e7358d9ba3d632828639cd128c40
Closes-bug: #1376228
2015-02-09 14:10:06 +03:00
Andrey Pavlov 5c5491f9de Using oslo_* instead of oslo.*
Changes:
* using oslo_config instead of oslo.config
* using oslo_concurrency instead of oslo.concurrency
* using oslo_db instead of oslo.db
* using oslo_i18n instead of oslo.i18n
* using oslo_messaging instead of oslo.messaging
* using oslo_middleware instead of oslo.middleware
* using oslo_serialization instead of oslo.serialization
* using oslo_utils instead of oslo.utils

Change-Id: Ib0f18603ca5b0885256a39a96a3620d05260a272
Closes-bug: #1414587
2015-02-04 13:19:28 +03:00
Trevor McKay bfe01ead79 Add Swift integration with Spark
This change allows Spark jobs to access Swift URLs without
any need to modify the Spark job code itself. There are a
number of things necessary to make this work:

* add a "edp.spark.adapt_for_swift" config value to control the
  feature
* generate a modified spark-submit command when the feature is
  enabled
* add the hadoop-swift.jar to the Spark classpaths for the
  driver and executors (cluster launch)
* include the general Swift configs in the Hadoop core-site-xml
  and make Spark read the Hadoop core-site.xml (cluster launch)
* upload an xml file containing the Swift authentication configs
  for Hadoop
* run a wrapper class that reads the extra Hadoop configuration
  and adds it to the configuration for the job

Changes in other CRs:
* add the hadoop-swift.jar to the Spark images
* add the SparkWrapper code to sahara-extra

Partial-Implements: blueprint edp-spark-swift-integration
Change-Id: I03dca4400c832f3ba8bc508d4fb2aa98dede8d80
2015-02-03 10:34:32 -05:00
Jenkins 687022001d Merge "Spark Temporary Job Data Retention and Cleanup" 2015-01-30 22:44:58 +00:00
Ethan Gafford 7cf61bd313 Spark Temporary Job Data Retention and Cleanup
Introduces a periodic task for the cleanup of data from Spark jobs, in order
to ease maintenance of long-lived clusters.

Change-Id: Ia7dc2dde54ab62199a630c3d1b64c76f08698181
Implements: blueprint spark-cleanup
2015-01-27 13:14:33 -05:00
Vitaly Gridnev a0c4d13e90 Migrate to oslo.log
oslo.log was added to global requirements, so we can migrate to this module.
Also we need this migration to be ensure that it works correctly with
log-improvements.

Since openstack.common.log is not dropped in oslo-incubator,
we shouldn't remove it.

Change-Id: I90468e4db812ae0b5d8a43a37206b236f8904661
Closes-bug: #1412673
2015-01-27 11:09:10 +03:00
Sergey Reshetnyak c574e64311 Add list of open ports for Spark plugin
It's needed for correct working auto security groups

Change-Id: I180d5278d8251f946eb3ff294f45cc188cf77e37
Closes-bug: #1393397
2014-12-01 18:22:19 +03:00
Alexander Ignatov 1a9bf1f24e Moved exceptions.py and utils.py up to plugins dir
Plugins dir contains 'general' module which looks like yet another
plugin along with vanilla, fake, hdp, spark and cdh. But it doesn't
and contains two files only. Moved them one level up to avoid such
confusion.

Closes-Bug: #1378178

Change-Id: Ia600e4c584d48a3227552f0051cc3bf906206bed
2014-10-07 09:00:19 +04:00
Sergey Reshetnyak 5aca5fe75a Fix working Spark with cinder volumes
Change-Id: I4eb0d00766066f0d387e632b0217e11cfed552c5
Closes-bug: #1376790
2014-10-03 20:11:03 +04:00
Andrew Lazarev b3223ad892 Fixed volumes configuration in spark plugin
Only current node group config should influence on data location.

Change-Id: Id1d6f7bf29fd5b8d7734d3358b6e34f06bf084da
Closes-Bug: #1375920
2014-09-30 14:04:09 -07:00
Jenkins ed4e658522 Merge "Moved validate_edp from plugin SPI to edp_engine" 2014-09-16 15:09:49 +00:00
Andrew Lazarev e55238a881 Moved validate_edp from plugin SPI to edp_engine
Now EDP engine is fully responsible on validation of data for
job execution.

Other changes:
* Removed API calls from validation to remove circular dependancy
* Removed plugins patching in validation to allow non-vanilla
  plugins testing
* Renamed job_executor to job_execution

Change-Id: I14c86f33b355cb4317e96a70109d8d72d52d3c00
Closes-Bug: #1357512
2014-09-10 10:10:41 -07:00
Andrew Lazarev ced29d92fc Minor change - removed unnessary parentheses
Change-Id: Ibf01db6fbacc8bb85d4e235e2bceaa7b0dd6a9f9
2014-09-02 17:04:53 -07:00
Andrew Lazarev 42526b808b Made EDP engine plugin specific
+ Moved 'get_hdfs_user' method from plugin SPI to EDP engine

Futher steps: move other EDP-specific method to EDP engine

Change-Id: I0537397894012f496ea4abc2661aa8331fbf6bd3
Partial-Bug: #1357512
2014-08-21 12:45:43 -07:00
Andrey Pavlov 6bc8ce78de Add translation support to plugin modules
Changed modules:
* sahara/plugins/base.py
* sahara/plugins/general/exceptions.py
* sahara/plugins/general/utils.py
* sahara/plugins/hdp/ambariplugin.py
* sahara/plugins/hdp/clusterspec.py
* sahara/plugins/hdp/configprovider.py
* sahara/plugins/hdp/hadoopserver.py
* sahara/plugins/hdp/versions/version_1_3_2/services.py
* sahara/plugins/hdp/versions/version_1_3_2/versionhandler.py
* sahara/plugins/hdp/versions/version_2_0_6/services.py
* sahara/plugins/hdp/versions/version_2_0_6/versionhandler.py
* sahara/plugins/provisioning.py
* sahara/plugins/spark/config_helper.py
* sahara/plugins/spark/plugin.py
* sahara/plugins/spark/scaling.py
* sahara/plugins/vanilla/hadoop2/config.py
* sahara/plugins/vanilla/hadoop2/config_helper.py
* sahara/plugins/vanilla/hadoop2/run_scripts.py
* sahara/plugins/vanilla/hadoop2/scaling.py
* sahara/plugins/vanilla/hadoop2/validation.py
* sahara/plugins/vanilla/plugin.py
* sahara/plugins/vanilla/v1_2_1/config_helper.py
* sahara/plugins/vanilla/v1_2_1/scaling.py
* sahara/plugins/vanilla/v1_2_1/versionhandler.py

Change-Id: Ia3dacd7ce5a77e8b51747d9c8e1a17fab266395e
2014-08-12 17:18:11 +04:00