Ceph iSCSI 网关与 Operator Framework

这项工作的目标是制作一个基于 Operator Framework 的 Ceph iSCSI 网关 charm。

问题描述

目前没有 charmed 机制为无法直接挂载 rbd 设备的客户端提供 Ceph 支持的块设备。 此外,一个新的 charm 框架正在开发中,这个 charm 是一个测试它以编写 OpenStack charms 的机会。

提议的变更

使用 Operator Framework 编写 ceph-iscsi charm。 该 charm 将被标记为预览 charm,但应具有与使用 reactive 框架编写的相应 OpenStack charm 相同的功能。

ceph-iscsi charm 应通过 Operator Framework 与 Juju 环境交互。 这意味着应避免调用 charmhelpers.core.hookenv 等库。 这适用于 charm 的所有方面,包括接口。

受影响或要求的操作系统版本是什么? Focal 或 Bionic + HWE Kernel

需要什么版本的 Juju? 2.7+

备选方案

使用 classic 还是 reactive 框架编写 charm。

实现

负责人

主要负责人

Liam Young <lp:gnuoy>

Gerrit Topic

对于与此规范相关的所有补丁,请使用 Gerrit 主题“<topic_name>”。

git-review -t ceph-iscsi

工作项

实现包括以下项目

  • 验证 Ubuntu ceph-iscsi 包在 Focal 上是否正常工作

  • 规划 charm 接口、支持模块等

  • 确定如何处理依赖项(pip、git 子模块等)

  • 确定在开发和发布期间如何固定框架和依赖项的版本。

  • 编写基本的 charm 以部署和配置网关服务。

  • 编写功能测试以执行 multipath 挂载 iscsi 卷。

  • 编写 README

  • Certificates 接口

  • 安全检查清单

  • 添加暂停和恢复

  • 实现 ceph-iscsi api 安全性(admin_password、trusted_ips 等)

  • zaza 测试,用于创建和挂载 target,执行基本的 i/o 和 initiator 重连测试。

  • 添加 iscsi target 创建 action

  • 确保更新状态检测到缺失或不完整的关系。

  • 添加系列升级

仓库

这几乎肯定会改变,但

文档

  • 任何额外的文档都将被考虑用于 charm-deployment-guide

安全性

网关 api 将使用密码进行保护,并且访问将限制为其他网关的 IP 地址。

Certificates 接口也将被实现以加密 api 端点。

测试

该 charm 将具有标准的 lint、单元和功能测试。 功能测试将用 zaza 编写。

依赖项

  • Operator Framework 具有足够的成熟度。

  • 确定了一种重用现有代码的方法。 添加第三个版本的通用函数可能无法接受。