nova policy overide (by quqi99)

2023-10-26

作者:张华 发表于:2023-05-19
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

Problem

ExternalNetworkAttachForbidden will be thrown when non-admin user is using unshared external network

Reproduce the problem

./xxx.sh -s focal --name ovn --num-compute 1 --ovn --use-stable-charms --run
./configure

openstack domain create aaa_domain
openstack project create myproject --domain aaa_domain
openstack user create --project myproject --domain aaa_domain --password password user1
openstack role add --user user1 --project myproject --user-domain aaa_domain Member
openstack role assignment list --project myproject --name
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=https://10.5.0.52:5000/v3
export OS_PROJECT_DOMAIN_NAME=aaa_domain
export OS_USERNAME=user1
export OS_AUTH_TYPE=password
export OS_USER_DOMAIN_NAME=aaa_domain
export OS_PROJECT_NAME=myproject
export OS_PASSWORD=password
export OS_IDENTITY_API_VERSION=3

openstack network set --external private
$ openstack network show private |grep -E 'share|exter'
| router:external | External |
| shared | False |

juju config nova-cloud-controller use-policyd-override=false
openstack server create --wait --image jammy --flavor m1.small --key-name testkey --nic net-id=$(openstack network show private -cid -fvalue) i1

$ openstack server show i1 |grep fault
| fault | {'code': 500, 'created': '2023-05-17T05:58:50Z', 'message': 'Build of instance 9f7bbcaf-6f9f-481b-bfc3-1096b44b4dea aborted: Failed to allocate the network(s), not rescheduling.'} |

$ juju ssh nova-compute/0 -- grep -r 'ExternalNetworkAttachForbidden' /var/log/nova/ |tail -n1
Connection to 10.5.3.103 closed.
/var/log/nova/nova-compute.log:2023-05-17 05:58:49.684 12137 ERROR nova.compute.manager [instance: 9f7bbcaf-6f9f-481b-bfc3-1096b44b4dea] nova.exception.ExternalNetworkAttachForbidden: It is not allowed to create an interface on external network fc56660e-8595-44af-a7a8-36c79c1d199a

Using policy overide to fix it

the specified rules: “project_admin_api” and “project_member_api,” have been deprecated since Ussuri - https://github.com/openstack/nova/blob/dfda0c0482acf579452742860cec2bdd64ac616a/nova/policies/base.py#L23

juju config nova-cloud-controller use-policyd-override=false
cat <<EOF > /tmp/patched-override-file.yaml
"network:attach_external_network": "rule:system_admin_or_owner"
EOF
zip data.zip /tmp/patched-override-file.yaml
juju attach-resource nova-cloud-controller policyd-override=data.zip
juju config nova-cloud-controller use-policyd-override=true
juju list-resources nova-cloud-controller
juju debug-log --replay --no-tail --include nova-cloud-controller |grep 'policy.d overrides installed'

# on each n-c-c, verify the change
oslopolicy-policy-generator --namespace nova --output /tmp/policy.yaml
cat /tmp/policy.yaml |grep attach_external_network
#juju run -a nova-cloud-controller "oslopolicy-policy-generator --namespace nova --output /dev/stdout | grep attach_external_network"

或者不希望每个project下的member都能使用这个nonshared external network的话,可以用rbac解决:

openstack network rbac create --type network --action access_as_shared --target-project <project-id-want-to-share> <network-id>

Reference

[1] OpenStack Ussuri 版新特性: Nova功能分析 - https://www.codetd.com/article/11420952

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nova policy overide (by quqi99) 的相关文章

随机推荐

  • 课程设计-基于Java web的网吧管理系统

    项目编号 B01 项目名称 基于Java jsp Servlet的网吧管理系统 源码编号 BK05 项目类型 Java web项目 JavaEE 当前版本 V1 0 0版本 用户类型 只有管理员 单角色 项目架构 B S架构 设计思想 MV
  • IDEA快捷键(WIN10,持续更新)

    IDEA快捷键 以下所说的都是windows下的默认快捷键 可以通过File gt Settings gt Keymap 对快捷键进行修改 查看源码 ctrl 鼠标左键 重写父类方法 ctrl o 快速写for循环 20 for或fori
  • python给图片加雾

    调用的是cv2的addWeighted函数 增雾结果来看效果还蛮不错的 import numpy as np import cv2 as cv import os import random file C Users Ilearn Desk
  • C++图书管理系统(简单版)

    1 系统需求 图书管理系统是一个可以记录图书借记和存储的工具 本教程主要利用C 来实现一个图书管理系统 系统中需要实现的功能如下 添加书籍 向图书管理系统中添加新书 信息包括 书名 书的价格 书的编号 最多记录1000本 显示书籍 显示图书
  • STC15单片机实战项目 - 硬件调试

    硬件调试 一 调试工具 1 直流电源 测试5 28V供电 2 手机充电线 测试USB供电 程序烧录 3 万用表 测量电压 4 示波器 测量开关波形 纹波等 二 焊接样机 焊接好的样机如下图 说明 作为硬件工程师 平时要多练焊接 练就一流的焊
  • 第二课 什么是norm game?(An Evolutionary Approach to Norms)

    文章目录 前置课程 An Evolutionary Approach to Norms Simulation of the Norms Game first step second step third step fourth step f
  • 【论文笔记】Darts-可微神经架构搜索(一)

    是什么 darts是什么 全称 Differentiable ARchiTecture Search 它是一种新 2018 的NAS 神经架构搜索 方法 NAS是什么 全称 neural architecture search 神经架构搜索
  • JS逆向时碰到了恶心的死代码怎么办?手把手教你解决!

    文章作者 夜幕团队 NightTeam 蔡老板 Loco 润色 校对 夜幕团队 NightTeam Loco 你是否也曾有过 在逆向时看到一大坨代码 但自己却无从下手 的遭遇 你是否也曾有过 跟着代码跳了很久之后 才发现那一大坨代码其实没有
  • MySQL的运行机制是什么?它有哪些引擎?

    目录 整个 SQL 的执行流程 1 查询缓存的利弊 2 如何选择数据库引 3 InnoDB 自增主键 整个 SQL 的执行流程 首先客户端端先要发送用户信息去服务端进行授权认证 如果使用的是命令行工具 通常需要输入如下信息 mysql h
  • 《Flutter入门疑难杂症》 Flutter的UI适配方案

    本文后面已经被我用新的extension大法替代咯 有兴趣的可以看我写的这篇文章 https blog csdn net WZAHD article details 111404843 spm 1001 2014 3001 5501 话不多
  • TimeLine 的使用说明

    一 关于 TimeLine Timeline是一套基于时间轴的多轨道动画系统 它支持可视化编辑 实时预览 这一个技术相对于其他动画系统 最大的区别就是 Timeline可以针对多个游戏物体做出的一系列动画 主要用于过场动画的制作 实现电影级
  • 如何记录键盘SIGQUIT次数

    Unix信号 在计算机科学中 信号 英语 Signals 是Unix 类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式 它是一种异步的通知机制 用来提醒进程一个事件已经发生 当一个信号发送给一个进程 操作系统中断了进
  • EOS与以太坊有哪些区别?

    以太坊是一个专门为开发和运行去中心化应用 DAPP 搭建的智能合约平台 EOS与以太坊类似 同样是基于智能合约和区块链而搭建 但是 从技术和设计理念等方面来看 这两者之间实际上存在明显的区别 那么EOS和以太坊到底有什么区别呢 这个问题要从
  • 深入了解接口测试:Postman 接口测试指南

    在现代软件开发生命周期中 接口测试是一个至关重要的部分 使用 Postman 这一工具 可以轻松地进行 接口测试 以下是一份简单的使用教程 帮助你快速上手 安装 Postman 首先 你需要在电脑上安装 Postman 你可以从官网上下载并
  • python如何取0到无穷大_python如何表示无穷大

    float inf 表示正无穷 float inf 或 float inf 表示负无穷 其中 inf 均可以写成 Inf 起步 python中整型不用担心溢出 因为python理论上可以表示无限大的整数 直到把内存挤爆 而无穷大在编程中常常
  • 使用 Mapbox 在 Vue 中开发一个地理信息定位应用

    本文首发自 前端修罗场 点击加入 是一个由 资深开发者 独立运行 的专业技术社区 我专注 Web 技术 Web3 区块链 答疑解惑 面试辅导以及职业发展 博主创作的 前端面试复习笔记 点击订阅 广受好评 已帮助多人提升实力 拿到 offer
  • 20210601

    一 调整系统的共享内存上限 今天遇到创建32个大小为100MB的共享内存失败 原因是创建的共享内存总大小超过了系统允许的共享内存上限 查询系统共享内存上限的命令是 ipcs l ops g null kernel ipcs l Shared
  • nodejs原生搭建后端服务

    node nodejs原生搭建后端服务 nodejs写后端 默默的小跟班的博客 CSDN博客
  • CentOS8下安装配置Wireguard

    1 CentOS8 0服务端安装 yum update y yum install epel release https www elrepo org elrepo release 8 el8 elrepo noarch rpm yum i
  • nova policy overide (by quqi99)

    作者 张华 发表于 2023 05 19 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 Problem ExternalNetworkAttachForbidden will be thrown w