CouchDB 配置组

Launchpad 蓝图: https://blueprints.launchpad.net/trove/+spec/couchdb-configuration-groups

问题描述

CouchDB 数据存储当前不支持配置组。

提议的变更

补丁集将为 CouchDB 实现配置组。

CouchDB 将其配置存储在 ‘local.ini’ 文件中。

大多数配置属性将通过配置组可用。然而,有些在 Trove 环境下没有意义。

这些包括(将在配置模板中记录):

  • guestagent 特定的(例如,文件路径、密码、文件访问规则)

  • Trove 需要控制的项目(复制/集群/日志属性)

请参阅 可用配置属性 以获取支持的选项的完整列表。

配置

数据库

公共 API

公共 API 安全

Python API

CLI (python-troveclient)

内部 API

CLI (python-troveclient)

这项工作将启用以下客户端命令

  • configuration-attach

  • configuration-detach

Guest Agent

  • managerservice 模块中实现 update_overridesapply_overrides

  • 将提供一个配置模板和验证规则,更改将在 可用配置属性 中注明。

现有的 ‘IniCodec’ 实现将被重用以处理文本文件操作。

备选方案

Dashboard 影响 (UX)

实现

负责人

Sonali Goyal <sonaligoyal654321@gmail.com> Victoria Martinez de la Cruz <victoria@redhat.com>

里程碑

Netwon-1

工作项

所有更改将在单个任务的上下文中完成。

  1. 实现与配置相关的 manager API 调用

    def update_overrides(self, context, overrides, remove=False)
    def apply_overrides(self, context, overrides)
    

升级影响

依赖项

补丁集将在蓝图的基础上构建:couchdb-database-user-functions

测试

该更改大部分被现有的配置测试覆盖。将添加单元测试以验证任何 CouchDB 特定的代码路径。

文档影响

数据存储文档应更新以反映启用的功能。

参考资料

附录

可用配置属性

用户可以通过 Trove API 配置的属性

[attachments] - compressible_types - compression_level [couchdb] - delayed_commits - max_attachment_chunk_size - attachment_stream_buffer_size - max_dbs_open - max_document_size - os_process_timeout [daemons] - auth_cache - db_update_notifier - external_manager - httpd - httpsd - query_servers - stats_aggregator - stats_collector - uuids - view_manager - vhosts [httpd] - allow_jsonp - authentication_handlers - changes_timeout - config_whitelist - default_handler - enable_cors - log_max_chunk_size - redirect_vhost_handler - secure_rewrites - server_options - socket_options - vhost_global_handlers - x_forwarded_host - x_forwarded_proto - x_forwarded_ssl [replicator] - checkpoint_interval - connection_timeout - db - http_connections - max_replication_retry_count - retries_per_request - socket_options - ssl_certificate_max_depth - ssl_trusted_certificates_file - use_checkpoints - verify_ssl_certificates - worker_batch_size - worker_processes [query_server_config] - commit_freq - os_process_limit - reduce_limit [os_daemon_settings] - max_retries - retry_time [couch_httpd_auth] - allow_persistent_cookies - auth_cache_size - authentication_db - authentication_redirect - iterations - max_iterations - min_iterations - proxy_use_secret - public_fields - require_valid_user - secret - timeout - users_db_public - x_auth_roles - x_auth_token - x_auth_username - use_users_db [compaction_daemon] - check_interval - min_file_size [database_compaction] - doc_buffer_size - checkpoint_after [log] - include_sasl - level [view_compaction] - keyvalue_buffer_size

Guestagent 控制的属性

[httpd] - port - bind_address [log] - file [couchdb] - uri_file - util_driver_dir - view_index_dir - database_dir