Servicios proporcionados por el usuario

Los usuarios pueden crear instancias de servicios proporcionadas por el usuario y aprovechar los servicios que no están disponibles en el mercado. Una vez creadas, las instancias de servicio proporcionadas por el usuario se comportan como las instancias de servicio creadas a través de Marketplace. En Kf, se pueden crear, enumerar, actualizar, borrar, vincular y desvincular servicios proporcionados por el usuario.

Crea una instancia de servicio proporcionada por el usuario

El alias de kf create-user-provided-service es kf cups.

El nombre que se le da a un servicio proporcionado por el usuario debe ser único en todas las instancias de servicio de un espacio, incluidos los servicios creados a través de un agente del servicio.

Entrega credenciales de servicio a una app

Se puede usar una instancia de servicio proporcionada por el usuario para entregar credenciales a una app. Por ejemplo, un administrador de la base de datos puede tener un conjunto de credenciales para una base de datos existente que se administra fuera de Kf, y estas credenciales incluyen la URL, el puerto, el nombre de usuario y la contraseña que se usaron para conectarse a la base de datos.

El administrador puede crear un servicio proporcionado por el usuario con las credenciales, y el desarrollador puede vincular la instancia de servicio a la aplicación. Esto permite que las credenciales se compartan sin salir de la plataforma. La vinculación de una instancia de servicio con una app tiene el mismo efecto independientemente de si el servicio es uno proporcionado por el usuario o del mercado.

La app se configura con las credenciales proporcionadas por el usuario, y la variable del entorno de ejecución VCAP_SERVICES se propaga con información sobre todos los servicios vinculados a esa app.

Se pueden usar credenciales o una lista de etiquetas para crear un servicio proporcionado por el usuario.

kf cups my-db -p '{"username":"admin", "password":"test123", "some-int-val": 1, "some-bool": true}' -t "comma, separated, tags"

Esto creará la instancia de servicio proporcionada por el usuario my-db con las credenciales y etiquetas proporcionadas. Las credenciales que se pasan a la marca -p deben tener un formato JSON válido (ya sea intercaladas o cargadas desde una ruta de archivo).

Para entregar las credenciales a una o más apps, el usuario puede ejecutar kf bind-service.

Supón que tenemos una app con un servicio vinculado, el servicio proporcionado por el usuario my-db definido anteriormente. La variable de entorno VCAP_SERVICES de esa app tendrá el siguiente contenido:

{
  "user-provided": [
    {
      "name": "my-db",
      "instance_name": "my-db",
      "label": "user-provided",
      "tags": [
        "comma",
        "separated",
        "tags"
      ],
      "credentials": {
        "username": "admin",
        "password": "test123",
        "some-int-val": 1,
        "some-bool": true
      }
    }
  ]
}

Actualiza una instancia de servicio proporcionada por el usuario

El alias de kf update-user-provided-service es kf uups.

Se puede actualizar un servicio proporcionado por el usuario con el comando uups. Las credenciales o etiquetas nuevas que se ingresan reemplazan por completo las existentes. Por ejemplo, si el usuario creó el servicio proporcionado por el usuario my-db anterior, llamado kf bind-service, para vincular el servicio a una app, ejecuta el siguiente comando.

kf uups my-db -p '{"username":"admin", "password":"new-pw", "new-key": "new-val"}'

Las credenciales actualizadas solo se mostrarán en la app una vez que el usuario desvincule el servicio de la app y vuelva a vincularlo. No es necesario reiniciar ni volver a habilitar la app. La variable de entorno VCAP_SERVICES actualizada tendrá el siguiente contenido:

{
  "user-provided": [
    {
      "name": "my-db",
      "instance_name": "my-db",
      "label": "user-provided",
      "tags": [
        "comma",
        "separated",
        "tags"
      ],
      "credentials": {
        "username": "admin",
        "password": "new-pw",
        "new-key": "new-val"
      }
    }
  ]
}

Las credenciales nuevas reemplazan las credenciales antiguas, y las etiquetas no se modifican porque no se especificaron en el comando de actualización.