REST API 版本历史¶
本文档记录了每次微版本变更对 REST API 所做的更改。每个版本的描述都应详细,包含足够的信息,以便在用户文档中使用。
1.1¶
这是 v1.1 API 的初始版本,它支持微版本。从 REST API 用户的角度来看,v1.1 API 与 v1.0 几乎完全相同,只是具有更严格的输入验证。
用户可以在 API 请求中指定一个 header
OpenStack-API-Version: <version>其中
<version>是此 API 的任何有效 API 版本。如果未指定版本,则 API 将表现得好像请求了 v1.1 版本。
1.2¶
在创建容器的请求中添加了一个新的属性 ‘nets’。用户可以使用此属性指定一个或多个网络用于容器。每个网络可以指定 neutron 网络、neutron 端口或 v4/v6 IP 地址。例如
[{'port': '1234567'}] [{'v4-fixed-ip': '127.0.0.1'}] [{'network': 'test'}] [{'network': 'test2'}] [{'v6-fixed-ip': '2f:33:45'}]
1.3¶
为创建容器添加 ‘auto_remove’ 字段。使用此字段,如果容器存在,则将自动删除它。然后创建新的容器。
1.4¶
添加主机列表 API。用户可以使用此 API 列出所有 zun 计算主机。添加获取主机 API。用户可以使用此 API 获取 zun 计算主机的详细信息。
1.5¶
在创建容器的请求中添加了一个新的属性 ‘runtime’。用户可以使用此属性为他们的容器选择运行时。指定的运行时应由管理员配置为与 Zun 一起运行。Zun 的默认运行时是 runc。
1.6¶
添加从容器分离网络的 API。用户可以使用此 API 从容器分离 neutron 网络。
1.7¶
禁止非管理员用户强制删除容器。只有管理员用户可以使用 “delete –force” 来强制删除容器。
1.8¶
添加将网络附加到容器的功能。用户可以使用此 API 将 neutron 网络附加到容器。
1.9¶
在创建容器的请求中添加了一个新的属性 ‘hostname’。用户可以使用此属性指定容器的主机名。
1.10¶
使容器删除 API 变为异步。删除容器的操作可能需要很长时间,因此使其变为异步以改善用户体验。
1.11¶
在创建容器的请求中添加了一个新的属性 ‘mounts’。用户可以使用此属性指定一个或多个挂载点用于容器。每个挂载点可以指定源和目标。源是 Cinder 卷 ID 或名称,目标是在容器中将挂载文件或目录的路径。例如
[{‘source’: ‘my-vol’, ‘destination’: ‘/data’}]
1.12¶
在删除容器的请求中添加了一个新的属性 ‘stop’。用户可以使用此属性停止并删除容器,而无需使用 –force 选项。
1.13¶
添加一个 API 用于列出容器上的网络。用户可以使用此 API 列出容器上的 neutron 网络。
1.14¶
删除容器重命名端点 (POST /containers/<container>/rename)。等效功能通过 patch 端点 (PATCH /containers/<container>) 重新引入。要重命名容器,用户可以向端点发送包含以下形式数据的请求
{‘name’: ‘<new-name>’}
1.15¶
删除添加/从容器添加/删除安全组的 API。删除这些 API 是因为它们是 Neutron 的代理 API。
1.16¶
修改 restart_policy 为 capsule 规范内容,以与 Kubernetes 对齐。
1.17¶
在 network_detach API 中添加参数
port。这允许用户从 neutron 端口分离容器。
1.18¶
修改 network_list (GET /v1/containers/{container_ident}/network_list) API 的响应。正常的响应将如下所示
{ "networks": [ { "port_id": "5be06e49-70dc-4984-94a2-1b946bb136fb", "net_id": "7e6b5e1b-9b44-4f55-b4e3-16a1ead98161", "fixed_ips" [ "ip_address": "30.30.30.10", "version": 4, "subnet_id": "ae8d7cce-859e-432f-8a33-d7d8834ccd14" ] } ] }
1.19¶
引入一个 API 端点用于调整容器大小,例如更改容器的 CPU 或内存。
1.20¶
将 ‘command’ 的类型从字符串转换为列表
1.21¶
支持特权容器
1.22¶
在创建容器时添加健康检查
1.23¶
添加在创建容器时文件注入的支持。文件的内容通过参数 ‘mounts’ 发送到 Zun 服务器。
1.24¶
在创建容器的请求中添加一个参数 ‘exposed_ports’。此参数的格式如下
“exposed_ports”: { “<port>/<protocol>: {}” }
其中 ‘port’ 是容器的端口,‘protocol’ 是 ‘tcp’ 或 ‘udp’。如果指定此参数,Zun 将创建一个安全组并打开暴露的端口。此参数不能与 ‘security_groups’ 参数一起使用,因为 Zun 将管理容器的安全组。
1.25¶
get_archive 端点返回使用 Base64 算法编码的归档文件数据。put_archive 端点将 Base64 编码的归档文件数据作为输入。
1.26¶
引入配额支持 API
1.27¶
引入删除网络的 API。默认情况下,这是一个管理员 API。
1.28¶
添加一个新的属性 ‘cpu_policy’。用户可以使用此属性来确定容器使用哪个 CPU 策略。
1.29¶
在 ‘host’ 资源中添加一个新的属性 ‘enable_cpu_pinning’。
1.30¶
引入创建/读取/更新/删除私有仓库的 API 端点。
1.31¶
在容器资源中添加 ‘registry_id’。此属性指示容器从中拉取镜像的仓库。
1.32¶
使 capsule 删除异步化。删除 capsule 的 API 请求将在 capsule 被删除之前返回。
1.33¶
在容器操作资源中添加 ‘finish_time’。如果操作完成,‘finish_time’ 显示完成时间。否则,此字段将为 None。
1.34¶
在 capsule 中添加 ‘init_containers’。此字段包含 init_container 信息列表。
1.35¶
支持处理 capsule 容器中的 ‘ports’ 字段。用户可以利用此字段打开容器的端口。例如
spec: containers: - image: "nginx" ports: - containerPort: 80 protocol: TCP
1.36¶
在容器中添加 ‘tty’。此字段指示容器是否应为其自身分配 TTY。
1.37¶
在 capsule 中添加 ‘tty’ 和 ‘stdin’。capsule 中的容器可以指定这两个字段。
1.38¶
在 capsule 中添加 ‘annotations’。此字段以键值对的形式存储 capsule 的元数据。
1.39¶
在 POST /v1/containers 上添加 ‘host’ 参数。此字段用于请求运行容器的主机。
1.40¶
在 POST /v1/containers 上添加 ‘entrypoint’ 参数。此字段用于覆盖镜像的默认 ENTRYPOINT。