Inside Kolla - 04 Kolla 目录结构
Kolla 目录结构
把 Kolla 的源代码下载下来后,先从总体上分析 Kolla 的目录结构,查看顶层目录结构,使用
tree -L 1
输出
.
├── ansible
├── compose
├── demos
├── devenv
├── docker
├── docs
├── LICENSE
├── README.md
├── specs
├── test-requirements.txt
├── tests
├── tools
└── tox.ini
从顶层文件目录结构来看,各个目录所包含的内容为:
-
ansible
ansible 配置目录。里面的 README.md 文件提示这部分为
Koalla
,Koalla - Kolla with ansible!
。它的目标是在现有 Kolla 组件上,使用 ansible 和 docker-compose 建立一个部署系统。😃 -
compose
docker-compose 配置目录。里面包含很多 docker-compose 使用的 yaml 配置文件,每个配置都简单地启动一组 docker 容器来实现某个服务。在启动服务前,需要先通过
tools/genenv
的工具脚本来生成 Openstack 环境变量,然后才能用docker-compose
或tools/kolla start
来启动服务。 -
demos
示例目录。里面包含了 heat 的编排配置,目前不关注它。
-
devenv
开发环境。里面包含了如何建立 Kolla 开发环境的说明,README.md 文件里面说明构建一个 N 节点的 Kolla 集群的步骤、参数设置、跟踪调试等。
-
docker
docker 镜像定义目录。非常重要的目录,里面包括 Kolla 项目所有的 Dockerfile 文件,是项目的重要部分。 Kolla 的 docker 镜像遵从 基础镜像 -> 应用基础镜像 -> 应用镜像 的层叠模式。 Kolla 项目采用 RedHat 系的 Linux 镜像为基础镜像,可使用 CentOS / Fedora / RHEL 。数据放入到 数据卷容器,因此会定义
mariadb-data
和nova-compute-data
等数据卷容器。 -
docs
文档目录。也是非常重要的目录,里面包括开发环境设置、镜像编译、Kolla 环境变量等说明,建议趁着现在文档还比较少,把文档都认真读一遍 😃
-
LICENSE
LICENSE文件。Apache License Version 2 的 License 文件,没什么好说的。
-
README.md
说明文件。
-
specs
spec目录。目前只有一个 spec,说明使用容器安装 OpenStack 的理念和优势。
-
test-requirements.txt
python 的 requirements 文件。用于说明测试时所需要的 python 包,目前只有一个 PyYAML。
-
tests
测试目录。这个目录应该包含 Kolla 的测试套件,但目前只有一个
setup_docker.sh
用于安装 docker。 -
tools
工具脚本目录。目录包含编译 docker 镜像、清理 docker 环境、生成 Kolla 环境变量、Kolla 启动脚本、json/yaml文件检验等脚本。建议把这个目录的脚本都看一遍,需要点 Shell、python的知识。
-
tox.ini
tox配置文件。tox是一个标准自动化测试工具,python里的。目前这个文件很简单,只包含了 virtualenv 设置和一些简单的检查。
现在 Kolla 还小,不像 nova / neutron 这些庞然大物,因此很值得把 Kolla 的代码认真看看,整理 Kolla 的设计思路,对以后把握 Kolla 的发展很有帮助,也希望大家能参与到 Kolla 的社区中,无论是贡献代码、写写 Blog、找茬,都能帮助到 Kolla 。