summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2020-04-07 10:52:16 +1200
committerLingxian Kong <anlin.kong@gmail.com>2020-05-27 10:31:50 +1200
commitaa1d4d224674f44d9cd882eddb2537907adf5382 (patch)
treeb9baf26bfb4b15497696d020fea41364bd0576c8 /etc
parent523d66e8fd5d29be8dbae9aa79c5348d3dce8c64 (diff)
downloadtrove-aa1d4d224674f44d9cd882eddb2537907adf5382.tar.gz
Datastore containerization
Significant changes: * Using docker image to install datastore. * Datastore image is common to different datastores. * Using backup docker image to do backup and restore. * Support MariaDB replication * Set most of the functional jobs as non-voting as nested virtualization is not supported in CI. Change-Id: Ia9c97a63a961eebc336b70d28dc77638144c1834
Diffstat (limited to 'etc')
-rw-r--r--etc/trove/cloudinit/README3
-rw-r--r--etc/trove/conf.d/README4
-rw-r--r--etc/trove/conf.d/guest_info.conf1
-rw-r--r--etc/trove/trove-guestagent.conf.sample166
-rw-r--r--etc/trove/trove-workbook.yaml19
-rw-r--r--etc/trove/trove.conf.sample311
6 files changed, 0 insertions, 504 deletions
diff --git a/etc/trove/cloudinit/README b/etc/trove/cloudinit/README
deleted file mode 100644
index f9e9aa8d..00000000
--- a/etc/trove/cloudinit/README
+++ /dev/null
@@ -1,3 +0,0 @@
-These cloudinit scripts will used as userdata on instance create
-File names should match pattern: service_type.cloudinit
-For example: mysql.cloudinit
diff --git a/etc/trove/conf.d/README b/etc/trove/conf.d/README
deleted file mode 100644
index d27a4ff9..00000000
--- a/etc/trove/conf.d/README
+++ /dev/null
@@ -1,4 +0,0 @@
-These conf files are read and used by the guest to provide extra
-information to the guest. The first example of this is the
-guest_info.conf which will have the uuid of the instance so that
-the guest can report back things to the infra.
diff --git a/etc/trove/conf.d/guest_info.conf b/etc/trove/conf.d/guest_info.conf
deleted file mode 100644
index 6a1f77c2..00000000
--- a/etc/trove/conf.d/guest_info.conf
+++ /dev/null
@@ -1 +0,0 @@
-# Guest-specific information injected by the taskmanager
diff --git a/etc/trove/trove-guestagent.conf.sample b/etc/trove/trove-guestagent.conf.sample
deleted file mode 100644
index 8e49d4bb..00000000
--- a/etc/trove/trove-guestagent.conf.sample
+++ /dev/null
@@ -1,166 +0,0 @@
-[DEFAULT]
-
-
-#=========== RPC Configuration ======================
-
-# URL representing the messaging driver to use and its full configuration.
-# If not set, we fall back to the 'rpc_backend' option and driver specific
-# configuration.
-#transport_url=<None>
-
-# The messaging driver to use. Options include rabbit, qpid and zmq.
-# Default is rabbit. (string value)
-#rpc_backend=rabbit
-
-# The default exchange under which topics are scoped. May be
-# overridden by an exchange name specified in the 'transport_url option.
-control_exchange = trove
-
-# ========== Configuration options for Swift ==========
-
-# The swift_url can be specified directly or fetched from Keystone catalog.
-
-# To fetch from Keystone, comment out swift_url, and uncomment the others.
-# swift_url = http://10.0.0.1:8080/v1/AUTH_
-# Region name of this node. Default value is None.
-# os_region_name = RegionOne
-# Service type to use when searching catalog.
-# swift_service_type = object-store
-
-
-# ========== Datastore Manager Configurations ==========
-
-# Datastore manager implementations.
-# Format: list of 'datastore-type:datastore.manager.implementation.module'
-# datastore_registry_ext = mysql:trove.guestagent.datastore.mysql.manager.Manager, percona:trove.guestagent.datastore.mysql.manager.Manager
-
-
-# ========== Default Users / DBs Configuration ==========
-
-# Permissions to grant "root" user by default
-root_grant = ALL
-root_grant_option = True
-# root_grant = ALTER ROUTINE, CREATE, ALTER, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, CREATE USER, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, PROCESS, REFERENCES, SELECT, SHOW DATABASES, SHOW VIEW, TRIGGER, UPDATE, USAGE
-# root_grant_option = False
-
-# Default password Length for root password
-# default_password_length = 36
-
-
-# ========== Default Storage Options for backup ==========
-
-# Default configuration for storage strategy and storage options
-# for backups
-
-# For storage to Swift, use the following as defaults:
-# storage_strategy = SwiftStorage
-# storage_namespace = trove.common.strategies.storage.swift
-
-# Default config options for storing backups to swift
-# backup_swift_container = database_backups
-# backup_use_gzip_compression = True
-# backup_use_openssl_encryption = True
-# backup_aes_cbc_key = "default_aes_cbc_key"
-# backup_use_snet = False
-# backup_chunk_size = 65536
-# backup_segment_max_size = 2147483648
-
-
-# ========== Sample Logging Configuration ==========
-
-# Show debugging output in logs (sets DEBUG log level output)
-# debug = True
-
-# Directory and path for log files
-log_dir = /var/log/trove/
-log_file = logfile.txt
-log_config_append = /etc/trove/trove-logging-guestagent.conf
-
-[profiler]
-# If False fully disable profiling feature.
-#enabled = False
-# If False doesn't trace SQL requests.
-#trace_sqlalchemy = True
-
-[oslo_messaging_notifications]
-
-#
-# From oslo.messaging
-#
-
-# The Driver(s) to handle sending notifications. Possible
-# values are messaging, messagingv2, routing, log, test, noop
-# (multi valued)
-# Deprecated group/name - [DEFAULT]/notification_driver
-#driver =
-
-# A URL representing the messaging driver to use for
-# notifications. If not set, we fall back to the same
-# configuration used for RPC. (string value)
-# Deprecated group/name - [DEFAULT]/notification_transport_url
-#transport_url = <None>
-
-# AMQP topic used for OpenStack notifications. (list value)
-# Deprecated group/name - [rpc_notifier2]/topics
-# Deprecated group/name - [DEFAULT]/notification_topics
-#topics = notifications
-
-# The maximum number of attempts to re-send a notification
-# message which failed to be delivered due to a recoverable
-# error. 0 - No retry, -1 - indefinite (integer value)
-#retry = -1
-
-# ========== Datastore Specific Configuration Options ==========
-
-[mysql]
-# For mysql, the following are the defaults for backup, and restore:
-# backup_strategy = InnoBackupEx
-# backup_namespace = trove.guestagent.strategies.backup.mysql_impl
-# restore_namespace = trove.guestagent.strategies.restore.mysql_impl
-# Default configuration for mysql replication
-# replication_strategy = MysqlBinlogReplication
-# replication_namespace = trove.guestagent.strategies.replication.mysql_binlog
-# replication_user = slave_user
-# replication_password = slave_password
-
-# Users to ignore for user create/list/delete operations
-# ignore_users = os_admin
-
-# Databases to ignore for db create/list/delete operations
-# ignore_dbs = mysql, information_schema, performance_schema
-
-[vertica]
-# For vertica, following are the defaults needed:
-# mount_point = /var/lib/vertica
-# readahead_size = 2048
-# guestagent_strategy = trove.common.strategies.cluster.experimental.vertica.guestagent.VerticaGuestAgentStrategy
-
-[redis]
-# For redis, the following are the defaults for backup, and restore:
-# backup_strategy = RedisBackup
-# backup_namespace = trove.guestagent.strategies.backup.experimental.redis_impl
-# restore_namespace = trove.guestagent.strategies.restore.experimental.redis_impl
-
-[percona]
-backup_namespace = trove.guestagent.strategies.backup.mysql_impl
-restore_namespace = trove.guestagent.strategies.restore.mysql_impl
-
-[couchbase]
-backup_namespace = trove.guestagent.strategies.backup.experimental.couchbase_impl
-restore_namespace = trove.guestagent.strategies.restore.experimental.couchbase_impl
-
-[cassandra]
-backup_namespace = trove.guestagent.strategies.backup.experimental.cassandra_impl
-restore_namespace = trove.guestagent.strategies.restore.experimental.cassandra_impl
-
-[db2]
-# For db2, the following are the defaults for backup, and restore:
-# backup_strategy = DB2OfflineBackup
-# backup_namespace = trove.guestagent.strategies.backup.experimental.db2_impl
-# restore_namespace = trove.guestagent.strategies.restore.experimental.db2_impl
-
-[couchdb]
-#For CouchDB, the following are the defaults for backup and restore:
-# backup_strategy = CouchDBBackup
-# backup_namespace = trove.guestagent.strategies.backup.experimental.couchdb_impl
-# restore_namespace = trove.guestagent.strategies.restore.experimental.couchdb_impl
diff --git a/etc/trove/trove-workbook.yaml b/etc/trove/trove-workbook.yaml
deleted file mode 100644
index d5497133..00000000
--- a/etc/trove/trove-workbook.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-version: '2.0'
-
-name: trove
-
-description: Trove Workflows
-
-workflows:
-
- backup_create:
- input: [instance, name, description, incremental]
- output:
- status: <% $.message %>
-
- tasks:
- backup_create:
- action: trove.backups_create instance=<% $.instance %> name=<% $.name %> description=<% $.description %> incremental=<% $.incremental %>
- publish:
- message: <% 'Backup complete' %>
diff --git a/etc/trove/trove.conf.sample b/etc/trove/trove.conf.sample
deleted file mode 100644
index e4fdd98c..00000000
--- a/etc/trove/trove.conf.sample
+++ /dev/null
@@ -1,311 +0,0 @@
-[DEFAULT]
-# Show debugging output in logs (sets DEBUG log level output)
-debug = True
-
-# Address to bind the API server
-bind_host = 0.0.0.0
-
-# Port the bind the API server to
-bind_port = 8779
-
-# Number of workers for the API service. The default will
-# be the number of CPUs available. (integer value)
-#trove_api_workers=None
-
-#===================== RPC Configuration =================================
-
-# URL representing the messaging driver to use and its full configuration.
-# If not set, we fall back to the 'rpc_backend' option and driver specific
-# configuration.
-#transport_url=<None>
-
-# The messaging driver to use. Options include rabbit, qpid and zmq.
-# Default is rabbit. (string value)
-#rpc_backend=rabbit
-
-# The default exchange under which topics are scoped. May be
-# overridden by an exchange name specified in the 'transport_url option.
-control_exchange = trove
-
-# Maximum line size of message headers to be accepted.
-# max_header_line may need to be increased when using large tokens
-# (typically those generated by the Keystone v3 API with big service
-# catalogs)
-# max_header_line = 16384
-
-#DB Api Implementation
-db_api_implementation = "trove.db.sqlalchemy.api"
-
-# Configuration options for talking to nova via the novaclient.
-trove_auth_url = http://0.0.0.0/identity/v2.0
-#nova_compute_url = http://localhost:8774/v2
-#cinder_url = http://localhost:8776/v1
-#swift_url = http://localhost:8080/v1/AUTH_
-#neutron_url = http://localhost:9696/
-
-# nova_compute_url, cinder_url, swift_url, and can all be fetched
-# from Keystone. To fetch from Keystone, comment out nova_compute_url,
-# cinder_url, swift_url, and and optionally uncomment the lines below.
-
-# Region name of this node. Used when searching catalog. Default value is None.
-#os_region_name = RegionOne
-# Service type to use when searching catalog.
-#nova_compute_service_type = compute
-# Service type to use when searching catalog.
-#cinder_service_type = volumev2
-# Service type to use when searching catalog.
-#swift_service_type = object-store
-# Service type to use when searching catalog.
-#neutron_service_type = network
-
-#ip_regex = ^(15.|123.)
-#black_list_regex = ^10.0.0.
-
-# Config options for enabling volume service
-trove_volume_support = True
-block_device_mapping = vdb
-device_path = /dev/vdb
-# Maximum volume size for an instance
-max_accepted_volume_size = 10
-max_instances_per_tenant = 5
-# Maximum volume capacity (in GB) spanning across all trove volumes per tenant
-max_volumes_per_tenant = 100
-max_backups_per_tenant = 5
-volume_time_out=30
-
-# Config options for rate limits
-http_get_rate = 200
-http_post_rate = 200
-http_put_rate = 200
-http_delete_rate = 200
-http_mgmt_post_rate = 200
-
-# Trove DNS
-trove_dns_support = False
-dns_account_id = 123456
-dns_auth_url = http://127.0.0.1/identity/v2.0
-dns_username = user
-dns_passkey = password
-dns_ttl = 3600
-dns_domain_name = 'trove.com.'
-dns_domain_id = 11111111-1111-1111-1111-111111111111
-dns_driver = trove.dns.designate.driver.DesignateDriver
-dns_instance_entry_factory = trove.dns.designate.driver.DesignateInstanceEntryFactory
-dns_endpoint_url = http://127.0.0.1/v1/
-dns_service_type = dns
-
-# Neutron
-network_driver = trove.network.nova.NovaNetwork
-management_networks =
-
-
-# Taskmanager queue name
-taskmanager_queue = taskmanager
-
-# Auth
-admin_roles = admin
-
-# Guest related conf
-agent_heartbeat_time = 10
-agent_call_low_timeout = 5
-agent_call_high_timeout = 150
-
-# Reboot time out for instances
-reboot_time_out = 60
-
-# Trove api-paste file name
-api_paste_config = api-paste.ini
-
-
-# ============ Notification System configuration ===========================
-
-# Sets the notification driver used by oslo.messaging. Options include
-# messaging, messagingv2, log and routing. Default is 'noop'
-# notification_driver=noop
-
-# Topics used for OpenStack notifications, list value. Default is 'notifications'.
-# notification_topics=notifications
-
-# ============ Logging information =============================
-#log_dir = /integration/report
-#log_file = trove-api.log
-
-
-[database]
-
-# SQLAlchemy connection string for the reference implementation
-# registry server. Any valid SQLAlchemy connection string is fine.
-# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
-# connection = sqlite:///trove_test.sqlite
-connection = mysql+pymysql://root:e1a2c042c828d3566d0a@localhost/trove
-#connection = postgresql://trove:trove@localhost/trove
-
-# Period in seconds after which SQLAlchemy should reestablish its connection
-# to the database.
-#
-# MySQL uses a default `wait_timeout` of 8 hours, after which it will drop
-# idle connections. This can result in 'MySQL Gone Away' exceptions. If you
-# notice this, you can lower this value to ensure that SQLAlchemy reconnects
-# before MySQL can drop the connection.
-idle_timeout = 3600
-
-
-
-# ============ SSL configuration (and enablement) =============================
-# In order to enable SSL for the trove api server, uncomment
-# the cert_file and key_file - and of course have those files
-# accessible. The existence of those setting and files will
-# enable SSL.
-
-[profiler]
-# If False fully disable profiling feature.
-#enabled = False
-# If False doesn't trace SQL requests.
-#trace_sqlalchemy = True
-
-[ssl]
-
-#cert_file = /path/to/server.crt
-#key_file = /path/to/server.key
-#optional:
-#ca_file = /path/to/ca_file
-
-[oslo_messaging_notifications]
-
-#
-# From oslo.messaging
-#
-
-# The Driver(s) to handle sending notifications. Possible
-# values are messaging, messagingv2, routing, log, test, noop
-# (multi valued)
-# Deprecated group/name - [DEFAULT]/notification_driver
-#driver =
-
-# A URL representing the messaging driver to use for
-# notifications. If not set, we fall back to the same
-# configuration used for RPC. (string value)
-# Deprecated group/name - [DEFAULT]/notification_transport_url
-#transport_url = <None>
-
-# AMQP topic used for OpenStack notifications. (list value)
-# Deprecated group/name - [rpc_notifier2]/topics
-# Deprecated group/name - [DEFAULT]/notification_topics
-#topics = notifications
-
-# The maximum number of attempts to re-send a notification
-# message which failed to be delivered due to a recoverable
-# error. 0 - No retry, -1 - indefinite (integer value)
-#retry = -1
-
-[mysql]
-root_on_create = False
-# Format (single port or port range): A, B-C
-# where C greater than B
-tcp_ports = 3306
-volume_support = True
-device_path = /dev/vdb
-
-# Users to ignore for user create/list/delete operations
-ignore_users = os_admin, root
-ignore_dbs = mysql, information_schema, performance_schema
-
-
-[redis]
-tcp_ports = 6379, 16379
-volume_support = True
-device_path = /dev/vdb
-
-[cassandra]
-tcp_ports = 7000, 7001, 9042, 9160
-volume_support = True
-device_path = /dev/vdb
-
-[couchbase]
-tcp_ports = 8091, 8092, 4369, 11209-11211, 21100-21199
-volume_support = True
-device_path = /dev/vdb
-
-[mongodb]
-tcp_ports = 2500, 27017, 27019
-volume_support = True
-device_path = /dev/vdb
-num_config_servers_per_cluster = 1
-num_query_routers_per_cluster = 1
-
-[vertica]
-tcp_ports = 5433, 5434, 22, 5444, 5450, 4803
-udp_ports = 5433, 4803, 4804, 6453
-volume_support = True
-device_path = /dev/vdb
-cluster_support = True
-cluster_member_count = 3
-api_strategy = trove.common.strategies.cluster.experimental.vertica.api.VerticaAPIStrategy
-
-
-# ============ CORS configuration =============================
-
-[cors]
-
-#
-# From oslo.middleware.cors
-#
-
-# Indicate whether this resource may be shared with the domain received in the
-# requests "origin" header. (list value)
-#allowed_origin = <None>
-
-# Indicate that the actual request can include user credentials (boolean value)
-#allow_credentials = true
-
-# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
-# Headers. (list value)
-#expose_headers = X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID
-
-# Maximum cache age of CORS preflight requests. (integer value)
-#max_age = 3600
-
-# Indicate which methods can be used during the actual request. (list value)
-#allow_methods = GET,PUT,POST,DELETE,PATCH
-
-# Indicate which header field names may be used during the actual request.
-# (list value)
-#allow_headers = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID
-
-
-[cors.subdomain]
-
-#
-# From oslo.middleware.cors
-#
-
-# Indicate whether this resource may be shared with the domain received in the
-# requests "origin" header. (list value)
-#allowed_origin = <None>
-
-# Indicate that the actual request can include user credentials (boolean value)
-#allow_credentials = true
-
-# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
-# Headers. (list value)
-#expose_headers = X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID
-
-# Maximum cache age of CORS preflight requests. (integer value)
-#max_age = 3600
-
-# Indicate which methods can be used during the actual request. (list value)
-#allow_methods = GET,PUT,POST,DELETE,PATCH
-
-# Indicate which header field names may be used during the actual request.
-# (list value)
-#allow_headers = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID
-
-[oslo_middleware]
-
-#
-# From oslo.middleware
-#
-
-# Whether the application is behind a proxy or not. This determines if the
-# middleware should parse the headers or not. (boolean value)
-#enable_proxy_headers_parsing = false