Mengonfigurasi layanan yang disediakan pengguna

Pengguna dapat memanfaatkan layanan yang tidak tersedia di marketplace dengan membuat instance layanan yang disediakan pengguna. Setelah dibuat, instance layanan yang disediakan pengguna akan berperilaku seperti instance layanan yang dibuat melalui marketplace. Membuat, mencantumkan, memperbarui, menghapus, mengikat, dan membatalkan pengikatan layanan yang disediakan pengguna semuanya didukung di Kf.

Membuat instance layanan yang disediakan pengguna

Alias untuk kf create-user-provided-service adalah kf cups.

Nama yang diberikan ke layanan yang disediakan pengguna harus unik di semua instance layanan dalam Ruang, termasuk layanan yang dibuat melalui perantara layanan.

Mengirimkan kredensial layanan ke aplikasi

Instance layanan yang disediakan pengguna dapat digunakan untuk mengirimkan kredensial ke Aplikasi. Misalnya, admin database dapat memiliki sekumpulan kredensial untuk database yang sudah ada yang dikelola di luar Kf, dan kredensial tersebut mencakup URL, port, nama pengguna, dan sandi yang digunakan untuk terhubung ke database.

Admin dapat membuat layanan yang disediakan pengguna dengan kredensial dan developer dapat mengikat instance layanan ke Aplikasi. Hal ini memungkinkan kredensial dibagikan tanpa harus meninggalkan platform. Mengikat instance layanan ke Aplikasi memiliki efek yang sama, terlepas dari apakah layanan tersebut merupakan layanan yang disediakan pengguna atau layanan marketplace.

Aplikasi dikonfigurasi dengan kredensial yang diberikan oleh pengguna, dan variabel lingkungan runtime Aplikasi VCAP_SERVICES diisi dengan informasi tentang semua layanan terikat ke Aplikasi tersebut.

Layanan yang disediakan pengguna dapat dibuat dengan kredensial dan/atau daftar tag.

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

Tindakan ini akan membuat instance layanan yang disediakan pengguna my-db dengan kredensial dan tag yang diberikan. Kredensial yang diteruskan ke tanda -p harus berupa JSON yang valid (baik inline maupun dimuat dari jalur file).

Untuk mengirimkan kredensial ke satu atau beberapa Aplikasi, pengguna dapat menjalankan kf bind-service.

Misalkan kita memiliki Aplikasi dengan satu layanan terikat, layanan yang disediakan pengguna my-db yang ditentukan di atas. Variabel lingkungan VCAP_SERVICES untuk Aplikasi tersebut akan memiliki konten berikut:

{
  "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
      }
    }
  ]
}

Memperbarui instance layanan yang disediakan pengguna

Alias untuk kf update-user-provided-service adalah kf uups.

Layanan yang disediakan pengguna dapat diperbarui dengan perintah uups. Kredensial dan/atau tag baru yang diteruskan sepenuhnya akan menimpa kredensial dan/atau tag yang ada. Misalnya, jika pengguna membuat layanan yang disediakan pengguna my-db di atas, panggil kf bind-service untuk mengikat layanan ke Aplikasi, lalu jalankan perintah.

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

Kredensial yang diperbarui hanya akan terlihat di Aplikasi setelah pengguna melepas dan mengikat ulang layanan ke Aplikasi. Aplikasi tidak perlu dimulai ulang atau dipulihkan. Variabel lingkungan VCAP_SERVICES yang diupdate akan memiliki konten berikut:

{
  "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"
      }
    }
  ]
}

Kredensial baru akan menimpa kredensial lama, dan tag tersebut tidak akan diubah karena tidak ditentukan dalam perintah update.