برای اینکه منابع یه سرویس رو کم یا زیاد بکنی باید به این اندپوینت ریکوئست بزنی.
POST /services/{id}/update
نکته مهم اینه:
چونکه داری سرویس رو آپدیت میکنی باید همه چیزایی رو که وقت ساختن سرویس ست کرده بودی ست بکنی. برای تست به همین اندپوینت یه ریکوئست بزن ولی توش منابع رو ذکر نکن. سرویس همه منابع رو برای خودش میگیره و اصلا limitation ای در نظر نمیگیره
پس برای اینکه سرویس رو آپدیت بکنی باید توی json ای که مینویسی همه مقادیری رو که میخوای بدون تغییر بمونن باید ست بکنی.
اینجا id سرویس مورد نظر رو میدی
این سه مورد رو میتونی توی query string ست بکنی.
اینجا میای ورژن سرویسی رو که میخوای آپدیت بکنی مینویسی. نکته اینه که این ورژن، docker tag نیست. بلکه وقتی از سرویس inspect میگیری توی بدنه response بهش دسترسی داری:
نکته بعدی اینه که هر بار سرویس رو آپدیت میکنی این ورژن عوض میشه.
اگه توی هدر x-registery-auth رو ست نکنی اینجا میتونی credentials رو مشخص کنی.
اگه این کوئری پارامتر رو ست بکنی همه تنظیمات سرویس به تنظیمات قبلیش بر میگرده.
sample request body:
{ "Name": "top", "TaskTemplate": { "ContainerSpec": { "Image": "busybox", "Args": [ "top" ] }, "Resources": { "Limits": {}, "Reservations": {} }, "RestartPolicy": { "Condition": "any", "MaxAttempts": 0 }, "Placement": {}, "ForceUpdate": 0 }, "Mode": { "Replicated": { "Replicas": 1 } }, "UpdateConfig": { "Parallelism": 2, "Delay": 1000000000, "FailureAction": "pause", "Monitor": 15000000000, "MaxFailureRatio": 0.15 }, "RollbackConfig": { "Parallelism": 1, "Delay": 1000000000, "FailureAction": "pause", "Monitor": 15000000000, "MaxFailureRatio": 0.15 }, "EndpointSpec": { "Mode": "vip" } }
اگه status code رو بهت ۲۰۰ داد همه چی اوکیه وگرنه مشکل داری. توی بدنه response هم Warnings رو داری.