将 Keycloak 添加到现有的 OpenShift 应用程序

Adding Keycloak to an existing OpenShift application

我也把这个问题提交给了 Keycloak 邮件列表。

可能我还没有完全掌握OpenShift背后的概念。我想 运行 我的应用程序在 OpenShift 云中,并使用 Keycloak 保护它。我的应用程序已经 运行ning,使用 2 个齿轮。 1 档在 WildFly 10 中有 Web 应用程序 运行ning,2 档托管 PostgreSQL 数据库。

我尝试通过使用 https://github.com/keycloak/openshift-keycloak-cartridge:

向我的应用程序添加一个墨盒来添加 Keycloak
rhc add-cartridge http://cartreflect-claytondev.rhcloud.com/github/keycloak/openshift-keycloak-cartridge

这会导致以下错误:

The cartridge 'http://cartreflect-claytondev.rhcloud.com/github/keycloak/openshift-keycloak-cartridge' will be downloaded and installed
Adding http://cartreflect-claytondev.rhcloud.com/github/keycloak/openshift-keycloak-cartridge to application ‘my_app' ... jboss-wildfly-10 already exists in your application

在我看来,运行 我在 WildFly 中的应用在一个档位上,而在 Keycloak 中,也在 WildFly 上,在第二个档位上。将 Keycloak 添加到现有 OpenShift 应用程序以及在 WildFly 上 运行ning 的最佳做法是什么?我应该在同一个 WildFly 实例中部署 Keycloak 吗?

如果我无法在同一个应用程序中部署基于相同“基本盒式磁带”的两个盒式磁带,OpenShift 如何扩展我的应用程序?这不是一回事吗?

在 OpenShift 上,您创建的每个应用程序只能有一 (1) 个满足 "web_framework" 类别的盒式磁带,目前对您来说是 WildFly。当您尝试安装 keycloak 盒时,它也是一个 web_framework 盒 (https://github.com/keycloak/openshift-keycloak-cartridge/blob/master/metadata/manifest.yml),您可以在 "categories" 下看到它。

当应用程序按比例放大时,它会添加更多齿轮,然后每个齿轮都会获得安装在其上的 web_framework 墨盒的自己的副本。

您可以在此处详细了解墨盒的工作原理:https://docs.openshift.org/origin-m4/oo_cartridge_developers_guide.html

如果你想使用 Keycloak,你应该将它安装到它自己的设备上(就像你设置 Wildfly 一样)。