indigopaas/orchestrator-dashboardINDIGO PaaS Orchestrator的简单图形化界面。
orchestrator-dashboard是一个基于Flask微框架构建的Python应用,使用Flask-Dance实现Openid-Connect/OAuth2集成。Docker镜像使用Gunicorn作为WSGI HTTP服务器来运行Flask应用。该镜像提供了PaaS编排器的图形化管理界面,方便用户管理部署。
适用于需要通过图形化界面管理INDIGO PaaS Orchestrator部署的用户,包括开发人员、系统管理员等,用于监控、管理和操作PaaS平台上的应用部署。
应用需要数据库存储数据并通过HTTPS运行。
https://<DASHBOARD_HOST>:<PORT>/login/iam/authorizedopenid、email、profile、offline_accessauthorization_code、refresh_token和urn:ietf:params:oauth:grant-type:token-exchange
instance文件夹,包含以下文件:
config.json将证书放在任意位置,使用时引用正确路径。bashopenssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365
launch.json和docker-compose.yml期望证书位于certs文件夹中。https://<PROXY_HOST>/login/iam/authorized)https://<PROXY_HOST>/访问仪表板若要在仓库提供的Docker镜像外运行应用:
requirements.txt中定义的包依赖
使用pip:
使用poetry:bashpip install -r requirements.txt
安装过程和虚拟环境激活取决于您偏好的方式。bashcat requirements.txt | xargs poetry add
若要更改图形或自动启用一组功能,请选择预配置的配置文件
config.json文件中,设置CONFIGURATION_PROFILE变量(例如infn-cloud)。若要启用Redis
config.json文件中,设置REDIS_URL变量(例如redis://:my-password@localhost:6379)。若要更改上传文件夹
config.json文件中,设置UPLOAD_FOLDER(例如**/opt/uploads**)。若要在左侧导航栏显示高级菜单选项或在部署创建中启用调度配置
config.json文件中,设置FEATURE_ADVANCED_MENU为true。若要使用docker/start.sh文件启动应用
ENABLE_HTTPS=True若需要安装和信任默认CA bundle中未包含的证书
trusted_certs文件夹中创建CA证书。若要集成vault服务
instance文件夹中添加vault-config.json文件。若要手动克隆tosca-templates仓库
config.json文件,使TOSCA_TEMPLATES_DIR指向正确路径(例如**/opt/tosca-templates**)。bashgit clone [***]
docker-compose.yml期望该仓库位于instance文件夹中。
若要手动克隆dashboard-configuration仓库
config.json文件,使SETTINGS_DIR指向正确路径(例如**/opt/dashboard-configuration**)。bashgit clone [***]
docker-compose.yml期望该仓库位于instance文件夹中。
在
dashboard-configuration/tosca-metadatametadata.yaml中定义了用户与可用服务之间的映射。可以使用正则表达式定义多个组。
若要启用SSH公钥
config.json文件中,设置FEATURE_REQUIRE_USER_SSH_PUBKEY为yes。若要启用vault功能
vault-config.json变量中设置的策略名称匹配。config.json文件中,设置FEATURE_VAULT_INTEGRATION为yes。vault-config.json文件,至少包含:VAULT_URL、VAULT_ROLE和VAULT_BOUND_AUDIENCE。使用环境变量代替在.json文件中定义变量
FLASK_TOSCA_TEMPLATES_DIR)config.json参数| 键 | 描述 | 是否必填 |
|---|---|---|
| SECRET_KEY | 项目的唯一标识符 | 是 |
| IAM_CLIENT_ID | 在IAM中注册的客户端ID | 是 |
| IAM_CLIENT_SECRET | 在IAM中注册的客户端密钥 | 是 |
| IAM_BASE_URL | IAM URL | 是 |
| IAM_SCOPE | IAM允许的作用域 | 是 |
| ORCHESTRATOR_URL | 编排器服务URL | 否 |
| SLAM_URL | SLAM服务URL | 是 |
| CMDB_URL | CMDB服务URL | 否 |
| IM_URL | IM服务URL | 否 |
| EXTERNAL_LINKS | 其他外部链接... | 否 |
| SQLALCHEMY_DATABASE_URI | 数据库的完整URL | 是 |
| REDIS_URL | Redis实例的完整URL。若未设置,应用将尝试连接本地主机。 | 否 |
| CALLBACK_URL | 编排器用于更新仪表板的URL | 是 |
| ADMINS | 管理员电子邮件列表。列表中的每个电子邮件必须用单引号括起来。(已弃用) | 否 |
| SUPPORT_EMAIL | 用户支持电子邮件 | 否 |
| IAM_GROUP_MEMBERSHIP | 应用中使用的用户组列表 | 否 |
| IAM_ADMIN_GROUPS | 管理员所属的IAM组列表 | 是 |
| CONFIGURATION_PROFILE | 选择仪表板图形 | 否 |
| LOG_LEVEL | 应用日志级别。必须为大写。 | 否 |
| ENABLE_HTTPS | 仅在运行start.sh脚本时启用HTTPS。 | 否 |
| TOSCA_TEMPLATES_DIR | tosca-templates仓库的路径。若已克隆,将上传其内容;否则为放置仓库内容的目标文件夹名称。 | 否 |
| SETTINGS_DIR | dashboard-configuration仓库的路径。若已克隆,将上传其内容;否则为放置仓库内容的目标文件夹名称。 | 否 |
| UPLOAD_FOLDER | 上传文件保存的文件夹路径。若文件夹不存在,服务将在创建第一个项目时创建它。 | 否 |
| FEATURE_ADVANCED_MENU | 启用部署调度和其他高级设置。 | 否 |
| FEATURE_HIDDEN_DEPLOYMENT_COLUMNS | 在部署列表中隐藏的列(用户视图) | 否 |
| FEATURE_DEPLOYMENT_SORT_COLUMN | 部署列表的初始排序列(用户视图) | 否 |
| FEATURE_HIDDEN_ADMIN_DEPLOYMENT_COLUMNS | 在部署列表中隐藏的列(管理员视图) | 否 |
| FEATURE_HIDDEN_DEPLOYMENT_SORT_COLUMN | 部署列表的初始排序列(管理员视图) | 否 |
| FEATURE_MAX_PIE_SLICES | 饼图中的最大切片数(0表示无限制)(管理员视图) | 否 |
| FEATURE_SHOW_BROKEN_DEPLOYMENTS | 在统计中显示没有模板引用的部署(UNKNOWN模板)(管理员视图) | 否 |
| FEATURE_UPDATE_DEPLOYMENT | 更新部署时启用更新/删除高级选项(已弃用-相关图形未更新)。 | 否 |
| FEATURE_VAULT_INTEGRATION | 启用vault集成。 | 否 |
| FEATURE_REQUIRE_USER_SSH_PUBKEY | 启用添加用户SSH公钥的部分。依赖于FEATURE_VAULT_INTEGRATION,因为SSH公钥存储在vault中。提交任何部署时此项为必填。 | 否 |
| FEATURE_S3CREDS_MENU | 启用S3凭据创建菜单。(已弃用) | 否 |
| PROVIDER_NAMES_TO_SPLIT | 要拆分为提供商名称和区域名称的提供商名称列表。 | 否 |
| MAIL_SERVER | SMTP服务器 | 否 |
| MAIL_PORT | SMTP服务器端口 | 否 |
| MAIL_SENDER | 电子邮件中的发件人*** | 否 |
| MAIL_USERNAME | 要使用的电子邮件账户的用户名 | 否 |
| MAIL_PASSWORD | 要使用的电子邮件账户的密码 | 否 |
| MAIL_USE_TLS | 使用TLS | 否 |
| LDAP_TLS_CACERT_FILE | LDAP的CA验证证书 | 否 |
| LDAP_SOCKET | 用于连接LDAP实例的套接字 | 否 |
| LDAP_BASE | 否 | |
| LDAP_BIND_USER | 否 | |
| LDAP_BIND_PASSWORD | 否 | |
| RUCIO_CONNECTOR_ENABLE | 是否启用Rucio。必须设置为'yes'才启用 | 否 |
| RUCIO_CONNECTOR_URL | Rucio连接器的URL | 否 |
LDAP变量是运行Sync&Share等服务所必需的。
vault-config.json参数仅当FEATURE_VAULT_INTEGRATION=yes时,这些变量才为必填。
尽管TOKEN_TIME_DURATION和TOKEN_RENEWAL_TIME_DURATION都标记为必填,但它们可视为互斥。
| 键 | 描述 | 是否必填 |
|---|---|---|
| VAULT_URL | Vault服务URL | 是 |
| VAULT_ROLE | Vault角色 | 是 |
| VAULT_OIDC_AUDIENCE | 该角色的Vault注册受众(已弃用) | 是 |
| VAULT_BOUND_AUDIENCE | 该角色的Vault注册受众 | 否 |
| VAULT_SECRET_PATH | URL中用户密钥的根路径(已弃用) | 否 |
| VAULT_SECRETS_PATH | URL中用户密钥的根路径(当前未在代码中使用,仅在ansible脚本中使用) | 否 |
| WRAPPING_TOKEN_TIME_DURATION | 是 | |
| READ_POLICY | 要使用的读策略名称 | 是 |
| READ_TOKEN_TIME_DURATION | Vault令牌的删除权限持续时间 | 是 |
| READ_TOKEN_RENEWAL_TIME_DURATION | 读令牌续期周期。若定义此值,令牌的持续时间等于该周期。READ_TOKEN_TIME_DURATION可省略。 | 是 |
| WRITE_POLICY | 要使用的写策略名称 | 是 |
| WRITE_TOKEN_TIME_DURATION | Vault令牌的写权限持续时间 | 是 |
| WRITE_TOKEN_RENEWAL_TIME_DURATION | 写令牌续期周期。若定义此值,令牌的持续时间等于该周期。WRITE_TOKEN_TIME_DURATION可省略。 | 是 |
| DELETE_POLICY | 要使用的删除策略名称 | 是 |
| DELETE_TOKEN_TIME_DURATION | Vault令牌的删除权限持续时间 | 是 |
| DELETE_TOKEN_RENEWAL_TIME_DURATION | 删除令牌续期周期。若定义此值,令牌的持续时间等于该周期。DELETE_TOKEN_TIME_DURATION可省略。 | 是 |
仪表板首次启动时,从管理员设置页面,您需要下载tosca-templates仓库。它将被放置在
TOSCA_TEMPLATES_DIR中。
仪表板首次启动时,从管理员设置页面,您需要下载dashboard-configuration仓库。它将被放置在
SETTINGS_DIR中。
在本地环境运行Flask应用的命令:
bashFLASK_app=orchdashboard flask run --host=0.0.0.0 --cert cert.pem --key key.pem
在本地环境使用gunicorn运行应用的命令:
bashgunicorn -w 1 --timeout 60 \ --bind 0.0.0.0:5000 \ --certfile certs/cert.pem \ --keyfile certs/key.pem \ orchdashboard:app
或者,您可以运行docker/start.sh脚本,该脚本是Docker化实例启动时运行的脚本。
该脚本使用CERT和KEY环境变量定义cert.pem和key.pem文件的路径;默认情况下,它们等于/certs/cert.pem和/certs/key.pem。
服务暴露的端口可以使用PORT环境变量设置;默认情况下,start.sh脚本在端口5001上暴露服务。
运行脚本:
bash./docker/start.sh
若要在Docker容器中运行应用,仓库提供了Docker镜像和docker-compose.yml文件以启动所有需要的服务。
运行Docker容器:
bashdocker run -d -p 5000:5001 \ --name='orchestrator-dashboard' \ -v $PWD/certs:/certs \ -v $PWD/trusted_certs:/trusted_certs \ -v $PWD/instance/:/app/instance/ \ -e ENABLE_HTTPS=True \ -e TOSCA_TEMPLATES_DIR=/app/instance/tosca-templates \ -e SETTINGS_DIR=/app/instance/dashboard-configuration \ -e UPLOAD_FOLDER=/app/instance/uploads \ infn-datacloud/orchestrator-dashboard:latest
由于应用在容器内运行,请记住正确设置
SQLALCHEMY_DATABASE_URI和REDIS_URL作为环境变量或在config.json中设置。
除了orchestrator-dashboard,docker compose还启动5.7版本的MySQL数据库和Redis服务实例。此外,它绑定项目顶层目录中的instance文件夹。期望在该目录中找到所有.json文件,并将tosca-templates、dashboard-configuration和uploads文件夹放在那里。docker-compose.yml正确定义了环境变量SQLALCHEMY_DATABASE_URI、REDIS_URL、TOSCA_TEMPLATES_DIR、SETTINGS_DIR和UPLOAD_FOLDER。
运行docker compose套件:
bashdocker compose -f docker/docker-compose.yml up -d
默认情况下,Docker镜像暴露端口5001而非5000。
docker-compose.yml将容器的5001端口映射到本地主机的5000端口。 默认情况下,TOSCA_TEMPLATES_DIR、SETTINGS_DIR和UPLOAD_FOLDER指向需要管理员权限的路径。docker-compose.yml将这些变量映射到用户可访问的路径。
对于VSCode用户,.devcontainer文件夹中提供了devcontainer配置。
仓库包含orchdasboard_dev.py文件,应用于开发人员调试。与主文件orchdashboard.py的主要区别是它调用检查和自动更新数据库的例程。 如果要使用上述生产环境的orchdashboard.py文件进行调试,当需要更新数据库时,必须手动启动migrate_db.py文件。 在Docker化配置中,此文件会自动启动。
bashgit clone [***] cd orchestrator-dashboard docker build -f docker/Dockerfile -t
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务