【问题标题】:OpenShift Online v3+ - Adding new route gives forbidden errorOpenShift Online v3+ - 添加新路由会出现禁止错误
【发布时间】:2018-04-16 16:45:23
【问题描述】:

我在 OpenShift Online(Starter Plan,美国弗吉尼亚服务器)上成功安装了一个 Java Web 应用程序(带有 MySQL Persistent 服务)。运行时是 Tomcat。我设法从外部 Git 存储库(此外通过 ssh 身份验证)构建 WAR,并将应用程序部署到容器中。它可以从自动生成的路线到达,但我在设置一个链接到 www 域的自定义新路线时遇到了一个奇怪的错误。这是消息:

Route is invalid: spec.host: Forbidden: 你没有权限设置路由的host字段。

我想这是一个平台错误,但不知道如何解决(如果可能的话)。请问有什么想法吗?非常感谢。

【问题讨论】:

    标签: routing openshift redhat


    【解决方案1】:

    这意味着 支持自定义域 用于非入门 (Pro) 计划。使用入门计划,您不能指定域名。

    【讨论】:

    • 正确,入门计划不能有自定义域。
    • 感谢您的回复。我的意思是我不能再将公共主机名设置为我的应用程序的路由(例如 www.mydomain.com)。如果您是对的,则意味着该政策最近发生了变化,因为它曾经在几天前使用入门计划。
    • 一直policy。我相信在 Starter 的初始启动期间有一个宽限期,这可能没有被强制执行。但是,您可以创建一个公共主机名。通过在创建路由时将 host 值留空,您将自动生成一个公共 URL。
    • 这可以解释为什么我的路线不再起作用了。因为有时当我尝试通过 shell 上传 sqldumpdir 时遇到同样的问题,我认为平台上存在临时问题..再次感谢您。
    【解决方案2】:

    我在 OKD 4 上收到相同的错误消息。

    禁止:您无权在入口规则中设置主机字段

    根本原因是由路由管理的入口以及需要额外 ClusterRole 设置来更新这些字段的路由。

    Allow route spec.host to be controlled by permission 于 2017 年 3 月合并

    所以我们需要为想要更新入口的服务帐户添加额外的权限

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: foobar-openshift-ingress
    rules:
    - apiGroups: ["route.openshift.io"]
      resources: ["routes", "routes/custom-host"]
      verbs:  ["create", "patch"]
    

    将此 ClusterRole 绑定到您的服务帐户,一切都会正常工作。

    【讨论】:

    • 仅供参考,今天在 IBM Cert Manager(jetstack cert-manager 的副本)上有这个。您的 RB 角色修复对我有用。谢谢。
    猜你喜欢
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多