Создание службы Cloud Foundry из размещенного приложения Cloud Foundry - PullRequest
0 голосов
/ 04 июня 2019

У меня есть приложение Cloud Foundry, размещенное на Swisscom. Одна из функций, которые мне требуются в приложении, заключается в том, что пользователь может настроить службу Cloud Foundry, в частности, службу Swisscom Secrets-Store. Тем не менее, это оказывается сложной задачей.

Во-первых, я использовал модуль NPM cloudfoundry-cli , чтобы создать сервис из моего приложения во многом как в приведенном примере:

const cf = require('cloudfoundry-cli')
cf.provisionService({
  name: 'mongoNo1',
  type: 'compose-for-mongodb',
  plan: 'Standard'
}, function(err) {
  if (err) return console.log(err)
  console.log('Service provisioned')
})

Это работало нормально, когда я запускал приложение локально, потому что на моем компьютере, очевидно, установлен CLI CF. Однако, когда я отправил приложение в Swisscom и попытался создать службу, ничего не произошло, так как CLI CF не установлен в приложении.

Я также извлек cf-nodejs-client , который предлагается, если вы не хотите устанавливать CLI CF, позволяя вам передавать свои данные для входа в Cloud Foundry и конечную точку API. Однако я проверил документы, и кажется, что этот модуль NPM не позволяет вам создавать сервисы. Документы показывают, что вы можете либо получить getService, getServicePlans, getServices, либо удалить - нет возможности создать.

В худшем случае я думал, что смогу подключить SSH к работающему приложению и установить CLI CF, но для этого вам нужен root-доступ, который невозможен.

Мой вопрос: возможно ли установить CLI CF на приложение, когда оно выдвигается? Возможно, buildpack-пакет, который может установить CLI CF при запуске приложения? Я проверил список пакетов сборки сообщества, и его, кажется, не существует, и я не знаю, с чего начать. В противном случае, кто-нибудь знает, как создавать сервисы Cloud Foundry из приложения Node без необходимости использования CLI CF.

1 Ответ

1 голос
/ 05 июня 2019

Можно ли установить CLI CF на приложение во время его нажатия?

Один из вариантов - просто связать cf cli с вашим приложением.Это статический двоичный файл, поэтому его довольно легко связать с вашим приложением.Следующее должно работать.

  1. Загрузите cf cli для Linux с здесь и распакуйте его.
  2. Поместите это в папку, которая находится в корневом каталоге вашего приложения.Например: mkdir bin/ затем переместите двоичный файл с шага # 1 в папку bin/.
  3. Добавьте файл .profile в корень приложения.В этом файле поместите export PATH=$PATH:$HOME/bin, который поместит каталог bin/ из шага # 2 в PATH (измените bin на то, что вы назвали в этой папке).

Now cf pushваше приложение.Это будет включать в себя двоичный файл.Когда он запустится, скрипт .profile запустится и поместит путь к вашему двоичному файлу cf в PATH.Таким образом, вы можете запускать команды cf ... в своем контейнере.

Надеюсь, это поможет!

...